mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Fix NEED_DL_SYSINFO_DSO conditionals.
This commit is contained in:
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>
|
2013-03-01 Carlos O'Donell <carlos@redhat.com>
|
||||||
|
|
||||||
* csu/libc-start.c (__pthread_initialize_minimal): Revert last change.
|
* 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)
|
if ((masked & (1ULL << n)) != 0)
|
||||||
++cnt;
|
++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".
|
/* 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. */
|
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. */
|
/* Create temporary data structure to generate result table. */
|
||||||
struct r_strlenpair temp[cnt];
|
struct r_strlenpair temp[cnt];
|
||||||
m = 0;
|
m = 0;
|
||||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
#ifdef NEED_DL_SYSINFO_DSO
|
||||||
if (dsocaps != NULL)
|
if (dsocaps != NULL)
|
||||||
{
|
{
|
||||||
const ElfW(Word) mask = ((const ElfW(Word) *) dsocaps)[-1];
|
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. */
|
/* Needed for improved syscall handling on at least x86/Linux. */
|
||||||
uintptr_t _dl_sysinfo = DL_SYSINFO_DEFAULT;
|
uintptr_t _dl_sysinfo = DL_SYSINFO_DEFAULT;
|
||||||
#endif
|
#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. */
|
/* Address of the ELF headers in the vsyscall page. */
|
||||||
const ElfW(Ehdr) *_dl_sysinfo_dso;
|
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;
|
GL(dl_sysinfo) = av->a_un.a_val;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
#ifdef NEED_DL_SYSINFO_DSO
|
||||||
case AT_SYSINFO_EHDR:
|
case AT_SYSINFO_EHDR:
|
||||||
GL(dl_sysinfo_dso) = (void *) av->a_un.a_val;
|
GL(dl_sysinfo_dso) = (void *) av->a_un.a_val;
|
||||||
break;
|
break;
|
||||||
|
@ -167,7 +167,7 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
new_sysinfo = av->a_un.a_val;
|
new_sysinfo = av->a_un.a_val;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
#ifdef NEED_DL_SYSINFO_DSO
|
||||||
case AT_SYSINFO_EHDR:
|
case AT_SYSINFO_EHDR:
|
||||||
GLRO(dl_sysinfo_dso) = (void *) av->a_un.a_val;
|
GLRO(dl_sysinfo_dso) = (void *) av->a_un.a_val;
|
||||||
break;
|
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
|
GL(dl_rtld_map).l_next = (i + 1 < main_map->l_searchlist.r_nlist
|
||||||
? main_map->l_searchlist.r_list[i + 1]
|
? main_map->l_searchlist.r_list[i + 1]
|
||||||
: NULL);
|
: NULL);
|
||||||
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
|
#ifdef NEED_DL_SYSINFO_DSO
|
||||||
if (GLRO(dl_sysinfo_map) != NULL
|
if (GLRO(dl_sysinfo_map) != NULL
|
||||||
&& GL(dl_rtld_map).l_prev->l_next == GLRO(dl_sysinfo_map)
|
&& GL(dl_rtld_map).l_prev->l_next == GLRO(dl_sysinfo_map)
|
||||||
&& GL(dl_rtld_map).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)
|
if (dyn->d_tag == DT_NEEDED)
|
||||||
{
|
{
|
||||||
l = l->l_next;
|
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
|
/* Skip the VDSO since it's not part of the list
|
||||||
of objects we brought in via DT_NEEDED entries. */
|
of objects we brought in via DT_NEEDED entries. */
|
||||||
if (l == GLRO(dl_sysinfo_map))
|
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)),
|
setup_vdso (struct link_map *main_map __attribute__ ((unused)),
|
||||||
struct link_map ***first_preload __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)
|
if (GLRO(dl_sysinfo_dso) == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -538,7 +538,7 @@ struct rtld_global_ro
|
|||||||
EXTERN uintptr_t _dl_sysinfo;
|
EXTERN uintptr_t _dl_sysinfo;
|
||||||
#endif
|
#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.
|
/* The vsyscall page is a virtual DSO pre-mapped by the kernel.
|
||||||
This points to its ELF header. */
|
This points to its ELF header. */
|
||||||
EXTERN const ElfW(Ehdr) *_dl_sysinfo_dso;
|
EXTERN const ElfW(Ehdr) *_dl_sysinfo_dso;
|
||||||
|
@ -43,7 +43,7 @@ int
|
|||||||
attribute_hidden
|
attribute_hidden
|
||||||
_dl_discover_osversion (void)
|
_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 (GLRO(dl_sysinfo_map) != NULL)
|
||||||
{
|
{
|
||||||
/* If the kernel-supplied DSO contains a note indicating the kernel's
|
/* If the kernel-supplied DSO contains a note indicating the kernel's
|
||||||
|
Reference in New Issue
Block a user