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]

[PATCH] Define VERSYMIDX/VALIDX/ADDRIDX in include/elf.h


Hi,

We define the same VERSYMIDX/VALIDX/ADDRIDX macros all over the places.
This patch defines them in include/elf.h and removes the rest.  I also
enclosed patches for arm and mips.  Tested on x86-64 and ia32.  OK to
install?

Thanks.


H.J.
---
 ChangeLog                          | 16 ++++++++++++++++
 elf/dl-runtime.c                   |  4 ----
 elf/dl-version.c                   |  5 -----
 elf/do-rel.h                       |  8 --------
 elf/dynamic-link.h                 |  4 ----
 elf/rtld.c                         |  9 ---------
 include/elf.h                      |  6 ++++++
 sysdeps/sparc/sparc32/dl-machine.h |  5 -----
 sysdeps/sparc/sparc64/dl-machine.h |  5 -----
 sysdeps/x86_64/dl-tlsdesc.h        |  6 ------
 10 files changed, 22 insertions(+), 46 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c277677..f906b16 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2012-09-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf/dl-runtime.c (VERSYMIDX): Removed.
+	* elf/dl-version.c (VERSYMIDX): Likewise.
+	* elf/do-rel.h (VERSYMIDX): Likewise.
+	(VALIDX): Likewise.
+	* elf/dynamic-link.h (VERSYMIDX): Likewise.
+	* elf/rtld.c (VALIDX): Likewise.
+	(ADDRIDX): Likewise.
+	* include/elf.h (VERSYMIDX): New macro.
+	(VALIDX): Likewise.
+	(ADDRIDX): Likewise.
+	* sysdeps/sparc/sparc32/dl-machine.h (VALIDX): Likewise.
+	* sysdeps/sparc/sparc64/dl-machine.h (VALIDX): Likewise.
+	* sysdeps/x86_64/dl-tlsdesc.h (ADDRIDX): Likewise.
+
 2012-09-28  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
 	[BZ #5298]
diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c
index fdaa364..2e02a21 100644
--- a/elf/dl-runtime.c
+++ b/elf/dl-runtime.c
@@ -36,10 +36,6 @@
 # define PLTREL  ElfW(Rel)
 #endif
 
-#ifndef VERSYMIDX
-# define VERSYMIDX(sym)	(DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
-#endif
-
 /* The fixup functions might have need special attributes.  If none
    are provided define the macro as empty.  */
 #ifndef ARCH_FIXUP_ATTRIBUTE
diff --git a/elf/dl-version.c b/elf/dl-version.c
index af7f899..b2ebb16 100644
--- a/elf/dl-version.c
+++ b/elf/dl-version.c
@@ -28,11 +28,6 @@
 #include <assert.h>
 
 
-#ifndef VERSYMIDX
-# define VERSYMIDX(tag)	(DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (tag))
-#endif
-
-
 #define make_string(string, rest...) \
   ({									      \
     const char *all[] = { string, ## rest };				      \
diff --git a/elf/do-rel.h b/elf/do-rel.h
index 10d8f31..272b782 100644
--- a/elf/do-rel.h
+++ b/elf/do-rel.h
@@ -32,14 +32,6 @@
 			    (void *) (l_addr + relative->r_offset))
 #endif
 
-#ifndef VERSYMIDX
-# define VERSYMIDX(sym)	(DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
-#endif
-#ifndef VALIDX
-# define VALIDX(tag) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
-		      + DT_EXTRANUM + DT_VALTAGIDX (tag))
-#endif
-
 /* Perform the relocations in MAP on the running program image as specified
    by RELTAG, SZTAG.  If LAZY is nonzero, this is the first pass on PLT
    relocations; they should be set up to call _dl_runtime_resolve, rather
diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h
index e1ec01f..bdf7497 100644
--- a/elf/dynamic-link.h
+++ b/elf/dynamic-link.h
@@ -88,10 +88,6 @@ elf_machine_lazy_rel (struct link_map *map,
 
 #include <dl-machine.h>
 
-#ifndef VERSYMIDX
-# define VERSYMIDX(sym)	(DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
-#endif
-
 #include "get-dynamic-info.h"
 
 #ifdef RESOLVE_MAP
diff --git a/elf/rtld.c b/elf/rtld.c
index ed0a86b..ed5d062 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -254,15 +254,6 @@ RTLD_START
 # error "sysdeps/MACHINE/dl-machine.h fails to define RTLD_START"
 #endif
 
-#ifndef VALIDX
-# define VALIDX(tag) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
-		      + DT_EXTRANUM + DT_VALTAGIDX (tag))
-#endif
-#ifndef ADDRIDX
-# define ADDRIDX(tag) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
-		       + DT_EXTRANUM + DT_VALNUM + DT_ADDRTAGIDX (tag))
-#endif
-
 /* This is the second half of _dl_start (below).  It can be inlined safely
    under DONT_USE_BOOTSTRAP_MAP, where it is careful not to make any GOT
    references.  When the tools don't permit us to avoid using a GOT entry
diff --git a/include/elf.h b/include/elf.h
index cdedd85..7bda6af 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -3,4 +3,10 @@
 /* Some information which is not meant for the public and therefore not
    in <elf.h>.  */
 # include <dl-dtprocnum.h>
+
+# define VERSYMIDX(sym)	(DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
+# define VALIDX(tag) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
+		      + DT_EXTRANUM + DT_VALTAGIDX (tag))
+# define ADDRIDX(tag) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
+		       + DT_EXTRANUM + DT_VALNUM + DT_ADDRTAGIDX (tag))
 #endif
diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
index 2dfeeb2..04ce785 100644
--- a/sysdeps/sparc/sparc32/dl-machine.h
+++ b/sysdeps/sparc/sparc32/dl-machine.h
@@ -29,11 +29,6 @@
 #include <tls.h>
 #include <dl-plt.h>
 
-#ifndef VALIDX
-# define VALIDX(tag) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
-		      + DT_EXTRANUM + DT_VALTAGIDX (tag))
-#endif
-
 /* Return nonzero iff ELF header is compatible with the running host.  */
 static inline int
 elf_machine_matches_host (const Elf32_Ehdr *ehdr)
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
index 2f8bbe1..dec2fa0 100644
--- a/sysdeps/sparc/sparc64/dl-machine.h
+++ b/sysdeps/sparc/sparc64/dl-machine.h
@@ -27,11 +27,6 @@
 #include <sysdep.h>
 #include <dl-plt.h>
 
-#ifndef VALIDX
-# define VALIDX(tag) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
-		      + DT_EXTRANUM + DT_VALTAGIDX (tag))
-#endif
-
 #define ELF64_R_TYPE_ID(info)	((info) & 0xff)
 #define ELF64_R_TYPE_DATA(info) ((info) >> 8)
 
diff --git a/sysdeps/x86_64/dl-tlsdesc.h b/sysdeps/x86_64/dl-tlsdesc.h
index 06ede02..ec75090 100644
--- a/sysdeps/x86_64/dl-tlsdesc.h
+++ b/sysdeps/x86_64/dl-tlsdesc.h
@@ -20,12 +20,6 @@
 #ifndef _X86_64_DL_TLSDESC_H
 # define _X86_64_DL_TLSDESC_H 1
 
-/* Use this to access DT_TLSDESC_PLT and DT_TLSDESC_GOT.  */
-#ifndef ADDRIDX
-# define ADDRIDX(tag) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
-		       + DT_EXTRANUM + DT_VALNUM + DT_ADDRTAGIDX (tag))
-#endif
-
 /* Type used to represent a TLS descriptor in the GOT.  */
 struct tlsdesc
 {
-- 
1.7.11.4

Attachment: 0001-Remove-arm-ADDRIDX-macro-definition.patch
Description: Text document

Attachment: 0002-Remove-mips-VERSYMIDX-macro-definition.patch
Description: Text document


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