Our (multi-project) MCUXpresso build builds OK locally under Windows, so I'm now trying to get a remote Linux machine to build exactly the same code (so we can integrate it with Jenkins etc).
However, the problem is that even though the Linux machine imports all the projects OK and compiles all the C files OK, it is not generating the managed linker scripts, and so the final link stage is failing:
- /arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: cannot open linker script file Plugin_IO_Debug.ld: No such file or directory
- collect2: error: ld returned 1 exit status
If I look at the Linux Debug directory, I can see the autogenerated *.mk files, but no *.ld files:
- makefile
- plugin-digital-io-board.su
- plugin-digital-io-hardware.d
- subdir.mk
- objects.mk
- plugin-digital-io-config.d
- plugin-digital-io-hardware.o
- plugin-digital-io-board.d
- plugin-digital-io-config.o
- plugin-digital-io-hardware.su
- plugin-digital-io-board.o
- plugin-digital-io-config.su
- sources.mk
By way of comparison, the same directory in the Windows build has three extra linker (*.ld) files:
- 02/08/2021 10:02 5,771 Plugin_IO_Debug.ld
- 02/08/2021 10:02 405 Plugin_IO_Debug_library.ld
- 02/08/2021 10:02 1,425 Plugin_IO_Debug_memory.ld
So it appears that the Linux mcuxpressoide is failing to generate these additional linker files.
Is this a known problem with specific Linux versions of the MCXpresso IDE? We're currently using mcuxpressoide 11.1.0 (we're slow to upgrade because everyone on the team would need to advance to a new version at the same time).
PS: here is the mcuxpressoide command line we're using to launch a remote Linux build:
SWT_GTK3=0 UBUNTU_MENUPROXY=0 /usr/local/mcuxpressoide/ide/mcuxpressoide --launcher.suppressErrors -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data ~/workspace -import Callisto4Lib -import PlatformAPI -import PluginLib -import Plugin_IO -build Plugin_IO/Debug