x86: fortify-string.h:63:33: error: '__builtin_memcmp' specified bound exceeds maximum object size

From: Naresh Kamboju
Date: Wed Feb 21 2024 - 10:33:15 EST


The x86 / i386 compilations encountered errors due to additional Kconfigs
incorporated from the selftests/net/*/config in the Linux next version.
The issue first appeared with the next-20240213 tag. This problem affects
the Linux next branch, but not the mainline Linus master branch.

Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>

The bisection points to the following commit id,
# first bad commit: [64259ce2a20ce2dcc585a2cb83d1366fb04a6008] ubsan:
reintroduce signed overflow sanitizer

Build errors:
-------------
In function 'memcmp',
inlined from 'nft_pipapo_insert' at
/builds/linux/net/netfilter/nft_set_pipapo.c:1258:7:
/builds/linux/include/linux/fortify-string.h:63:33: error:
'__builtin_memcmp' specified bound 18446744071562067968 exceeds
maximum object size 9223372036854775807 [-Werror=stringop-overread]
63 | #define __underlying_memcmp __builtin_memcmp
| ^
/builds/linux/include/linux/fortify-string.h:655:16: note: in
expansion of macro '__underlying_memcmp'
655 | return __underlying_memcmp(p, q, size);
| ^~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Steps to reproduce:
-----
tuxmake --runtime podman --target-arch x86_64 --toolchain gcc-13 \
--kconfig https://storage.tuxsuite.com/public/linaro/lkft/builds/2cfazKeUY5ZIZx7MgVwRAYSVe4w/config
\
debugkernel cpupower headers kernel kselftest modules

config link:
- https://storage.tuxsuite.com/public/linaro/lkft/builds/2cfazKeUY5ZIZx7MgVwRAYSVe4w/config
- https://storage.tuxsuite.com/public/linaro/lkft/builds/2cfazKeUY5ZIZx7MgVwRAYSVe4w/

--
Linaro LKFT
https://lkft.linaro.org