mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-30 12:31:53 +08:00
Fix NEED_DL_SYSINFO_DSO conditionals.
This commit is contained in:
parent
4e9b599577
commit
7775448e57
13
ChangeLog
13
ChangeLog
@ -1,3 +1,16 @@
|
||||
2013-03-01 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* elf/dl-hwcaps.c (_dl_important_hwcaps):
|
||||
Change [NEED_DL_SYSINFO || NEED_DL_SYSINFO_DSO] conditionals
|
||||
to just [NEED_DL_SYSINFO_DSO].
|
||||
* elf/dl-support.c: Likewise.
|
||||
* elf/dl-sysdep.c (_dl_sysdep_start): Likewise.
|
||||
* elf/rtld.c (dl_main): Likewise.
|
||||
* elf/setup-vdso.h (setup_vdso): Likewise.
|
||||
* sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Likewise.
|
||||
* sysdeps/unix/sysv/linux/dl-sysdep.c
|
||||
(_dl_discover_osversion): Likewise.
|
||||
|
||||
2013-03-01 Carlos O'Donell <carlos@redhat.com>
|
||||
|
||||
* csu/libc-start.c (__pthread_initialize_minimal): Revert last change.
|
||||
|
@ -51,7 +51,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
|
||||
if ((masked & (1ULL << n)) != 0)
|
||||
++cnt;
|
||||
|
||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
||||
#ifdef NEED_DL_SYSINFO_DSO
|
||||
/* The system-supplied DSO can contain a note of type 2, vendor "GNU".
|
||||
This gives us a list of names to treat as fake hwcap bits. */
|
||||
|
||||
@ -104,7 +104,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
|
||||
/* Create temporary data structure to generate result table. */
|
||||
struct r_strlenpair temp[cnt];
|
||||
m = 0;
|
||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
||||
#ifdef NEED_DL_SYSINFO_DSO
|
||||
if (dsocaps != NULL)
|
||||
{
|
||||
const ElfW(Word) mask = ((const ElfW(Word) *) dsocaps)[-1];
|
||||
|
@ -158,7 +158,7 @@ struct dl_scope_free_list *_dl_scope_free_list;
|
||||
/* Needed for improved syscall handling on at least x86/Linux. */
|
||||
uintptr_t _dl_sysinfo = DL_SYSINFO_DEFAULT;
|
||||
#endif
|
||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
||||
#ifdef NEED_DL_SYSINFO_DSO
|
||||
/* Address of the ELF headers in the vsyscall page. */
|
||||
const ElfW(Ehdr) *_dl_sysinfo_dso;
|
||||
|
||||
@ -217,7 +217,7 @@ _dl_aux_init (ElfW(auxv_t) *av)
|
||||
GL(dl_sysinfo) = av->a_un.a_val;
|
||||
break;
|
||||
#endif
|
||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
||||
#ifdef NEED_DL_SYSINFO_DSO
|
||||
case AT_SYSINFO_EHDR:
|
||||
GL(dl_sysinfo_dso) = (void *) av->a_un.a_val;
|
||||
break;
|
||||
|
@ -167,7 +167,7 @@ _dl_sysdep_start (void **start_argptr,
|
||||
new_sysinfo = av->a_un.a_val;
|
||||
break;
|
||||
#endif
|
||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
||||
#ifdef NEED_DL_SYSINFO_DSO
|
||||
case AT_SYSINFO_EHDR:
|
||||
GLRO(dl_sysinfo_dso) = (void *) av->a_un.a_val;
|
||||
break;
|
||||
|
@ -1768,7 +1768,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
|
||||
GL(dl_rtld_map).l_next = (i + 1 < main_map->l_searchlist.r_nlist
|
||||
? main_map->l_searchlist.r_list[i + 1]
|
||||
: NULL);
|
||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
||||
#ifdef NEED_DL_SYSINFO_DSO
|
||||
if (GLRO(dl_sysinfo_map) != NULL
|
||||
&& GL(dl_rtld_map).l_prev->l_next == GLRO(dl_sysinfo_map)
|
||||
&& GL(dl_rtld_map).l_next != GLRO(dl_sysinfo_map))
|
||||
@ -1880,7 +1880,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
|
||||
if (dyn->d_tag == DT_NEEDED)
|
||||
{
|
||||
l = l->l_next;
|
||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
||||
#ifdef NEED_DL_SYSINFO_DSO
|
||||
/* Skip the VDSO since it's not part of the list
|
||||
of objects we brought in via DT_NEEDED entries. */
|
||||
if (l == GLRO(dl_sysinfo_map))
|
||||
|
@ -20,7 +20,7 @@ static inline void __attribute__ ((always_inline))
|
||||
setup_vdso (struct link_map *main_map __attribute__ ((unused)),
|
||||
struct link_map ***first_preload __attribute__ ((unused)))
|
||||
{
|
||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
||||
#ifdef NEED_DL_SYSINFO_DSO
|
||||
if (GLRO(dl_sysinfo_dso) == NULL)
|
||||
return;
|
||||
|
||||
|
@ -538,7 +538,7 @@ struct rtld_global_ro
|
||||
EXTERN uintptr_t _dl_sysinfo;
|
||||
#endif
|
||||
|
||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
||||
#ifdef NEED_DL_SYSINFO_DSO
|
||||
/* The vsyscall page is a virtual DSO pre-mapped by the kernel.
|
||||
This points to its ELF header. */
|
||||
EXTERN const ElfW(Ehdr) *_dl_sysinfo_dso;
|
||||
|
@ -43,7 +43,7 @@ int
|
||||
attribute_hidden
|
||||
_dl_discover_osversion (void)
|
||||
{
|
||||
#if (defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO) && defined SHARED
|
||||
#if defined NEED_DL_SYSINFO_DSO && defined SHARED
|
||||
if (GLRO(dl_sysinfo_map) != NULL)
|
||||
{
|
||||
/* If the kernel-supplied DSO contains a note indicating the kernel's
|
||||
|
Loading…
Reference in New Issue
Block a user