aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2010-07-28 23:55:10 +0200
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2010-07-28 23:55:10 +0200
commit8bb436dad16d1157121c29b35fa95f40b0c08250 (patch)
tree7c754c584b8b9c030a588d32690d71e29be8c6ba
parent61ebaa97cae48a4f37d4272426c9c85c3cd462cb (diff)
downloadcrosstool-ng-8bb436dad16d1157121c29b35fa95f40b0c08250.tar.gz
crosstool-ng-8bb436dad16d1157121c29b35fa95f40b0c08250.tar.bz2
crosstool-ng-8bb436dad16d1157121c29b35fa95f40b0c08250.zip
cc/gcc: add option to enable/disable libmudflap
For some scenarii, libmudflap is not very usefull or can break the build. Make in an optioon that defaults to 'N' to be on the safe side. For the core gcc-s, there is absolutely no need to build libmidflap. Idea from: Bernhard Pfund <bernhard@chapter7.ch>
-rw-r--r--config/cc/gcc.in.214
-rw-r--r--scripts/build/cc/gcc.sh6
2 files changed, 20 insertions, 0 deletions
diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2
index 33cbbc54..d6827697 100644
--- a/config/cc/gcc.in.2
+++ b/config/cc/gcc.in.2
@@ -51,3 +51,17 @@ config CC_GCC_SJLJ_EXCEPTIONS
It can happen that ./configure is wrong in some cases. Known
case is for ARM big endian, where you should say 'N'.
+
+config CC_GCC_LIBMUDFLAP
+ bool
+ prompt "Compile libmudflap"
+ default n
+ help
+ libmudflap is a pointer-use checking tool, which can detect
+ various mis-usages of pointers in C and (to some extents) C++.
+
+ You should say 'N' here, as libmduflap generates instrumented
+ code (thus it is a bit bigger and a bit slower) and requires
+ re-compilation and re-link, while it exists better run-time
+ alternatives (eg. DUMA, dmalloc...) that need neither re-
+ compilation nor re-link.
diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh
index af21e962..f11517c7 100644
--- a/scripts/build/cc/gcc.sh
+++ b/scripts/build/cc/gcc.sh
@@ -195,6 +195,7 @@ do_cc_core() {
--prefix="${core_prefix_dir}" \
--with-local-prefix="${CT_SYSROOT_DIR}" \
--disable-multilib \
+ --disable-libmudflap \
${CC_CORE_SYSROOT_ARG} \
"${extra_config[@]}" \
--disable-nls \
@@ -340,6 +341,11 @@ do_cc() {
if [ -n "${CC_ENABLE_CXX_FLAGS}" ]; then
extra_config+=("--enable-cxx-flags=${CC_ENABLE_CXX_FLAGS}")
fi
+ if [ "${CT_CC_GCC_LIBMUDFLAP}" = "y" ]; then
+ extra_config+=(--enable-libmudflap)
+ else
+ extra_config+=(--disable-libmudflap)
+ fi
# When companion libraries are build static (eg !shared),
# the libstdc++ is not pulled automatically, although it