This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[COMMITTED PATCH] Fix NEED_DL_SYSINFO_DSO conditionals.


All the checks on NEED_DL_SYSINFO_DSO were actually checking
NEED_DL_SYSINFO || NEED_DL_SYSINFO_DSO, which makes no sense.
I cleaned them up.  This can have no effect on existing configurations
because sysdeps/unix/sysv/linux/dl-sysdep.h defines NEED_DL_SYSINFO_DSO
unconditionally.

Verified no text changes in ld.so or libc.so on x86_64-linux-gnu.


Thanks,
Roland


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.

--- a/elf/dl-hwcaps.c
+++ b/elf/dl-hwcaps.c
@@ -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];
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -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;
--- a/elf/dl-sysdep.c
+++ b/elf/dl-sysdep.c
@@ -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;
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -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))
--- a/elf/setup-vdso.h
+++ b/elf/setup-vdso.h
@@ -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;
 
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -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;
--- a/sysdeps/unix/sysv/linux/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/dl-sysdep.c
@@ -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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]