From patchwork Tue Dec 30 22:33:25 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Lu, Hongjiu" X-Patchwork-Id: 4465 Received: (qmail 12707 invoked by alias); 30 Dec 2014 22:33:43 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 12691 invoked by uid 89); 30 Dec 2014 22:33:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=AWL, BAYES_50, NO_DNS_FOR_FROM, T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: mga02.intel.com X-ExtLoop1: 1 Date: Tue, 30 Dec 2014 14:33:25 -0800 From: "H.J. Lu" To: GNU C Library Subject: [PATCH] Don't check PI_STATIC_AND_HIDDEN in i386 dl-machine.h Message-ID: <20141230223325.GA7349@intel.com> Reply-To: "H.J. Lu" MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) PI_STATIC_AND_HIDDEN is always defined for i386. There is no need to check PI_STATIC_AND_HIDDEN in sysdeps/i386/dl-machine.h. I checked it in after testing. H.J. --- [BZ #17775] * sysdeps/i386/dl-machine.h (PI_STATIC_AND_HIDDEN): Removed. (elf_machine_dynamic) [!PI_STATIC_AND_HIDDEN]: Likewise. (elf_machine_load_address) [!PI_STATIC_AND_HIDDEN]: Likewise. --- ChangeLog | 7 +++++++ NEWS | 3 ++- sysdeps/i386/dl-machine.h | 33 --------------------------------- 3 files changed, 9 insertions(+), 34 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5937975..70f8675 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2014-12-30 H.J. Lu + + [BZ #17775] + * sysdeps/i386/dl-machine.h (PI_STATIC_AND_HIDDEN): Removed. + (elf_machine_dynamic) [!PI_STATIC_AND_HIDDEN]: Likewise. + (elf_machine_load_address) [!PI_STATIC_AND_HIDDEN]: Likewise. + 2014-12-30 Andrew Senkevich * sysdeps/i386/tls-macros.h: Include . diff --git a/NEWS b/NEWS index 4a869bb..df27204 100644 --- a/NEWS +++ b/NEWS @@ -15,7 +15,8 @@ Version 2.21 17522, 17555, 17570, 17571, 17572, 17573, 17574, 17581, 17582, 17583, 17584, 17585, 17589, 17594, 17601, 17608, 17616, 17625, 17630, 17633, 17634, 17647, 17653, 17657, 17664, 17665, 17668, 17682, 17717, 17719, - 17722, 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747. + 17722, 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, + 17775 * i386 memcpy functions optimized with SSE2 unaligned load/store. diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index 94a6d38..e38fae6 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -34,8 +34,6 @@ elf_machine_matches_host (const Elf32_Ehdr *ehdr) } -#ifdef PI_STATIC_AND_HIDDEN - /* Return the link-time address of _DYNAMIC. Conveniently, this is the first element of the GOT, a special entry that is never relocated. */ static inline Elf32_Addr __attribute__ ((unused, const)) @@ -59,37 +57,6 @@ elf_machine_load_address (void) return (Elf32_Addr) &bygotoff - elf_machine_dynamic (); } -#else /* Without .hidden support, we can't compile the code above. */ - -/* Return the link-time address of _DYNAMIC. Conveniently, this is the - first element of the GOT. This must be inlined in a function which - uses global data. */ -static inline Elf32_Addr __attribute__ ((unused)) -elf_machine_dynamic (void) -{ - register Elf32_Addr *got asm ("%ebx"); - return *got; -} - - -/* Return the run-time load address of the shared object. */ -static inline Elf32_Addr __attribute__ ((unused)) -elf_machine_load_address (void) -{ - /* It doesn't matter what variable this is, the reference never makes - it to assembly. We need a dummy reference to some global variable - via the GOT to make sure the compiler initialized %ebx in time. */ - extern int _dl_argc; - Elf32_Addr addr; - asm ("leal _dl_start@GOTOFF(%%ebx), %0\n" - "subl _dl_start@GOT(%%ebx), %0" - : "=r" (addr) : "m" (_dl_argc) : "cc"); - return addr; -} - -#endif - - /* Set up the loaded object described by L so its unrelocated PLT entries will jump to the on-demand fixup code in dl-runtime.c. */