summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/gcc/Config.in.host15
-rw-r--r--package/gcc/gcc-final/gcc-final.mk8
-rw-r--r--package/gcc/gcc.mk24
3 files changed, 30 insertions, 17 deletions
diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index 111da3bea5..116fd24349 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -155,3 +155,18 @@ config BR2_GCC_ENABLE_OPENMP
depends on !BR2_PTHREADS_NONE && !BR2_avr32 && !BR2_arc
help
Enable OpenMP support for the compiler
+
+config BR2_GCC_ENABLE_LIBMUDFLAP
+ bool "Enable libmudflap support"
+ # There are architectures, or specific configurations for
+ # which mudflap is not supported.
+ depends on !BR2_avr32 && !BR2_bfin && !BR2_ARM_INSTRUCTIONS_THUMB && !BR2_powerpc_SPE
+ help
+ libmudflap is a gcc library used for the mudflap pointer
+ debugging functionality. It is only needed if you intend to
+ use the -fmudflap gcc flag.
+
+ See http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging and
+ the help of the gcc -fmudflap option for more details.
+
+ If you're unsure, leave this option disabled.
diff --git a/package/gcc/gcc-final/gcc-final.mk b/package/gcc/gcc-final/gcc-final.mk
index 69a4ccd6af..b396382788 100644
--- a/package/gcc/gcc-final/gcc-final.mk
+++ b/package/gcc/gcc-final/gcc-final.mk
@@ -119,6 +119,14 @@ ifeq ($(BR2_INSTALL_OBJC),y)
HOST_GCC_FINAL_USR_LIBS += libobjc
endif
+ifeq ($(BR2_GCC_ENABLE_LIBMUDFLAP),y)
+ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
+HOST_GCC_FINAL_USR_LIBS += libmudflapth
+else
+HOST_GCC_FINAL_USR_LIBS += libmudflap
+endif
+endif
+
ifneq ($(HOST_GCC_FINAL_USR_LIBS),)
define HOST_GCC_FINAL_INSTALL_USR_LIBS
mkdir -p $(TARGET_DIR)/usr/lib
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index 5636c6f255..0c0cc99a61 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -125,6 +125,12 @@ else
HOST_GCC_COMMON_CONF_OPT += --disable-tls
endif
+ifeq ($(BR2_GCC_ENABLE_LIBMUDFLAP),y)
+HOST_GCC_COMMON_CONF_OPT += --enable-libmudflap
+else
+HOST_GCC_COMMON_CONF_OPT += --disable-libmudflap
+endif
+
ifeq ($(BR2_PTHREADS_NONE),y)
HOST_GCC_COMMON_CONF_OPT += \
--disable-threads \
@@ -198,25 +204,9 @@ HOST_GCC_COMMON_CONF_OPT += \
--with-bugurl="http://bugs.buildroot.net/"
endif
-# AVR32 GCC special configuration
-ifeq ($(BR2_avr32),y)
-HOST_GCC_COMMON_CONF_OPT += --disable-libmudflap
-endif
-
-# ARM Thumb and mudflap aren't friends
-ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
-HOST_GCC_COMMON_CONF_OPT += --disable-libmudflap
-endif
-
-# Blackfin doesn't do mudflap
-ifeq ($(BR2_bfin),y)
-HOST_GCC_COMMON_CONF_OPT += --disable-libmudflap
-endif
-
-# Disable mudflap and enable proper double/long double for SPE ABI
+# Enable proper double/long double for SPE ABI
ifeq ($(BR2_powerpc_SPE),y)
HOST_GCC_COMMON_CONF_OPT += \
- --disable-libmudflap \
--enable-e500_double \
--with-long-double-128
endif
OpenPOWER on IntegriCloud