From 04af1eb3132904519f9bc8fdcca49525bec83fc7 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Wed, 6 Jan 2021 14:28:02 +0000 Subject: csu: Avoid weak ref for __ehdr_start in static PIE All linkers support __ehdr_start that support static PIE linking, so there is no need to check for its presence via a weak reference. This avoids a RELATIVE relocation in static PIE startup code on some targets. With non-PIE static linking the weak ref check is kept in case the linker does not support __ehdr_start. Reviewed-by: Adhemerval Zanella --- csu/libc-start.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'csu') diff --git a/csu/libc-start.c b/csu/libc-start.c index db859c3bed..5b9ce1d158 100644 --- a/csu/libc-start.c +++ b/csu/libc-start.c @@ -175,8 +175,12 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL), information from auxv. */ extern const ElfW(Ehdr) __ehdr_start +# if BUILD_PIE_DEFAULT + __attribute__ ((visibility ("hidden"))); +# else __attribute__ ((weak, visibility ("hidden"))); if (&__ehdr_start != NULL) +# endif { assert (__ehdr_start.e_phentsize == sizeof *GL(dl_phdr)); GL(dl_phdr) = (const void *) &__ehdr_start + __ehdr_start.e_phoff; -- cgit 1.4.1