mbed version: master (#8305 included) + #9107
We can't execute OS2 tests in ARM if default_toolchain is uARM
ex:
$ python ./tools/build.py -m NUCLEO_F042K6 -t ARM
Build successes:
$ python ./tools/make.py -m NUCLEO_F042K6 -t ARM -n MBED_2
Building project stdio (NUCLEO_F042K6, ARM)
Could not compile for NUCLEO_F042K6: No Linker Script found
If I removed from targets.json file:
"default_toolchain": "uARM",
=> it's working
https://os.mbed.com/docs/v5.10/tools/adding-and-configuring-targets.html
The default_toolchain property names the toolchain that compiles code for this target in the Online Compiler.
=> so default_toolchain should not impact python scripts ?
@theotherjimmy @bridadan
[ ] Question
[ ] Enhancement
[x] Bug
Hi @jeromecoutant,
I just checked the commands you posted above, doesn't look like make.py -n <test name> works for any target, not just targets with uARM set as the default_toolchain. singletest.py continues to build them fine. Can you use that script for now?
$ python ./tools/build.py -m NUCLEO_F030R8 -t ARM
$ python ./tools/make.py -m NUCLEO_F030R8 -t ARM -n MBED_2
This is working
Ah oops, thanks. Been a while since I've used these scripts. I was able to reproduce the issue.
Ok the problem seems to be that the build artifacts from the call to build.py are placed at the following path: BUILD\mbed\TARGET_NUCLEO_F042K6\TOOLCHAIN_ARM_STD. Since its placed in TOOLCHAIN_ARM_STD, its not picked up by the subsequent call to make.py, which is only looking for TOOLCHAIN_ARM and TOOLCHAIN_ARM_MICRO.
I'm not 100% sure the best approach here. Seems like build.py should place the artifacts in a folder names TOOLCHAIN_ARM_MICRO instead. Would like to check with @theotherjimmy though before making changes.
Internal Jira reference: https://jira.arm.com/browse/MBOCUSTRIA-337
@bridadan None. That sounds correct.
Most helpful comment
Ok the problem seems to be that the build artifacts from the call to
build.pyare placed at the following path:BUILD\mbed\TARGET_NUCLEO_F042K6\TOOLCHAIN_ARM_STD. Since its placed inTOOLCHAIN_ARM_STD, its not picked up by the subsequent call tomake.py, which is only looking forTOOLCHAIN_ARMandTOOLCHAIN_ARM_MICRO.I'm not 100% sure the best approach here. Seems like
build.pyshould place the artifacts in a folder namesTOOLCHAIN_ARM_MICROinstead. Would like to check with @theotherjimmy though before making changes.