toolchain: refactor Stack Smashing Protection support
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 2 Sep 2013 16:06:36 +0000 (18:06 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Sun, 15 Sep 2013 21:02:57 +0000 (23:02 +0200)
commitc5866be0ad90a97bbf04af846d6aec869bc1918a
tree897460ebe306b1edcbcb868a7edd711b6e848608
parent094fd1d01de46a61bbc59343841f762817b9cc81
toolchain: refactor Stack Smashing Protection support

This commit refactors how Stack Smashing Protection support is handled
in Buildroot:

 *) It turns the BR2_TOOLCHAIN_BUILDROOT_USE_SSP option into an option
    that only enables the SSP support in uClibc, when using the internal
    toolchain backend.

 *) It adds an hidden BR2_TOOLCHAIN_HAS_SSP option that gets enabled
    when the toolchain has SSP support. Here we have the usual dance:
    glibc/eglibc in internal/external backend always select this
    option, in the case of uClibc/internal, it gets selected when
    BR2_TOOLCHAIN_BUILDROOT_USE_SSP is enabled, in the case of
    uClibc/external, there is a new configuration option that the user
    must select (or not) depending on whether the toolchain has SSP
    support.

 *) It adds a new options BR2_ENABLE_SSP in the "Build options" menu,
    to enable the usage of SSP support, by adding
    -fstack-protector-all to the CFLAGS.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Config.in
package/Makefile.in
package/psmisc/psmisc.mk
package/uclibc/Config.in
toolchain/Config.in
toolchain/helpers.mk
toolchain/toolchain-buildroot/Config.in.2
toolchain/toolchain-common.in
toolchain/toolchain-external/Config.in