Go to file
Steven Noonan d29c7196bf toolchain: granular choice for stack protector
Currently, we only support two levels of stach-smashing protection:
  - entirely disabled,
  - protect _all_ functions with -fstack-protector-all.

-fstack-protector-all tends to be far too aggressive and impacts
performance too much to be worth on a real product.

Add a choice that allows us to select between different levels of
stack-smashing protection:
  - none
  - basic   (NEW)
  - strong  (NEW)
  - all

The differences are documented in the GCC online documentation:
    https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Optimize-Options.html

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
[yann.morin.1998@free.fr:
  - rebase
  - add legacy handling
  - SSP-strong depends on gcc >= 4.9
  - slightly simple ifeq-block in package/Makefile.in
  - keep the comment in the choice; add a comment shen strong is not
    available
  - drop the defaults (only keep the legacy)
  - update commit log
]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Thomas:
 - only show the choice if the toolchain has SSP support
 - add details for the BR2_SSP_ALL option that it has a significant
   performance impact.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-12-27 15:30:09 +01:00
arch arch/arm: add help text to BR2_ARM_ENABLE_VFP 2015-12-27 12:22:43 +01:00
board atmel: fix xplained documentation 2015-12-10 21:50:26 +01:00
boot Fix fallout after generated defconfig support 2015-12-23 09:54:14 +01:00
configs Merge branch 'next' 2015-12-01 23:24:07 +01:00
docs docs/manual: document the new kconfig-package variable 2015-12-22 22:39:26 +01:00
fs fs/ext2: add options for extra space and extra inodes 2015-10-31 15:56:56 +01:00
linux Fix fallout after generated defconfig support 2015-12-23 09:54:14 +01:00
package toolchain: granular choice for stack protector 2015-12-27 15:30:09 +01:00
support support/download: protect from custom commands with spaces in args 2015-12-12 17:00:46 +01:00
system Merge branch 'next' 2015-12-01 23:24:07 +01:00
toolchain toolchain/external: Arago armv7 toolchain really requires a VFPv3 2015-12-27 12:17:55 +01:00
.defconfig arch: kill avr32 2015-02-14 17:39:50 +01:00
.gitignore update gitignore 2013-05-04 12:41:55 +02:00
CHANGES Update for 2015.11 2015-11-30 23:13:41 +01:00
Config.in toolchain: granular choice for stack protector 2015-12-27 15:30:09 +01:00
Config.in.legacy toolchain: granular choice for stack protector 2015-12-27 15:30:09 +01:00
COPYING clarify license and fix website license link 2009-05-08 09:29:41 +02:00
Makefile Makefile: Add RANLIB to the list of critical variables to unexport 2015-12-22 11:07:08 +01:00
Makefile.legacy Makefile.legacy: fix recursive invocation with BUILDROOT_DL_DIR and _CONFIG 2014-02-11 08:14:57 +01:00
README README: mention 'make list-defconfigs' 2015-04-04 15:19:43 +02:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on Freenode IRC.