From a56df802eb3bc57d6ae883ad30c1825de0b24c44 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 31 Aug 2014 17:30:34 +0200 Subject: cc/gcc: add option to enable/disable libsanitizer libsaniotizer requires a few headers that are not in uClibc, for example. Also, it is only available for native threads (NPTL under glibc.) Finally, it is only available starting with gcc-4.8. Signed-off-by: "Yann E. MORIN" diff --git a/config/cc/gcc.in b/config/cc/gcc.in index 7e2250f..5051804 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -368,6 +368,7 @@ config CC_GCC_4_8 select CC_GCC_HAS_BUILD_ID select CC_GCC_HAS_LNK_HASH_STYLE select CC_GCC_HAS_LIBQUADMATH + select CC_GCC_HAS_LIBSANITIZER select CC_SUPPORT_GOLANG config CC_GCC_4_8_or_later @@ -385,6 +386,7 @@ config CC_GCC_4_9 select CC_GCC_HAS_BUILD_ID select CC_GCC_HAS_LNK_HASH_STYLE select CC_GCC_HAS_LIBQUADMATH + select CC_GCC_HAS_LIBSANITIZER select CC_SUPPORT_GOLANG config CC_GCC_4_9_or_later @@ -402,6 +404,7 @@ config CC_GCC_latest select CC_GCC_HAS_BUILD_ID select CC_GCC_HAS_LNK_HASH_STYLE select CC_GCC_HAS_LIBQUADMATH + select CC_GCC_HAS_LIBSANITIZER config CC_GCC_HAS_GRAPHITE bool @@ -482,6 +485,9 @@ config CC_GCC_USE_LIBELF config CC_GCC_HAS_LIBQUADMATH bool +config CC_GCC_HAS_LIBSANITIZER + bool + config CC_VERSION string # Don't remove next line diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2 index ef97698..1b9515c 100644 --- a/config/cc/gcc.in.2 +++ b/config/cc/gcc.in.2 @@ -143,6 +143,20 @@ config CC_GCC_LIBQUADMATH The default is 'N'. Say 'Y' if you need it, and report success/failure. +config CC_GCC_LIBSANITIZER + bool + prompt "Compile libsanitizer" + depends on CC_GCC_HAS_LIBSANITIZER + depends on THREADS_NATIVE + depends on ! LIBC_uClibc # Currently lacks required headers (like netrom.h) + 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. + #----------------------------------------------------------------------------- comment "Misc. obscure options." diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh index 173ddbf..9dbc41e 100644 --- a/scripts/build/cc/gcc.sh +++ b/scripts/build/cc/gcc.sh @@ -657,9 +657,6 @@ do_cc_backend() { if [ "${CT_THREADS}" = "none" ]; then extra_config+=(--disable-libatomic) fi - if [ "${CT_THREADS}" != "nptl" ]; then - extra_config+=(--disable-libsanitizer) - fi fi if [ "${CT_CC_GCC_LIBMUDFLAP}" = "y" ]; then extra_config+=(--enable-libmudflap) @@ -685,6 +682,13 @@ do_cc_backend() { extra_config+=(--disable-libquadmath-support) fi fi + if [ "${CT_CC_GCC_HAS_LIBSANITIZER}" = "y" ]; then + if [ "${CT_CC_GCC_LIBSANITIZER}" = "y" ]; then + extra_config+=(--enable-libsanitizer) + else + extra_config+=(--disable-libsanitizer) + fi + fi final_LDFLAGS+=("${ldflags}") -- cgit v0.10.2-6-g49f6