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.
This commit is contained in:
parent
b7a0507ad9
commit
28229916e1
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user