aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2019-06-28 08:46:00 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-06-28 08:46:51 -0300
commit589787f8894251c3b114f4ce06a89ecf2763f1b4 (patch)
tree812346a8bdad7c4070720f7e3fbcfe1d82782ab1
parentf0b2132b35248c1f4a80f62a2c38cddcc802aa8c (diff)
downloadglibc-589787f8894251c3b114f4ce06a89ecf2763f1b4.tar
glibc-589787f8894251c3b114f4ce06a89ecf2763f1b4.tar.gz
glibc-589787f8894251c3b114f4ce06a89ecf2763f1b4.tar.bz2
glibc-589787f8894251c3b114f4ce06a89ecf2763f1b4.zip
Replace PREPARE_VERSION macro with inline function
* sysdeps/unix/sysv/linux/dl-vdso.h (PREPARE_VERSION): Remove macro. (prepare_version_base): New helper inline function. (prepare_version): New macro replacing PREPARE_VERSION. (PREPARE_VERSION_KNOWN): Use prepare_version instead of PREPARE_VERSION. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso.h18
2 files changed, 16 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 2bb4d832a6..e1d63271a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-06-28 Tobias Klauser <tklauser@distanz.ch>
+
+ * sysdeps/unix/sysv/linux/dl-vdso.h (PREPARE_VERSION): Remove macro.
+ (prepare_version_base): New helper inline function.
+ (prepare_version): New macro replacing PREPARE_VERSION.
+ (PREPARE_VERSION_KNOWN): Use prepare_version instead of PREPARE_VERSION.
+
2019-06-28 Florian Weimer <fweimer@redhat.com>
[BZ #24741]
diff --git a/sysdeps/unix/sysv/linux/dl-vdso.h b/sysdeps/unix/sysv/linux/dl-vdso.h
index 9e61ca7423..c418c697a3 100644
--- a/sysdeps/unix/sysv/linux/dl-vdso.h
+++ b/sysdeps/unix/sysv/linux/dl-vdso.h
@@ -24,19 +24,19 @@
#include <dl-hash.h>
/* Create version number record for lookup. */
-#define PREPARE_VERSION(var, vname, vhash) \
- struct r_found_version var; \
- var.name = vname; \
- var.hidden = 1; \
- var.hash = vhash; \
- assert (var.hash == _dl_elf_hash (var.name)); \
- /* We don't have a specific file where the symbol can be found. */ \
- var.filename = NULL
+static inline struct r_found_version
+prepare_version_base (const char *name, ElfW(Word) hash)
+{
+ assert (hash == _dl_elf_hash (name));
+ return (struct r_found_version) { name, hash, 1, NULL };
+}
+#define prepare_version(vname) \
+ prepare_version_base (VDSO_NAME_##vname, VDSO_HASH_##vname)
/* Use this for the known version sets defined below, where we
record their precomputed hash values only once, in this file. */
#define PREPARE_VERSION_KNOWN(var, vname) \
- PREPARE_VERSION (var, VDSO_NAME_##vname, VDSO_HASH_##vname)
+ struct r_found_version var = prepare_version (vname);
#define VDSO_NAME_LINUX_2_6 "LINUX_2.6"
#define VDSO_HASH_LINUX_2_6 61765110