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 | |
parent | 6aa2f685b2e3c1dd13fe7d1a3c07bb41f151c322 (diff) | |
download | glibc-35a5b08bd4a5fc34d171480f32b9a235a94ff692.zip glibc-35a5b08bd4a5fc34d171480f32b9a235a94ff692.tar.gz glibc-35a5b08bd4a5fc34d171480f32b9a235a94ff692.tar.bz2 |
Fix libc-start change for IRELless machines.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | csu/libc-start.c | 15 |
2 files changed, 13 insertions, 7 deletions
@@ -1,3 +1,8 @@ +2012-08-22 Roland McGrath <roland@hack.frob.com> + + * csu/libc-start.c (apply_irel): Move extern declarations inside here. + Conditionalize whole body on [IREL]. + 2012-08-22 Jeff Law <law@redhat.com> [BZ #14505] diff --git a/csu/libc-start.c b/csu/libc-start.c index 7e541d4..e335b64 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 |