Arnd Bergmann
unread,May 15, 2026, 5:21:07 AM (5 days ago) May 15Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to linux-h...@vger.kernel.org, linux...@vger.kernel.org, Kees Cook, Arnd Bergmann, Marco Elver, Andrey Konovalov, Andrey Ryabinin, kasa...@googlegroups.com, Heiko Carstens, Vasily Gorbik, Alexander Gordeev, Christian Borntraeger, Sven Schnelle, Andrew Morton, Nick Terrell, David Sterba, Nathan Chancellor, linux-...@vger.kernel.org
From: Arnd Bergmann <
ar...@arndb.de>
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'
lib/tests/overflow_kunit.c: In function 'same_type_test':
lib/tests/overflow_kunit.c:1008:13: note: variable tracking size limit exceeded with '-fvar-tracking-assignments', retrying without
fs/fat/fat_test.c: In function 'fat_clus_to_blknr_test':
fs/fat/fat_test.c:33:1: error: the frame size of 4736 bytes is larger than 1536 bytes [-Werror=frame-larger-than=]
lib/crypto/chacha-block-generic.c: In function 'chacha_permute':
lib/crypto/chacha-block-generic.c:65:1: error: the frame size of 2000 bytes is larger than 1536 bytes [-Werror=frame-larger-than=]
lib/crypto/sha3.c: In function 'sha3_keccakf_generic':
lib/crypto/sha3.c:175:1: error: the frame size of 2248 bytes is larger than 1536 bytes [-Werror=frame-larger-than=]
lib/zstd/decompress/huf_decompress.c: In function 'HUF_decompress4X2_usingDTable_internal_default':
lib/zstd/decompress/huf_decompress.c:1512:1: error: the frame size of 1352 bytes is larger than 1280 bytes [-Werror=frame-larger-than=]
What I observe here is a huge increase in generated calls to
__ubsan_handle_type_mismatch_v1() that ends up thowing off a number of
compiler optimizations that the kernel relies on.
I have not been able to figure out why this happens on s390 but not arm64,
arm or x86, if other toolchain versions are affected by the same thing,
and if this is a problem in gcc or in the kernel itself, e.g. some
variable being identified as unaligned when it should be aligned.
This clearly needs more investigation to figure out properly what is
going on, but turning it off is currently required for randconfig testing.
Cc: Kees Cook <
ke...@kernel.org>
Cc: Marco Elver <
el...@google.com>
Cc: Andrey Konovalov <
andre...@gmail.com>
Cc: Andrey Ryabinin <
ryabin...@gmail.com>
Cc:
kasa...@googlegroups.com
Cc:
linux-h...@vger.kernel.org
Cc: Heiko Carstens <
h...@linux.ibm.com>
Cc: Vasily Gorbik <
g...@linux.ibm.com>
Cc: Alexander Gordeev <
agor...@linux.ibm.com>
Cc: Christian Borntraeger <
bornt...@linux.ibm.com>
Cc: Sven Schnelle <
sv...@linux.ibm.com>
Cc:
linux...@vger.kernel.org
Signed-off-by: Arnd Bergmann <
ar...@arndb.de>
---
lib/Kconfig.ubsan | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan
index 1ecaae7064d2..3fc03a6b5af4 100644
--- 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
default !HAVE_EFFICIENT_UNALIGNED_ACCESS
depends on !UBSAN_TRAP && !COMPILE_TEST
depends on $(cc-option,-fsanitize=alignment)
--
2.39.5