Skip to content

Commit

Permalink
Don't check PI_STATIC_AND_HIDDEN in i386 dl-machine.h
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
H.J. Lu committed Dec 30, 2014
1 parent 07256e1 commit 7062bd4
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 34 deletions.
7 changes: 7 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -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>.
Expand Down
3 changes: 2 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
33 changes: 0 additions & 33 deletions sysdeps/i386/dl-machine.h
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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. */

Expand Down

0 comments on commit 7062bd4

Please sign in to comment.