Config.in: security hardening: disable FORTIFY_SOURCE for gcc < 6
authorRomain Naour <romain.naour@gmail.com>
Mon, 5 Nov 2018 20:07:50 +0000 (21:07 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Tue, 6 Nov 2018 07:54:25 +0000 (08:54 +0100)
As reported in the bug report [1], gcc < 6 doesn't build when
FORTIFY_SOURCE is set to 1 or 2. The issue is related to the
upstream bug report [2] but the patch fixing the issue for gcc 6
has not been backported to earlier gcc versions.

Add a dependency on gcc at least version 6 to BR2_FORTIFY_SOURCE_1
and BR2_FORTIFY_SOURCE_2.

[1] https://bugs.busybox.net/show_bug.cgi?id=11476
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164
[3] https://github.com/gcc-mirror/gcc/commit/55f12fce4ccf77513644a247f9c401a5b1fa2402

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Matthew Weber <matthew.weber@rockwellcollins.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
[Peter: only limit for internal toolchain as suggested by Matthew]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Config.in

index 42cdf7a3ebdcc6d58e2addf30b402403ff25d415..03e4eb39287cc900541936b3c15156e76febeafd 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -812,6 +812,8 @@ config BR2_FORTIFY_SOURCE_NONE
 
 config BR2_FORTIFY_SOURCE_1
        bool "Conservative"
+       # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164
+       depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6
        help
          This option sets _FORTIFY_SOURCE to 1 and only introduces
          checks that shouldn't change the behavior of conforming
@@ -819,6 +821,8 @@ config BR2_FORTIFY_SOURCE_1
 
 config BR2_FORTIFY_SOURCE_2
        bool "Aggressive"
+       # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164
+       depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6
        help
          This option sets _FORTIFY_SOURCES to 2 and some more
          checking is added, but some conforming programs might fail.