tclibc: For newlib and baremetal disable some security features

With GCCPIE being enabled by default with security_flags.inc the
compiler will by default attempt to compile and link programs as PIE.
The targets that use newlib and baremetal in general do not support PIE
or are otherwise unable to use it due to how embedded targets are
compiled and executed. As such it makes sense to disable PIE by default
for these libc's in order to prevent build failures.

For baremetal tclibc there are no libc features or implementation as
such there is no implementation for the strong stack protector by
default.

(From OE-Core rev: dfe434b793c156a87b5ead5cb85fe60d920d69d3)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Nathan Rossi
2018-09-10 12:44:13 +00:00
committed by Richard Purdie
parent 7670b7b4cc
commit a71dbdee2f
2 changed files with 10 additions and 0 deletions

View File

@@ -28,3 +28,9 @@ TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE}"
TOOLCHAIN_HOST_TASK_ATTEMPTONLY ?= ""
TOOLCHAIN_TARGET_TASK ?= "libgcc-dev"
TOOLCHAIN_NEED_CONFIGSITE_CACHE_remove = "virtual/${MLPREFIX}libc zlib ncurses"
# disable stack protector by default (no-libc, no protector implementation)
SECURITY_STACK_PROTECTOR_libc-baremetal = ""
# disable pie security flags by default
SECURITY_CFLAGS_libc-baremetal = "${SECURITY_NOPIE_CFLAGS}"
SECURITY_LDFLAGS_libc-baremetal = ""

View File

@@ -42,3 +42,7 @@ TARGET_OS_arm = "eabi"
TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE}"
TOOLCHAIN_TARGET_TASK ?= "${LIBC_DEPENDENCIES}"
TOOLCHAIN_NEED_CONFIGSITE_CACHE_remove = "zlib ncurses"
# disable pie security flags by default
SECURITY_CFLAGS_libc-newlib = "${SECURITY_NOPIE_CFLAGS}"
SECURITY_LDFLAGS_libc-newlib = ""