build: cleanup SSP_SUPPORT configure option
authorJulien Dusser <julien.dusser@free.fr>
Sun, 7 Jan 2018 17:47:21 +0000 (18:47 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 27 Jan 2018 18:02:48 +0000 (19:02 +0100)
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>
config/Config-build.in
include/package-defaults.mk
package/libs/toolchain/Makefile
toolchain/Config.in
toolchain/gcc/Config.in
toolchain/gcc/common.mk

index 660da1c47f4d676cea5110c15dd89eda23f577c7..a082a5e0e2ed9ad3e9749440c3f244aee8668072 100644 (file)
@@ -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
index 0bca076e72d190682b87dfd65bddfa7c06f98277..6bbfdcc3cc221058787bbf31219aef7786ce5ad3 100644 (file)
@@ -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)))
index ce0acd19b2d224718b84a389e712fe3c8342772c..febc7c2dbcae69c9842ffb3c2546786c1ba125d4 100644 (file)
@@ -83,7 +83,7 @@ endef
 
 define Package/libssp
 $(call Package/gcc/Default)
-  DEPENDS+=@SSP_SUPPORT
+  DEPENDS+=@GCC_LIBSSP
   TITLE:=GCC support library
 endef
 
index bf7b9c33d02c277b985d55c9a97b45c3652897db..3de2b108b7b84ae004d28ed67dd525777e67908b 100644 (file)
@@ -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
index 0fe0ea2957c38b322d502f61b17925f9fb5e0bc2..30ac1378737c26e8849c0c6c547ce34a597e747d 100644 (file)
@@ -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
index ece71ef0289c2824f63a3503849219fc87bef858..fafc0c167192ce3926346822e57d38da01e1e618 100644 (file)
@@ -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