summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-07-30 12:54:28 +0000
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-07-30 12:54:28 +0000
commit2c8df114186cfc92f53ef3aed0d4f57189fa7b76 (patch)
tree86b3d897ebc6f30ea8e51f338a0581fc735ab1c6
parent512b9e875d96cd4b1012e1c8baca9c01ac650043 (diff)
Disable smash stacking support by default, but allow to enable it as an experimental feature
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12010 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/base-files/Makefile1
-rw-r--r--toolchain/gcc/Config.in7
-rw-r--r--toolchain/gcc/Makefile8
3 files changed, 16 insertions, 0 deletions
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 5ab776df5..f4ef55d11 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -78,6 +78,7 @@ endef
define Package/libssp
$(call Package/gcc/Default)
+ DEPENDS:=@SSP_SUPPORT
TITLE:=GCC support library
endef
diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index e712d5934..24b86081c 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -53,6 +53,13 @@ config EXTRA_GCC_CONFIG_OPTIONS
help
Any additional gcc options you may want to include....
+config SSP_SUPPORT
+ bool
+ prompt "Enable Smash Stacking Protection support" if TOOLCHAINOPTS
+ default n
+ help
+ Enable Smash Stacking Protection support
+
config INSTALL_LIBSTDCPP
bool
prompt "Build/install c++ compiler and libstdc++?" if TOOLCHAINOPTS
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 31697989c..700463cb7 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -40,6 +40,12 @@ BUILD_DIR2:=$(BUILD_DIR_HOST)/gcc-$(PKG_VERSION)-final
SEP:=,
TARGET_LANGUAGES:="c$(if $(CONFIG_INSTALL_LIBSTDCPP),$(SEP)c++)$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)"
+ifeq ($(CONFIG_SSP_SUPPORT),y)
+ SSP:=--enable-ssp
+else
+ SSP:=--disable-ssp
+endif
+
EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-biarch --enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-uclibc)
define Stage1/Configure
@@ -62,6 +68,7 @@ define Stage1/Configure
--disable-nls \
--disable-libmudflap \
--disable-multilib \
+ $(SSP) \
$(EXTRA_TARGET) \
$(SOFT_FLOAT_CONFIG_OPTION) \
$(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \
@@ -96,6 +103,7 @@ define Stage2/Configure
--disable-nls \
--disable-libmudflap \
--disable-multilib \
+ $(SSP) \
$(EXTRA_TARGET) \
$(SOFT_FLOAT_CONFIG_OPTION) \
$(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \