Quantcast
Channel: Active questions tagged gcc - Stack Overflow
Viewing all articles
Browse latest Browse all 22006

How do I tell CMake to specify multiple linker script files to GCC?

$
0
0

I"m using CMake 3.17 and the GNU ARM toolchain and I'm trying to migrate a build from Eclipse to CMake. Part of the Eclipse build specifies multiple linker script files to use at link time so I set up my CMakeLists.txt file like this:

target_link_options(${application_name} PRIVATE    -mcpu=cortex-m4    -mthumb     -mfloat-abi=hard     -mfpu=fpv4-sp-d16     -fmessage-length=0     -fsigned-char     -ffunction-sections     -fdata-sections     -flto     -Wall    -Xlinker --gc-sections     -Wl,-Map,${map_file}    -T ${CMAKE_SOURCE_DIR}/ldscripts/libs.ld    -T ${CMAKE_SOURCE_DIR}/ldscripts/mem.ld    -T ${CMAKE_SOURCE_DIR}/ldscripts/sections.ld)

But when I run make the -T option gets swallowed for the second and third files. Here's what I get when running make VERBOSE=1 after successful compilation of all sources. The linker command line followed by a warning about missing -T options:

Linking CXX executable StartupSequence.elf/D/gcc-arm-none-eabi-9-2019-q4/bin/arm-none-eabi-g++.exe    --specs=nano.specs --specs=nosys.specs -g -Og -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -flto -Wall -Xlinker --gc-sections -Wl,-Map,StartupSequence.map -T C:/svn/startup_sequence/ldscripts/libs.ld C:/svn/startup_sequence/ldscripts/mem.ld C:/svn/startup_sequence/ldscripts/sections.ld @CMakeFiles/StartupSequence.dir/objects1.rsp  -o StartupSequence.elf  ../Drivers/CMSIS/DSP/Lib/libarm_cortexM4lf_math.a ../Middlewares/Third_Party/mbedTLS/library/libmbedcrypto.ad:/gcc-arm-none-eabi-9-2019-q4/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: C:/svn/startup_sequence/ldscripts/sections.ld contains output sections; did you forget -T?

Why does the -T not get sent to the command line properly for the last two files?

I've tried separating the link script specification into three separate calls to target_link_options and enclosing each script specification in double quotes but it seems to have no effect.


Viewing all articles
Browse latest Browse all 22006

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>