On Fri, May 15, 2026, at 18:53, Heiko Carstens wrote:
> On Fri, May 15, 2026 at 11:19:54AM +0200, Arnd Bergmann wrote:
>> From: Arnd Bergmann <[email protected]>
>> 
>> Testing randconfig builds on s390 with gcc-15, I came across a number of
>> seemingly unrelated build failures that ended up all being caused
>> by the -fsanitize=alignment option:
>> 
>> s390-linux-ld: kernel/sched/build_policy.o: in function 
>> `thread_group_cputime':
>> include/linux/seqlock.h:1286:(.text+0x1f738): undefined reference to 
>> `__scoped_seqlock_bug'
>
> Does this only happen with __scoped_seqlock_bug()?
> I just enabled UBSAN_ALIGNMENT, and with gcc-16 I can see this too.

Yes, it's specifically this one file that triggers the
__scoped_seqlock_bug check.

>> --- a/lib/Kconfig.ubsan
>> +++ b/lib/Kconfig.ubsan
>> @@ -152,6 +152,7 @@ config UBSAN_ENUM
>>  
>>  config UBSAN_ALIGNMENT
>>      bool "Perform checking for misaligned pointer usage"
>> +    depends on !S390 || BROKEN
>
> Wouldn't it be more appropriate to extend the ifdef at __scoped_seqlock_bug()
> which emits an empty function for exactly this reason for some gcc versions
> and kernel configs?
>
> That is: add CONFIG_UBSAN_ALIGNMENT to the list (copy-pasted - white space
> damage below)?

This would work around the failed check in kernel/sched/build_policy.o
but not address the underlying issue, or any other the other symptoms.

After trying to come up with a simplified test case that shows
a problem on s390 but not arm64, I have now realized what is going
on: My randconfig build script force-enables 'CONFIG_COMPILE_TEST=y'
on all architectures, in order to avoid known-broken configurations
and options that lead to a longer build time but are unlikely
to find additional bugs. UBSAN_ALIGNMENT in turn depends on
!COMPILE_TEST as of d0a3ac549f38 ("ubsan: enable for all*config
builds"). On s390, COMPILE_TEST is unavailable when MMIO is
disabled, so randconfig builds sometimes run into those broken
configurations on s390 that I don't see elsewhere.

I think your suggestion for __scoped_seqlock_bug makes sense,
and I've sent a fix for the fs/fat/ issue. I'll see if I can
also reproduce the other issues across architectures and come
up with local workarounds for UBSAN_ALIGNMENT.

       Arnd

Reply via email to