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


Hi Adhemerval

On 2019-06-20 at 16:20:21 +0200, Carlos O'Donell <carlos@redhat.com> wrote:
> 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.

Are there any changes needed to this patch? The other one
("Add missing VDSO_{NAME,HASH}_* macros and use them for
PREPARE_VERSION_KNOWN", commit 85c748f9ff3db4a7796472f90d4d80e9987b7922)
was added to the tree, but this one not yet.

Thanks and best regards
Tobias

> 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]