This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Replace PREPARE_VERSION macro with inline function
- From: Carlos O'Donell <carlos at redhat dot com>
- To: Tobias Klauser <tklauser at distanz dot ch>, libc-alpha at sourceware dot org, Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- Date: Thu, 20 Jun 2019 10:20:21 -0400
- Subject: Re: [PATCH] Replace PREPARE_VERSION macro with inline function
- References: <20190524153941.10128-1-tklauser@distanz.ch>
On 5/24/19 11:39 AM, Tobias Klauser wrote:
> Suggested by Adhemerval Zanella
Adhemerval,
Since you made this suggestion I'll let you review :-)
Tobias has copyright status with FSF, so we can install this patch.
Thank you Tobias!
> 2019-05-24 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.
> ---
> sysdeps/unix/sysv/linux/dl-vdso.h | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/sysdeps/unix/sysv/linux/dl-vdso.h b/sysdeps/unix/sysv/linux/dl-vdso.h
> index 9e61ca742363..c418c697a3a4 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
>
--
Cheers,
Carlos.