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]

Re: [PATCH] Replace PREPARE_VERSION macro with inline function


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.


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