From 28229916e1b131ad5d17a73603f65229e0a92f58 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 22 Jan 2021 12:45:49 +0100 Subject: [PATCH] RTEMS: Fix GCC specification The use of -nostdlib and -nodefaultlibs disables the processing of LIB_SPEC (%L) as specified by LINK_COMMAND_SPEC and thus disables the default linker script for RTEMS. Move the linker script to STARTFILE_SPEC which is controlled by -nostdlib and -nostartfiles. This fits better since the linker script defines the platform start file provided by the board support package in RTEMS. gcc/ * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and nostartfiles handling since this is already done by LINK_COMMAND_SPEC. Evaluate qnolinkcmds. (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this is already done by LINK_COMMAND_SPEC. (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds evaluation. --- gcc/config/rtems.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gcc/config/rtems.h b/gcc/config/rtems.h index 743161c4bac..e5cba75d345 100644 --- a/gcc/config/rtems.h +++ b/gcc/config/rtems.h @@ -36,11 +36,11 @@ */ #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!qrtems:crt0%O%s} " \ -"%{qrtems:%{!nostdlib:%{!nostartfiles:" RTEMS_STARTFILE_SPEC "}}}" +"%{qrtems:" RTEMS_STARTFILE_SPEC " %{!qnolinkcmds:-T linkcmds%s}}" #undef ENDFILE_SPEC #define ENDFILE_SPEC \ -"%{qrtems:%{!nostdlib:%{!nostartfiles:" RTEMS_ENDFILE_SPEC "}}}" +"%{qrtems:" RTEMS_ENDFILE_SPEC "}" /* * Some targets do not set up LIB_SPECS, override it, here. @@ -49,9 +49,7 @@ #undef LIB_SPEC #define LIB_SPEC "%{!qrtems:" STD_LIB_SPEC "} " \ -"%{qrtems:%{!nostdlib:%{!nodefaultlibs:" \ -"--start-group -lrtemsbsp -lrtemscpu -latomic -lc -lgcc --end-group} " \ -"%{!qnolinkcmds:-T linkcmds%s}}}" +"%{qrtems:--start-group -lrtemsbsp -lrtemscpu -latomic -lc -lgcc --end-group}" #define TARGET_POSIX_IO -- 2.30.2