From: Roland McGrath Date: Wed, 22 Aug 2012 19:53:38 +0000 (-0700) Subject: Fix libc-start change for IRELless machines. X-Git-Tag: upstream/2.16.90~628 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=35a5b08bd4a5fc34d171480f32b9a235a94ff692;p=platform%2Fupstream%2Fglibc.git Fix libc-start change for IRELless machines. --- diff --git a/ChangeLog b/ChangeLog index 5c2aea1..fbaadca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-08-22 Roland McGrath + + * csu/libc-start.c (apply_irel): Move extern declarations inside here. + Conditionalize whole body on [IREL]. + 2012-08-22 Jeff Law [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