From: Sebastian Huber Date: Fri, 22 Jan 2021 11:45:49 +0000 (+0100) Subject: RTEMS: Fix GCC specification X-Git-Tag: releases/gcc-10.3.0~365 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9fe1c085f0af6e6c05a6813eeae44136ea8ce566;p=thirdparty%2Fgcc.git 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. (cherry picked from commit 28229916e1b131ad5d17a73603f65229e0a92f58) --- diff --git a/gcc/config/rtems.h b/gcc/config/rtems.h index 30ad6258949d..7d1a23fb54d7 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