cmake/compiler: Add linker_script compiler property
This property specifies the flag used to pass the linker script filename through the compiler front end tot he linker. For clang, we use the general purpose linker-pass through -Wl flag with -T: -Wl,-T as clang doesn't support -T. For gcc, we use -T directly as this keeps the picolibc specs file from inserting the picolibc linker script as well. If the compiler doesn't specify a value, we continue to use -Wl,-T as before. Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
235caf2234
commit
424590f7d8
4 changed files with 12 additions and 2 deletions
|
@ -485,8 +485,9 @@ if(CONFIG_USERSPACE)
|
|||
endif()
|
||||
|
||||
get_property(TOPT GLOBAL PROPERTY TOPT)
|
||||
set_ifndef( TOPT -Wl,-T) # clang doesn't pick -T for some reason and complains,
|
||||
# while -Wl,-T works for both, gcc and clang
|
||||
get_property(COMPILER_TOPT TARGET compiler PROPERTY linker_script)
|
||||
set_ifndef( TOPT "${COMPILER_TOPT}")
|
||||
set_ifndef( TOPT -Wl,-T) # Use this if the compiler driver doesn't set a value
|
||||
|
||||
if(CONFIG_HAVE_CUSTOM_LINKER_SCRIPT)
|
||||
set(LINKER_SCRIPT ${APPLICATION_SOURCE_DIR}/${CONFIG_CUSTOM_LINKER_SCRIPT})
|
||||
|
|
|
@ -23,6 +23,9 @@ set_compiler_property(PROPERTY diagnostic -fcolor-diagnostics)
|
|||
# clang flag to save temporary object files
|
||||
set_compiler_property(PROPERTY save_temps -save-temps)
|
||||
|
||||
# clang doesn't handle the -T flag
|
||||
set_compiler_property(PROPERTY linker_script -Wl,-T)
|
||||
|
||||
#######################################################
|
||||
# This section covers flags related to warning levels #
|
||||
#######################################################
|
||||
|
|
|
@ -106,6 +106,9 @@ set_compiler_property(PROPERTY debug)
|
|||
# Flags to save temporary object files
|
||||
set_compiler_property(PROPERTY save_temps)
|
||||
|
||||
# Flag to specify linker script
|
||||
set_compiler_property(PROPERTY linker_script)
|
||||
|
||||
set_compiler_property(PROPERTY no_common)
|
||||
|
||||
# Flags for imacros. The specific header must be appended by user.
|
||||
|
|
|
@ -182,6 +182,9 @@ set_compiler_property(PROPERTY debug -g)
|
|||
# Flags to save temporary object files
|
||||
set_compiler_property(PROPERTY save_temps -save-temps=obj)
|
||||
|
||||
# Flag to specify linker script
|
||||
set_compiler_property(PROPERTY linker_script -T)
|
||||
|
||||
# Flags to not track macro expansion
|
||||
set_compiler_property(PROPERTY no_track_macro_expansion -ftrack-macro-expansion=0)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue