aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/arch/arm.in1
-rw-r--r--config/arch/mips.in1
-rw-r--r--config/arch/powerpc.in1
-rw-r--r--config/arch/riscv.in1
-rw-r--r--config/arch/s390.in1
-rw-r--r--config/arch/sparc.in1
-rw-r--r--config/arch/x86.in1
-rw-r--r--config/cc/gcc.in11
-rw-r--r--config/target.in4
-rw-r--r--scripts/build/cc/gcc.sh10
10 files changed, 25 insertions, 7 deletions
diff --git a/config/arch/arm.in b/config/arch/arm.in
index 5b55c2ae..e50ec376 100644
--- a/config/arch/arm.in
+++ b/config/arch/arm.in
@@ -16,6 +16,7 @@
## select ARCH_SUPPORTS_WITH_FLOAT if ARCH_32 && !MULTILIB
## select ARCH_SUPPORTS_WITH_FPU if ARCH_32 && !MULTILIB
## select ARCH_SUPPORTS_SOFTFP if ARCH_32 && !MULTILIB
+## select ARCH_SUPPORTS_LIBSANITIZER
## select LINUX_REQUIRE_3_7_or_later if ARCH_64 && KERNEL_LINUX
## help The ARM architecture, as defined by:
diff --git a/config/arch/mips.in b/config/arch/mips.in
index ad8b1c64..a8c15c33 100644
--- a/config/arch/mips.in
+++ b/config/arch/mips.in
@@ -10,6 +10,7 @@
## select ARCH_SUPPORTS_WITH_ARCH
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_FLOAT
+## select ARCH_SUPPORTS_LIBSANITIZER if (!ARCH_64 || GCC_12_or_later)
## help The MIPS architecture, as defined by:
## help http://www.mips.com/
diff --git a/config/arch/powerpc.in b/config/arch/powerpc.in
index bb75ac0e..26954c88 100644
--- a/config/arch/powerpc.in
+++ b/config/arch/powerpc.in
@@ -12,6 +12,7 @@
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_FLOAT
## select ARCH_SUPPORTS_WITH_32_64
+## select ARCH_SUPPORTS_LIBSANITIZER
##
## help The PowerPC architecture, as defined by:
## help http://www.ibm.com/developerworks/eserver/articles/archguide.html
diff --git a/config/arch/riscv.in b/config/arch/riscv.in
index 6b98520c..3e6ffbfb 100644
--- a/config/arch/riscv.in
+++ b/config/arch/riscv.in
@@ -10,6 +10,7 @@
## select ARCH_SUPPORTS_WITH_ABI
## select ARCH_SUPPORTS_WITH_ARCH
## select ARCH_SUPPORTS_WITH_TUNE
+## select ARCH_SUPPORTS_LIBSANITIZER if ARCH_64
## select GCC_REQUIRE_7_or_later
## select BINUTILS_REQUIRE_2_28_or_later
## select GDB_REQUIRE_8_0_or_later if DEBUG_GDB
diff --git a/config/arch/s390.in b/config/arch/s390.in
index 64107b69..7e34451f 100644
--- a/config/arch/s390.in
+++ b/config/arch/s390.in
@@ -6,6 +6,7 @@
## select ARCH_DEFAULT_32
## select ARCH_USE_MMU
## select ARCH_SUPPORTS_WITH_FPU
+## select ARCH_SUPPORTS_LIBSANITIZER
##
## help Defined by IBM in:
## help 32-bit ESA/390 : http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/dz9ar008/CCONTENTS
diff --git a/config/arch/sparc.in b/config/arch/sparc.in
index fe46eaae..14d37e73 100644
--- a/config/arch/sparc.in
+++ b/config/arch/sparc.in
@@ -11,6 +11,7 @@
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_FLOAT
## select ARCH_SUPPORTS_WITH_32_64 if GCC_6_or_later
+## select ARCH_SUPPORTS_LIBSANITIZER
##
## help The SUN SPARC architecture, as defined by:
## help 32 bit: http://www.sparc.org/standards/V8.pdf
diff --git a/config/arch/x86.in b/config/arch/x86.in
index ec166557..cfdb1824 100644
--- a/config/arch/x86.in
+++ b/config/arch/x86.in
@@ -9,6 +9,7 @@
## select ARCH_SUPPORTS_WITH_CPU
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_32_64
+## select ARCH_SUPPORTS_LIBSANITIZER if ARCH_64
##
## help The x86 architecture, as defined by:
## help 32-bit (ia32) : http://www.intel.com/
diff --git a/config/cc/gcc.in b/config/cc/gcc.in
index ea7103b8..b77efba8 100644
--- a/config/cc/gcc.in
+++ b/config/cc/gcc.in
@@ -258,17 +258,24 @@ config CC_GCC_LIBQUADMATH
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBSANITIZER
- bool
+ tristate
prompt "Compile libsanitizer"
depends on THREADS_NATIVE
depends on !LIBC_UCLIBC_NG && !LIBC_MUSL # Currently lacks required headers (like netrom.h)
+ depends on ARCH_SUPPORTS_LIBSANITIZER
help
libsanitizer is a library which provides run-time sanitising of either
or both of:
- memory access patterns (out-of-bonds, use-after-free)
- racy data accesses (in multi-threaded programs)
- The default is 'N'. Say 'Y' if you need it, and report success/failure.
+ Option | libsanitizer | Associated ./configure switch
+ ---------+--------------------+--------------------------------
+ Y | forcibly used | --enable-libsanitizer
+ M | auto | (none, ./configure decides)
+ N | forcibly not used | --disable-libsanitizer
+
+ The default is 'N'. Say 'Y' or 'M' if you need it, and report success/failure.
config CC_GCC_LIBMPX
bool
diff --git a/config/target.in b/config/target.in
index 995457a0..21302622 100644
--- a/config/target.in
+++ b/config/target.in
@@ -112,6 +112,10 @@ config ARCH_SUPPORTS_FLAT_FORMAT
bool
#--------------------------------------
+config ARCH_SUPPORTS_LIBSANITIZER
+ bool
+
+#--------------------------------------
config ARCH_SUPPORTS_EITHER_ENDIAN
bool
help
diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh
index 53824a27..4db478bb 100644
--- a/scripts/build/cc/gcc.sh
+++ b/scripts/build/cc/gcc.sh
@@ -1004,11 +1004,11 @@ do_gcc_backend() {
extra_config+=(--disable-libquadmath-support)
fi
- if [ "${CT_CC_GCC_LIBSANITIZER}" = "y" ]; then
- extra_config+=(--enable-libsanitizer)
- else
- extra_config+=(--disable-libsanitizer)
- fi
+ case "${CT_CC_GCC_LIBSANITIZER}" in
+ y) extra_config+=(--enable-libsanitizer);;
+ m) ;;
+ "") extra_config+=(--disable-libsanitizer);;
+ esac
if [ "${CT_CC_GCC_HAS_LIBMPX}" = "y" ]; then
if [ "${CT_CC_GCC_LIBMPX}" = "y" ]; then