summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Dusser <julien.dusser@free.fr>2018-01-07 18:47:21 +0100
committerHauke Mehrtens <hauke@hauke-m.de>2018-01-27 19:02:48 +0100
commit241e6dd3e92c4f215b8ac75379a4b5aeaeb92171 (patch)
treedf5884c1112280f9d9c04f292e854e55e7b29bb1
parent55779569eb817361222d653accd929a752b8327d (diff)
downloadmtk-20170518-241e6dd3e92c4f215b8ac75379a4b5aeaeb92171.zip
mtk-20170518-241e6dd3e92c4f215b8ac75379a4b5aeaeb92171.tar.gz
mtk-20170518-241e6dd3e92c4f215b8ac75379a4b5aeaeb92171.tar.bz2
build: cleanup SSP_SUPPORT configure option
Configure variable SSP_SUPPORT is ambiguous for packages (tor, openssh, avahi, freeswitch). It means 'toolchain supporting SSP', but for toolchain and depends it means 'build gcc with libssp'. Musl no longer uses libssp (1877bc9d8f), it has internal support, so SSP_SUPPORT was disabled leading some package to not use SSP. No information why Glibc and uClibc use libssp, but they may also provide their own SSP support. uClibc used it own with commit 933b588e25 but it was reverted in f3cacb9e84 without details. Create an new configure GCC_LIBSSP and automatically enable SSP_SUPPORT if either USE_MUSL or GCC_LIBSSP. Signed-off-by: Julien Dusser <julien.dusser@free.fr>
-rw-r--r--config/Config-build.in4
-rw-r--r--include/package-defaults.mk2
-rw-r--r--package/libs/toolchain/Makefile2
-rw-r--r--toolchain/Config.in4
-rw-r--r--toolchain/gcc/Config.in4
-rw-r--r--toolchain/gcc/common.mk2
6 files changed, 11 insertions, 7 deletions
diff --git a/config/Config-build.in b/config/Config-build.in
index 660da1c..a082a5e 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -210,11 +210,11 @@ menu "Global build settings"
bool "None"
config PKG_CC_STACKPROTECTOR_REGULAR
bool "Regular"
- select SSP_SUPPORT if !USE_MUSL
+ select GCC_LIBSSP if !USE_MUSL
depends on KERNEL_CC_STACKPROTECTOR_REGULAR
config PKG_CC_STACKPROTECTOR_STRONG
bool "Strong"
- select SSP_SUPPORT if !USE_MUSL
+ select GCC_LIBSSP if !USE_MUSL
depends on !GCC_VERSION_4_8
depends on KERNEL_CC_STACKPROTECTOR_STRONG
endchoice
diff --git a/include/package-defaults.mk b/include/package-defaults.mk
index 0bca076..6bbfdcc 100644
--- a/include/package-defaults.mk
+++ b/include/package-defaults.mk
@@ -5,7 +5,7 @@
# See /LICENSE for more information.
#
-PKG_DEFAULT_DEPENDS = +libc +SSP_SUPPORT:libssp +USE_GLIBC:librt +USE_GLIBC:libpthread
+PKG_DEFAULT_DEPENDS = +libc +GCC_LIBSSP:libssp +USE_GLIBC:librt +USE_GLIBC:libpthread
ifneq ($(PKG_NAME),toolchain)
PKG_FIXUP_DEPENDS = $(if $(filter kmod-%,$(1)),$(2),$(PKG_DEFAULT_DEPENDS) $(filter-out $(PKG_DEFAULT_DEPENDS),$(2)))
diff --git a/package/libs/toolchain/Makefile b/package/libs/toolchain/Makefile
index ce0acd1..febc7c2 100644
--- a/package/libs/toolchain/Makefile
+++ b/package/libs/toolchain/Makefile
@@ -83,7 +83,7 @@ endef
define Package/libssp
$(call Package/gcc/Default)
- DEPENDS+=@SSP_SUPPORT
+ DEPENDS+=@GCC_LIBSSP
TITLE:=GCC support library
endef
diff --git a/toolchain/Config.in b/toolchain/Config.in
index bf7b9c3..3de2b10 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -286,6 +286,10 @@ config USE_MUSL
default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && !(arc || powerpc64)
bool
+config SSP_SUPPORT
+ default y if USE_MUSL || GCC_LIBSSP
+ bool
+
config USE_EXTERNAL_LIBC
bool
default y if EXTERNAL_TOOLCHAIN || NATIVE_TOOLCHAIN
diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index 0fe0ea2..30ac137 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -52,9 +52,9 @@ config GCC_DEFAULT_SSP
help
Use gcc configure option --enable-default-ssp to turn on -fstack-protector-strong by default.
-config SSP_SUPPORT
+config GCC_LIBSSP
bool
- prompt "Enable Stack-Smashing Protection support" if TOOLCHAINOPTS
+ prompt "Build gcc libssp" if TOOLCHAINOPTS
depends on !USE_MUSL
default y if !USE_MUSL
help
diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk
index ece71ef..fafc0c1 100644
--- a/toolchain/gcc/common.mk
+++ b/toolchain/gcc/common.mk
@@ -143,7 +143,7 @@ ifneq ($(CONFIG_GCC_DEFAULT_SSP),)
--enable-default-ssp
endif
-ifneq ($(CONFIG_SSP_SUPPORT),)
+ifneq ($(CONFIG_GCC_LIBSSP),)
GCC_CONFIGURE+= \
--enable-libssp
else