summaryrefslogtreecommitdiff
path: root/csu
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2012-08-22 12:53:38 -0700
committerRoland McGrath <roland@hack.frob.com>2012-08-22 12:53:38 -0700
commit35a5b08bd4a5fc34d171480f32b9a235a94ff692 (patch)
tree0b2b1ba4b204043bae69820ea12ce252abb0889f /csu
parent6aa2f685b2e3c1dd13fe7d1a3c07bb41f151c322 (diff)
Fix libc-start change for IRELless machines.
Diffstat (limited to 'csu')
-rw-r--r--csu/libc-start.c15
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