diff options
author | Roland McGrath <roland@hack.frob.com> | 2012-08-22 12:53:38 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2012-08-22 12:53:38 -0700 |
commit | 35a5b08bd4a5fc34d171480f32b9a235a94ff692 (patch) | |
tree | 0b2b1ba4b204043bae69820ea12ce252abb0889f /csu | |
parent | 6aa2f685b2e3c1dd13fe7d1a3c07bb41f151c322 (diff) |
Fix libc-start change for IRELless machines.
Diffstat (limited to 'csu')
-rw-r--r-- | csu/libc-start.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/csu/libc-start.c b/csu/libc-start.c index 7e541d4f79..e335b64d15 100644 --- a/csu/libc-start.c +++ b/csu/libc-start.c @@ -62,18 +62,19 @@ uintptr_t __stack_chk_guard attribute_relro; # define IREL elf_irel # endif -/* We use weak references for these so that we'll still work with a linker - that doesn't define them. Such a linker doesn't support IFUNC at all - and so uses won't work, but a statically-linked program that doesn't - use any IFUNC symbols won't have a problem. */ -extern const IREL_T IPLT_START[] __attribute__ ((weak)); -extern const IREL_T IPLT_END[] __attribute__ ((weak)); - static void apply_irel (void) { +# ifdef IREL + /* We use weak references for these so that we'll still work with a linker + that doesn't define them. Such a linker doesn't support IFUNC at all + and so uses won't work, but a statically-linked program that doesn't + use any IFUNC symbols won't have a problem. */ + extern const IREL_T IPLT_START[] __attribute__ ((weak)); + extern const IREL_T IPLT_END[] __attribute__ ((weak)); for (const IREL_T *ipltent = IPLT_START; ipltent < IPLT_END; ++ipltent) IREL (ipltent); +# endif } #endif |