aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain
diff options
context:
space:
mode:
authorIan Cooper <iancooper@hotmail.com>2020-06-15 22:14:04 +0100
committerHauke Mehrtens <hauke@hauke-m.de>2020-06-17 23:57:07 +0200
commitb933f9cf0cb254e368027cad6d5799e45b237df5 (patch)
tree26bbaa3322a276dac5d7cf456d51c328baac9a7e /toolchain
parentba7ddae9a9d0aae9aaf00cfb2438286c2ee21098 (diff)
downloadupstream-b933f9cf0cb254e368027cad6d5799e45b237df5.tar.gz
upstream-b933f9cf0cb254e368027cad6d5799e45b237df5.tar.bz2
upstream-b933f9cf0cb254e368027cad6d5799e45b237df5.zip
toolchain: remove gcc libssp and use libc variant
Removes the standalone implementation of stack smashing protection in gcc's libssp in favour of the native implementation available in glibc and uclibc. Musl libc already uses its native ssp, so this patch does not affect musl-based toolchains. Stack smashing protection configuration options are now uniform across all supported libc variants. This also makes kernel-level stack smashing protection available for x86_64 and i386 builds using non-musl libc. Signed-off-by: Ian Cooper <iancooper@hotmail.com>
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/Config.in2
-rw-r--r--toolchain/gcc/Config.in8
-rw-r--r--toolchain/gcc/common.mk9
-rw-r--r--toolchain/glibc/common.mk3
4 files changed, 4 insertions, 18 deletions
diff --git a/toolchain/Config.in b/toolchain/Config.in
index 762f4e10d7..cb557d4ad3 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -284,7 +284,7 @@ config USE_MUSL
bool
config SSP_SUPPORT
- default y if USE_MUSL || GCC_LIBSSP
+ default y if !PKG_CC_STACKPROTECTOR_NONE
bool
config USE_EXTERNAL_LIBC
diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index 7d7f34210a..4b2ba7aaae 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -47,14 +47,6 @@ config GCC_DEFAULT_SSP
help
Use gcc configure option --enable-default-ssp to turn on -fstack-protector-strong by default.
-config GCC_LIBSSP
- bool
- prompt "Build gcc libssp" if TOOLCHAINOPTS
- depends on !USE_MUSL
- default y if !USE_MUSL
- help
- Enable Stack-Smashing Protection support
-
config SJLJ_EXCEPTIONS
bool
prompt "Use setjump()/longjump() exceptions" if TOOLCHAINOPTS
diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk
index 7fb30285aa..ec3ea8fff1 100644
--- a/toolchain/gcc/common.mk
+++ b/toolchain/gcc/common.mk
@@ -104,6 +104,7 @@ GCC_CONFIGURE:= \
--disable-multilib \
--disable-libmpx \
--disable-nls \
+ --disable-libssp \
$(GRAPHITE_CONFIGURE) \
--with-host-libstdcxx=-lstdc++ \
$(SOFT_FLOAT_CONFIG_OPTION) \
@@ -131,14 +132,6 @@ ifneq ($(CONFIG_GCC_DEFAULT_SSP),)
--enable-default-ssp
endif
-ifneq ($(CONFIG_GCC_LIBSSP),)
- GCC_CONFIGURE+= \
- --enable-libssp
-else
- GCC_CONFIGURE+= \
- --disable-libssp
-endif
-
ifneq ($(CONFIG_EXTRA_TARGET_ARCH),)
GCC_CONFIGURE+= \
--enable-biarch \
diff --git a/toolchain/glibc/common.mk b/toolchain/glibc/common.mk
index db4f0fcc0e..f0b95d3cc7 100644
--- a/toolchain/glibc/common.mk
+++ b/toolchain/glibc/common.mk
@@ -39,7 +39,6 @@ ifeq ($(ARCH),mips64)
endif
endif
-
# -Os miscompiles w. 2.24 gcc5/gcc6
# only -O2 tested by upstream changeset
# "Optimize i386 syscall inlining for GCC 5"
@@ -61,6 +60,8 @@ GLIBC_CONFIGURE:= \
--without-cvs \
--enable-add-ons \
--$(if $(CONFIG_SOFT_FLOAT),without,with)-fp \
+ $(if $(CONFIG_PKG_CC_STACKPROTECTOR_REGULAR),--enable-stack-protector=yes) \
+ $(if $(CONFIG_PKG_CC_STACKPROTECTOR_STRONG),--enable-stack-protector=strong) \
--enable-kernel=4.14.0
export libc_cv_ssp=no