diff options
-rw-r--r-- | config/arch/arm.in | 1 | ||||
-rw-r--r-- | config/arch/mips.in | 1 | ||||
-rw-r--r-- | config/arch/powerpc.in | 1 | ||||
-rw-r--r-- | config/arch/riscv.in | 1 | ||||
-rw-r--r-- | config/arch/s390.in | 1 | ||||
-rw-r--r-- | config/arch/sparc.in | 1 | ||||
-rw-r--r-- | config/arch/x86.in | 1 | ||||
-rw-r--r-- | config/cc/gcc.in | 11 | ||||
-rw-r--r-- | config/target.in | 4 | ||||
-rw-r--r-- | scripts/build/cc/gcc.sh | 10 |
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 |