mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
Don't check PI_STATIC_AND_HIDDEN in i386 dl-machine.h
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. [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.
This commit is contained in:
parent
07256e183e
commit
7062bd4230
@ -1,3 +1,10 @@
|
||||
2014-12-30 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
[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 <andrew.senkevich@intel.com>
|
||||
|
||||
* sysdeps/i386/tls-macros.h: Include <features.h>.
|
||||
|
3
NEWS
3
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.
|
||||
|
||||
|
@ -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. */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user