GCC supports starting version 5 --enable-default-ssp and starting version 6
--enable-default-pie.
It produces hardened binaries by default without dealing with package
compilation flags.
Signed-off-by: Julien Dusser <julien.dusser@free.fr>
help
Any additional gcc options you may want to include....
+config GCC_DEFAULT_PIE
+ bool
+ prompt "Build executable with PIE enabled by default" if TOOLCHAINOPTS
+ depends on !GCC_USE_VERSION_5
+ default n
+ help
+ Use gcc configure option --enable-default-pie to turn on -fPIE and -pie by default.
+
+config GCC_DEFAULT_SSP
+ bool
+ prompt "Build executable with Stack-Smashing Protection enabled by default" if TOOLCHAINOPTS
+ default n
+ help
+ Use gcc configure option --enable-default-ssp to turn on -fstack-protector-strong by default.
+
config SSP_SUPPORT
bool
prompt "Enable Stack-Smashing Protection support" if TOOLCHAINOPTS
GCC_CONFIGURE += --with-diagnostics-color=auto-if-env
endif
+ifneq ($(CONFIG_GCC_DEFAULT_PIE),)
+ GCC_CONFIGURE+= \
+ --enable-default-pie
+endif
+
+ifneq ($(CONFIG_GCC_DEFAULT_SSP),)
+ GCC_CONFIGURE+= \
+ --enable-default-ssp
+endif
+
ifneq ($(CONFIG_SSP_SUPPORT),)
GCC_CONFIGURE+= \
--enable-libssp