diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host index 21dc84e498..99dc24d100 100644 --- a/package/binutils/Config.in.host +++ b/package/binutils/Config.in.host @@ -1,5 +1,11 @@ comment "Binutils Options" +config BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI + bool + default y + depends on !BR2_microblaze + depends on !(BR2_nios2 && (BR2_BINUTILS_VERSION_2_28_X || BR2_BINUTILS_VERSION_2_29_X)) + choice prompt "Binutils Version" default BR2_BINUTILS_VERSION_2_28_X if BR2_ARM_INSTRUCTIONS_THUMB diff --git a/package/glibc/Config.in b/package/glibc/Config.in index 57a2e833d2..7821251087 100644 --- a/package/glibc/Config.in +++ b/package/glibc/Config.in @@ -4,6 +4,7 @@ config BR2_PACKAGE_GLIBC bool default y select BR2_PACKAGE_LINUX_HEADERS - select BR2_TOOLCHAIN_HAS_SSP - + select BR2_TOOLCHAIN_HAS_SSP if BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI + help + https://www.gnu.org/software/libc/ endif diff --git a/package/musl/Config.in b/package/musl/Config.in index bedc50cd45..67e9e78a14 100644 --- a/package/musl/Config.in +++ b/package/musl/Config.in @@ -4,6 +4,7 @@ config BR2_PACKAGE_MUSL depends on BR2_TOOLCHAIN_USES_MUSL select BR2_PACKAGE_LINUX_HEADERS # SSP broken on i386/ppc: http://www.openwall.com/lists/musl/2016/12/04/2 - select BR2_TOOLCHAIN_HAS_SSP if !(BR2_i386 || BR2_powerpc) + select BR2_TOOLCHAIN_HAS_SSP if BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI \ + && !(BR2_i386 || BR2_powerpc) # Compatibility headers: cdefs.h, queue.h select BR2_PACKAGE_MUSL_COMPAT_HEADERS diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in index a566881852..de2885bc92 100644 --- a/package/uclibc/Config.in +++ b/package/uclibc/Config.in @@ -70,6 +70,7 @@ config BR2_PTHREAD_DEBUG config BR2_TOOLCHAIN_BUILDROOT_USE_SSP bool "Enable stack protection support" + depends on BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI select BR2_TOOLCHAIN_HAS_SSP help Enable stack smashing protection support using GCCs