lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9b8f1beb0d444a84ab500ebdac756eba@AcuMS.aculab.com>
Date: Sun, 8 Sep 2024 19:43:59 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Peter Zijlstra' <peterz@...radead.org>, Josh Poimboeuf
	<jpoimboe@...nel.org>
CC: "live-patching@...r.kernel.org" <live-patching@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"x86@...nel.org" <x86@...nel.org>, Miroslav Benes <mbenes@...e.cz>, "Petr
 Mladek" <pmladek@...e.com>, Joe Lawrence <joe.lawrence@...hat.com>, "Jiri
 Kosina" <jikos@...nel.org>, Marcos Paulo de Souza <mpdesouza@...e.com>, "Song
 Liu" <song@...nel.org>
Subject: RE: [RFC 05/31] x86/compiler: Tweak __UNIQUE_ID naming

From: Peter Zijlstra
> Sent: 03 September 2024 08:57
> 
> On Mon, Sep 02, 2024 at 08:59:48PM -0700, Josh Poimboeuf wrote:
> > Add an underscore between the "name" and the counter so tooling can
> > distinguish between the non-unique and unique portions of the symbol
> > name.
> >
> > This will come in handy for "objtool klp diff".
> >
> > Signed-off-by: Josh Poimboeuf <jpoimboe@...nel.org>
> > ---
> >  include/linux/compiler.h | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/linux/compiler.h b/include/linux/compiler.h
> > index 8c252e073bd8..d3f100821d45 100644
> > --- a/include/linux/compiler.h
> > +++ b/include/linux/compiler.h
> > @@ -186,7 +186,11 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
> >  	__asm__ ("" : "=r" (var) : "0" (var))
> >  #endif
> >
> > -#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
> > +/* Format: __UNIQUE_ID_<name>_<__COUNTER__> */
> > +#define __UNIQUE_ID(name)					\
> > +	__PASTE(__UNIQUE_ID_,					\
> > +	__PASTE(name,						\
> > +	__PASTE(_, __COUNTER__)))
> 
> OK, that's just painful to read; how about so?
> 
> 	__PASTE(__UNIQUE_ID_,					\
> 	        __PASTE(name,					\
> 		        __PASTE(_, __COUNTER)))

Why not just generate name_nnnnn?
I believe it that the 'prefix' was added to allow multiple unique names be
generated on a single line on versions of gcc that didn't support __COUNTER__
and __LINE__ was used instead.
So prior to that the result would have been __UNIQUE_ID_nnnn with no indication
of the variable name.

In one of the min/max changes I suggested just passing __COUNTER__ through
the required 2 #defines and then just appending it to the variable name.
IIRC Linus liked that idea :-)
Need to find time to write the patch...

After all __PASTE() itself is only really necessary for a K&R C cpp.
Possibly still relevant for .S files - not sure.
(You had to generate a/**/b to get ab when the comment was removed.)

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ