From 9515381d1cf44d4c897ac0aeee89d555d82fdd7f Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sun, 18 Nov 2018 20:55:24 +1030 Subject: [PATCH] Allow target to override gnu-user.h crti and crtn Also give target access to the gnu-user.h LINK_GCC_C_SEQUENCE_SPEC. * config/gnu-user.h (GNU_USER_TARGET_CRTI): Define. (GNU_USER_TARGET_STARTFILE_SPEC): Use it here. (GNU_USER_TARGET_CRTN): Define. (GNU_USER_TARGET_ENDFILE_SPEC): Use it here. (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Define. From-SVN: r266250 --- gcc/ChangeLog | 8 ++++++++ gcc/config/gnu-user.h | 17 +++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6539253f8b7..62dd38eef7b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2018-11-18 Alan Modra + + * config/gnu-user.h (GNU_USER_TARGET_CRTI): Define. + (GNU_USER_TARGET_STARTFILE_SPEC): Use it here. + (GNU_USER_TARGET_CRTN): Define. + (GNU_USER_TARGET_ENDFILE_SPEC): Use it here. + (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Define. + 2018-11-18 Alan Modra * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Delete diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h index 75f6a6f0a7d..09170d416b8 100644 --- a/gcc/config/gnu-user.h +++ b/gcc/config/gnu-user.h @@ -40,6 +40,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define CRTOFFLOADEND "" #endif +#define GNU_USER_TARGET_CRTI "crti.o%s" +#define GNU_USER_TARGET_CRTN "crtn.o%s" + /* Provide a STARTFILE_SPEC appropriate for GNU userspace. Here we add the GNU userspace magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static @@ -51,8 +54,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see static:crt1.o%s; \ static-pie:rcrt1.o%s; \ " PIE_SPEC ":Scrt1.o%s; \ - :crt1.o%s} \ - crti.o%s \ + :crt1.o%s} " \ + GNU_USER_TARGET_CRTI " \ %{static:crtbeginT.o%s; \ shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \ :crtbegin.o%s} \ @@ -75,8 +78,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see fvtable-verify=std:vtv_end.o%s} \ %{static:crtend.o%s; \ shared|static-pie|" PIE_SPEC ":crtendS.o%s; \ - :crtend.o%s} \ - crtn.o%s " \ + :crtend.o%s} " \ + GNU_USER_TARGET_CRTN " " \ CRTOFFLOADEND #undef ENDFILE_SPEC #define ENDFILE_SPEC GNU_USER_TARGET_ENDFILE_SPEC @@ -106,11 +109,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} " #endif -#undef LINK_GCC_C_SEQUENCE_SPEC -#define LINK_GCC_C_SEQUENCE_SPEC \ +#define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \ "%{static|static-pie:--start-group} %G %{!nolibc:%L} \ %{static|static-pie:--end-group}%{!static:%{!static-pie:%G}}" +#undef LINK_GCC_C_SEQUENCE_SPEC +#define LINK_GCC_C_SEQUENCE_SPEC GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC + /* Use --as-needed -lgcc_s for eh support. */ #ifdef HAVE_LD_AS_NEEDED #define USE_LD_AS_NEEDED 1 -- 2.30.2