Skip to content

Make ARMC6 as the default ARM toolchain for MTB targets #9860

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Feb 28, 2019

Conversation

SenRamakri
Copy link
Contributor

Description

This PR is to make ARMC6 as the default ARM toolchain for MTB targets below:
MTB_ADV_WISE_1530
MTB_MXCHIP_EMW3166
MTB_USI_WM_BN_BM_22

Pull request type

[x] Fix
[ ] Refactor
[ ] Target update
[ ] Functionality change
[ ] Docs update
[ ] Test update
[ ] Breaking change

Reviewers

@cmonr @0xc0170 @SeppoTakalo

@ciarmcom
Copy link
Member

@SenRamakri, thank you for your changes.
@cmonr @0xc0170 @SeppoTakalo @ARMmbed/mbed-os-maintainers please review.

@ciarmcom ciarmcom requested a review from a team February 26, 2019 16:00
@0xc0170
Copy link
Contributor

0xc0170 commented Feb 26, 2019

Just to make sure, a reason for this is?

@cmonr
Copy link
Contributor

cmonr commented Feb 26, 2019

@SenRamakri I only see two targets updated in targets.json?

@SenRamakri
Copy link
Contributor Author

@cmonr - Actually USI_WM_BN_BM_22 is inherited by both MTB_ADV_WISE_1530 and MTB_USI_WM_BN_BM_22, so that makes it 3.

@SenRamakri
Copy link
Contributor Author

@ARMmbed/mbed-os-maintainers - Looks like continuous-integration/travis-ci/pr job failed due to some infrastructure issues. We may have to restart test on this.

Copy link
Contributor

@theotherjimmy theotherjimmy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks fine to me.

@cmonr
Copy link
Contributor

cmonr commented Feb 26, 2019

@SenRamakri The results will posted shortly, but it looks like build-ARMC6 did have some build issues.

I suspect CI continued because of an earlier config request to have the pipeline continue even on a build failure.

@SenRamakri
Copy link
Contributor Author

@cmonr - Yes, there are some failures. I looked into the failure logs and I guess those targets(which failed the builds) were tried to compile on machines without ARMC6 installed and thus failed as below:

[OS ERROR] Command: armclang -c --target=arm-arm-none-eabi -mthumb -Os -Wno-armcc-pragma-push-pop -Wno-armcc-pragma-anon-unions -DMULADDC_ ....

I have seen in the past that the [OS ERROR] usually happens when the executables are not available.
Adding @OPpuolitaival @timurh01 to take a look to confirm. I'm also aware that CI team is working on enabling ARMc5 and ARMc6 builds in CI based on targets.json.

@mbed-ci
Copy link

mbed-ci commented Feb 26, 2019

Test run: FAILED

Summary: 1 of 4 test jobs failed
Build number : 2
Build artifacts

Failed test jobs:

  • jenkins-ci/mbed-os-ci_greentea-test

@SenRamakri
Copy link
Contributor Author

@ARMmbed/mbed-os-maintainers - As a sanity check, I tried compiling each of the failing targets with ARMC6 locally and they are all passing successfully.

@cmonr
Copy link
Contributor

cmonr commented Feb 27, 2019

@SenRamakri has more information, and needs to sync up with @ARMmbed/mbed-os-test-team

@OPpuolitaival
Copy link
Contributor

@SenRamakri there was some old exceptions in CI scripts. Fixed and retriggered the test

@mbed-ci
Copy link

mbed-ci commented Feb 27, 2019

Test run: FAILED

Summary: 2 of 4 test jobs failed
Build number : 3
Build artifacts

Failed test jobs:

  • jenkins-ci/mbed-os-ci_cloud-client-test
  • jenkins-ci/mbed-os-ci_greentea-test

@@ -283,7 +291,7 @@ def get_mbed_official_release(version):
[
TARGET_MAP[target].name,
tuple(transform_release_toolchains(
TARGET_MAP[target].supported_toolchains, version))
TARGET_MAP[target].supported_toolchains, version, target))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure that this is passing in the target string, and not the target object. Since transform_release_toolchains is only ever called here, how about changing the function to take target, version instead of supported_toolchain_list, version, target? That way we don't have to do lookup 3(!) times.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason for not using TARGET_MAP[target].supported_toolchains, as in #9878?
Does targets.json only define mbed2 supported toolchains?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@alekla01 - Please see my changes in this file to take care of previous tools version as well.
But you asked great question on why we are not using
supported toolchains. I would like to investigate why we are not just return
supported toolchain. The current attempt is to keep the behavior same as before as it might impact online compiler.

@mbed-ci
Copy link

mbed-ci commented Feb 27, 2019

Test run: FAILED

Summary: 1 of 4 test jobs failed
Build number : 4
Build artifacts

Failed test jobs:

  • jenkins-ci/mbed-os-ci_greentea-test

@mbed-ci
Copy link

mbed-ci commented Feb 28, 2019

Test run: SUCCESS

Summary: 4 of 4 test jobs passed
Build number : 5
Build artifacts

@SenRamakri
Copy link
Contributor Author

@ARMmbed/mbed-os-maintainers - Looks like the tests passed. Can we please go ahead merge this? I'm waiting on this to create the merge PR to master.

Copy link
Contributor

@cmonr cmonr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine with this for now, but will want to do a deeper scrub when the PR to master is opened.

@cmonr
Copy link
Contributor

cmonr commented Feb 28, 2019

Have let the other maintainers know this is ready.

Too sleepy to trust myself with the merge button.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.