Re: [PATCH 2/4] x86/vdso: Use 32-bit CHECKFLAGS for compat vDSO
From: H. Peter Anvin
Date: Sat Jan 17 2026 - 17:03:39 EST
On January 16, 2026 12:09:34 AM PST, "Thomas Weißschuh" <thomas.weissschuh@xxxxxxxxxxxxx> wrote:
>On Fri, Jan 16, 2026 at 08:49:12AM +0100, Arnd Bergmann wrote:
>> On Fri, Jan 16, 2026, at 08:40, Thomas Weißschuh wrote:
>> > When building the compat vDSO the CHECKFLAGS from the 64-bit kernel
>> > are used. These are combined with the 32-bit CFLAGS. This confuses
>> > sparse, producing false-positive warnings or potentially missing
>> > real issues.
>> >
>> > Manually override the CHECKFLAGS for the compat vDSO with the correct
>> > 32-bit configuration.
>> >
>> > Reported-by: Sun Jian <sun.jian.kdev@xxxxxxxxx>
>> > Closes:
>> > https://lore.kernel.org/lkml/20260114084529.1676356-1-sun.jian.kdev@xxxxxxxxx/
>> > Signed-off-by: Thomas Weißschuh <thomas.weissschuh@xxxxxxxxxxxxx>
>>
>> Acked-by: Arnd Bergmann <arnd@xxxxxxxx>
>>
>> > +CHECKFLAGS_32 := $(CHECKFLAGS) -U__x86_64__ -D__i386__ -m32
>> > +
>> > $(obj)/vdso32.so.dbg: KBUILD_CFLAGS = $(KBUILD_CFLAGS_32)
>> > +$(obj)/vdso32.so.dbg: CHECKFLAGS = $(CHECKFLAGS_32)
>>
>> Have you checked if something like this is needed for x32 as well?
>
>It didn't show up in my testing. I think this is explained by the x32 vDSO
>being built as 64-bit and only converted to x32 afterwards.
>
>Thomas
This is going to crash hard with the changes in tip:x86/entry.
But yes, the x32 vdso is currently really just a wrapped version on the 64-bit code, and as long as there are no pointers to pointers used in the vdso ABI there isn't really a reason to change that.