diff options
author | Mark Hatle <mark.hatle@windriver.com> | 2015-11-02 08:52:28 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-11-16 11:39:34 +0000 |
commit | 920fb964d6efc4c31347581dc71046dc1b676d20 (patch) | |
tree | 1516a8b604039c7afc520b6ecadcaf9811930870 /meta/recipes-devtools/gcc/gcc-cross-initial.inc | |
parent | 7b1763a248d96d6a97cbd5ef1115ef7219271548 (diff) | |
download | poky-920fb964d6efc4c31347581dc71046dc1b676d20.tar.gz |
gcc: Update default Power GCC settings to use secure-plt
The gcc default, bss-plt, will cause errors when using the prelinker. All
other distributions that I am aware of are using the the secure-plt. For an
explanation of the differences, the gcc docs:
Current PowerPC GCC accepts a `-msecure-plt' option that generates code
capable of using a newer PLT and GOT layout that has the security
advantage of no executable section ever needing to be writable and no
writable section ever being executable. PowerPC ld will generate this
layout, including stubs to access the PLT, if all input files (including
startup and static libraries) were compiled with `-msecure-plt'.
`--bss-plt' forces the old BSS PLT (and GOT layout) which can give
slightly better performance.
The security of the new PLT and ability to run the prelinker outweigh
any performance penalty.
The secure-plt is enabled by default. The old bss-plt can be enabled by
selecting 'bssplt' in the DISTRO_FEATURES.
(From OE-Core rev: 70c55aada1101a5c687cdaa79f370fa4530b39d9)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-cross-initial.inc')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-cross-initial.inc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-cross-initial.inc b/meta/recipes-devtools/gcc/gcc-cross-initial.inc index 7197447080..c0fa139a85 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-initial.inc +++ b/meta/recipes-devtools/gcc/gcc-cross-initial.inc | |||
@@ -26,6 +26,7 @@ EXTRA_OECONF = "\ | |||
26 | ${EXTRA_OECONF_INITIAL} \ | 26 | ${EXTRA_OECONF_INITIAL} \ |
27 | ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--with-ld=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}ld.bfd', '', d)} \ | 27 | ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--with-ld=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}ld.bfd', '', d)} \ |
28 | ${EXTRA_OECONF_GCC_FLOAT} \ | 28 | ${EXTRA_OECONF_GCC_FLOAT} \ |
29 | ${@get_gcc_ppc_plt_settings(bb, d)} \ | ||
29 | " | 30 | " |
30 | 31 | ||
31 | EXTRA_OECONF += "--with-native-system-header-dir=${SYSTEMHEADERS}" | 32 | EXTRA_OECONF += "--with-native-system-header-dir=${SYSTEMHEADERS}" |