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
This commit is contained in:
Alan Modra 2018-11-18 20:55:24 +10:30 committed by Alan Modra
parent 003fc14b5b
commit 9515381d1c
2 changed files with 19 additions and 6 deletions

View file

@ -1,3 +1,11 @@
2018-11-18 Alan Modra <amodra@gmail.com>
* 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 <amodra@gmail.com>
* config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Delete

View file

@ -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