On Sun, Apr 28, 2013 at 08:44:09PM +0200, Jan Kratochvil wrote: > index 1fa4249..9af0655 100644 > --- a/lib/ChangeLog > +++ b/lib/ChangeLog > @@ -1,3 +1,8 @@ > +2013-04-28 Jan Kratochvil <[email protected]> > + > + * eu-config.h (COMPAT_VERSION): Move its __typeof part ... > + (COMPAT_VERSION_SAMEPROTO): ... into this new wrapper. Twice. > + > 2013-04-26 Jan Kratochvil <[email protected]> > > * system.h (LE64, BE64): Move here the definitions from > diff --git a/lib/eu-config.h b/lib/eu-config.h > index 68efb82..94eede8 100644 > --- a/lib/eu-config.h > +++ b/lib/eu-config.h > @@ -171,12 +171,16 @@ asm (".section predict_data, \"aw\"; .previous\n" > # define NEW_VERSION(name, version) \ > asm (".symver " #name "," #name "@@@" #version); > # define COMPAT_VERSION(name, version, prefix) \ > - asm (".symver _compat." #version "." #name "," #name "@" #version); \ > + asm (".symver _compat." #version "." #name "," #name "@" #version); > +# define COMPAT_VERSION_SAMEPROTO(name, version, prefix) \ > + COMPAT_VERSION (name, version, prefix); \ > __typeof (name) _compat_##prefix##_##name asm ("_compat." #version "." > #name);
These macros are a bit hairy and I don't fully understand them. Hopefully Roland can comment on the change too. If I read this right then for the new COMPAT_VERSION macro we don't define a _compat_prefix_name symbol anymore. Why isn't that necessary in that case? (I don't fully understand what that asm statement is trying to accomplish to be honest.) I think it is slightly cleaner to keep the old name do the same thing. So have a COMPAT_VERSION macro that deals with the prototype of the function being the same. And a new macro COMPAT_VERSION_NEWPROTO that deals with compat functions that have different prototypes. Then you don't have to change any existing code. Thanks, Mark _______________________________________________ elfutils-devel mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/elfutils-devel
