mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-08 08:30:47 -09:00
package/gcc: disable libsanitizer for mips{el} and gcc > 12
Since [1], gcc contains a workaround for struct_kernel_stat_sz
definition and apply a local patch when updating libsanitizer with
upstream (llvm-project) [2].
Since gcc 12, the workaround is not enough and trigger the following
error:
In file included from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cpp:21:
../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cpp:75:38: error: static assertion failed
75 | COMPILER_CHECK(struct_kernel_stat_sz == sizeof(struct stat));
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
Disable libsanitizer for now.
Note: Only glibc toolchains are affected since libsanitizer is
disabled for musl and uClibc-ng toolchains [3].
Fixes:
https://gitlab.com/kubu93/toolchains-builder/-/jobs/2510178606
[1] http://gcc.gnu.org/ml/gcc/2018-03/msg00133.html
[2] https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=9f943b2446f2d0a345bbf9b4be3d3a4316372270
[3] https://git.buildroot.net/buildroot/commit/?id=5f4d658d888b539de9a6247ae5b1a0999de5d4ec
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
committed by
Thomas Petazzoni
parent
e0ff7f5351
commit
4011ff535e
@@ -142,6 +142,12 @@ ifeq ($(BR2_mips64)$(BR2_mips64el):$(BR2_MIPS_NABI32),y:y)
|
||||
HOST_GCC_COMMON_CONF_OPTS += --disable-libsanitizer
|
||||
endif
|
||||
|
||||
# libsanitizer bundled in gcc 12 fails to build for mips32 due to
|
||||
# mixing kernel and user struct stat.
|
||||
ifeq ($(BR2_mips)$(BR2_mipsel):$(BR2_TOOLCHAIN_GCC_AT_LEAST_12),y:y)
|
||||
HOST_GCC_COMMON_CONF_OPTS += --disable-libsanitizer
|
||||
endif
|
||||
|
||||
# The logic in libbacktrace/configure.ac to detect if __sync builtins
|
||||
# are available assumes they are as soon as target_subdir is not
|
||||
# empty, i.e when cross-compiling. However, some platforms do not have
|
||||
|
||||
Reference in New Issue
Block a user