about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2004-11-06 00:24:55 +0000
committerRoland McGrath <roland@gnu.org>2004-11-06 00:24:55 +0000
commit30e32d23eb06cbeae02e51c7c4df150736dba795 (patch)
tree654ce3ff4612247d589a718a88ce14b9a6df8212 /sysdeps
parentc3047bca73efe22cc7904e1d2474cb17ef161d25 (diff)
downloadglibc-30e32d23eb06cbeae02e51c7c4df150736dba795.tar.gz
glibc-30e32d23eb06cbeae02e51c7c4df150736dba795.tar.xz
glibc-30e32d23eb06cbeae02e51c7c4df150736dba795.zip
* sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Define
	_dl_sysinfo_dso under [NEED_DL_SYSINFO_DSO] as well.
	* elf/rtld.c (dl_main): Set up GLRO(dl_sysinfo_dso) under
	[NEED_DL_SYSINFO_DSO] as well.
	* sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Always include
	AT_SYSINFO and AT_SYSINFO_EHDR in name table.
	(_dl_sysdep_start) [NEED_DL_SYSINFO_DSO]: Match AT_SYSINFO_EHDR.
	* elf/dl-support.c (_dl_sysinfo_dso): Define also under
	[NEED_DL_SYSINFO_DSO].
	(_dl_aux_init) [NEED_DL_SYSINFO || NEED_DL_SYSINFO_DSO]:
	Match AT_SYSINFO_EHDR and set GL(dl_sysinfo_dso).

2004-11-05  Roland McGrath  <roland@redhat.com>
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/dl-sysdep.c4
-rw-r--r--sysdeps/generic/ldsodefs.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c
index 429947ccd9..34498a880c 100644
--- a/sysdeps/generic/dl-sysdep.c
+++ b/sysdeps/generic/dl-sysdep.c
@@ -161,6 +161,8 @@ _dl_sysdep_start (void **start_argptr,
       case AT_SYSINFO:
 	new_sysinfo = av->a_un.a_val;
 	break;
+#endif
+#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
       case AT_SYSINFO_EHDR:
 	GLRO(dl_sysinfo_dso) = av->a_un.a_ptr;
 	break;
@@ -287,10 +289,8 @@ _dl_show_auxv (void)
 	  [AT_UCACHEBSIZE - 2] =	{ "AT_UCACHEBSIZE:  0x", hex },
 	  [AT_IGNOREPPC - 2] =		{ "AT_IGNOREPPC", ignore },
 	  [AT_SECURE - 2] =		{ "AT_SECURE:       ", dec },
-#ifdef NEED_DL_SYSINFO
 	  [AT_SYSINFO - 2] =		{ "AT_SYSINFO:      0x", hex },
 	  [AT_SYSINFO_EHDR - 2] =	{ "AT_SYSINFO_EHDR: 0x", hex },
-#endif
 	};
       unsigned int idx = (unsigned int) (av->a_type - 2);
 
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index fd45bdc87f..ec68e1a565 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -470,7 +470,9 @@ struct rtld_global_ro
 #ifdef NEED_DL_SYSINFO
   /* Syscall handling improvements.  This is very specific to x86.  */
   EXTERN uintptr_t _dl_sysinfo;
+#endif
 
+#if defined NEED_DL_SYSINFO || defined 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;