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: <20260120100331.1f57aa99@pumpkin>
Date: Tue, 20 Jan 2026 10:03:31 +0000
From: David Laight <david.laight.linux@...il.com>
To: "Arnd Bergmann" <arnd@...db.de>
Cc: "H. Peter Anvin" <hpa@...or.com>, Thomas Weißschuh
 <thomas.weissschuh@...utronix.de>, "David S . Miller"
 <davem@...emloft.net>, "Andreas Larsson" <andreas@...sler.com>, "Andy
 Lutomirski" <luto@...nel.org>, "Thomas Gleixner" <tglx@...nel.org>, "Ingo
 Molnar" <mingo@...hat.com>, "Borislav Petkov" <bp@...en8.de>, "Dave Hansen"
 <dave.hansen@...ux.intel.com>, x86@...nel.org, "Heiko Carstens"
 <hca@...ux.ibm.com>, "Vasily Gorbik" <gor@...ux.ibm.com>, "Alexander
 Gordeev" <agordeev@...ux.ibm.com>, "Christian Borntraeger"
 <borntraeger@...ux.ibm.com>, "Sven Schnelle" <svens@...ux.ibm.com>,
 sparclinux@...r.kernel.org, linux-kernel@...r.kernel.org, Linux-Arch
 <linux-arch@...r.kernel.org>, linux-s390@...r.kernel.org
Subject: Re: [PATCH 4/4] asm-generic/bitsperlong.h: Add sanity checks for
 __BITS_PER_LONG

On Mon, 19 Jan 2026 22:39:53 +0100
"Arnd Bergmann" <arnd@...db.de> wrote:

> On Mon, Jan 19, 2026, at 22:12, H. Peter Anvin wrote:
> > On 2026-01-19 07:39, Thomas Weißschuh wrote:  
> >>>
> >>> Do we actually support any compilers which *don't* define __SIZEOF_LONG__?  
> >> 
> >> When building the kernel not. I used this pattern because it is used
> >> further up in the file. There it makes sense as it is actually a userspace
> >> header which needs to support all kinds of compilers.
> >> But this new check is gated behind __KERNEL__ anyways...
> >> For the next revision I will move it into the regular kernel-internal
> >> bitsperlong.h. That will be less confusing and still handle the vDSO build,
> >> due to the way our header hierarchy works.
> >>   
> >
> > The point is that we can simply do:
> >
> > #define __BITS_PER_LONG (__SIZEOF_LONG__ << 3)
> >
> > ... and it will always be consistent.  
> 
> We have discussed this before, but decided it was too early to
> assume that userspace compilers are recent enough for that.
> According to godbolt.org, gcc-4.1 lacks __SIZEOF_LONG__ while
> gcc-4.4 has it, as do all versions of clang. Not sure what other
> compilers one may encounter using Linux kernel headers.

For instance MSVC doesn't define __SIZEOF_LONG__ or __x86_64__.
Unlikely to be used, but...

So you can use __SIZEOF_LONG__ if it is defined, if not hunt for
something else (possible just fixed in the installed headers).
But in the latter case (at least) a compile-time check that the
value is correct makes sense.
And that can be done portably - probable with a negative array size.

	David

> 
>      Arnd
> 


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ