summaryrefslogtreecommitdiffstats
path: root/meta/conf
diff options
context:
space:
mode:
authorSaul Wold <sgw@linux.intel.com>2013-06-28 11:46:03 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-07-02 22:26:57 +0100
commit6c290e4a35b8eb6e55a8e48236bc1a77c110b271 (patch)
treee10ea202050957f171ce7671733e0eaefa4febdc /meta/conf
parent85f0cf943d3165a603ccb058d838bc0b6a80ce43 (diff)
downloadpoky-6c290e4a35b8eb6e55a8e48236bc1a77c110b271.tar.gz
security_flags: Add the compiler and linker flags that enhance security
These flags add addition checks at compile, link and runtime to prevent stack smashing, checking for buffer overflows, and link at program start to prevent call spoofing later. This needs to be explicitly enabled by adding the following line to your local.conf: require conf/distro/include/security_flags.inc [YOCTO #3868] (From OE-Core rev: ff0e863f2d345c42393a14a193f76d699745a2b9) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/conf')
-rw-r--r--meta/conf/distro/include/security_flags.inc26
1 files changed, 26 insertions, 0 deletions
diff --git a/meta/conf/distro/include/security_flags.inc b/meta/conf/distro/include/security_flags.inc
new file mode 100644
index 0000000000..72dd1ad581
--- /dev/null
+++ b/meta/conf/distro/include/security_flags.inc
@@ -0,0 +1,26 @@
1SECURITY_CFLAGS ?= "-fstack-protector-all -pie -fpie -D_FORTIFY_SOURCE=2"
2SECURITY_LDFLAGS ?= "-Wl,-z,relro,-z,now"
3
4# Curl seems to check for FORTIFY_SOURCE in CFLAGS, but even assigned
5# to CPPFLAGS it gets picked into CFLAGS in bitbake.
6#TARGET_CPPFLAGS_pn-curl += "-D_FORTIFY_SOURCE=2"
7SECURITY_CFLAGS_pn-curl = "-fstack-protector-all -pie -fpie"
8SECURITY_CFLAGS_pn-ppp = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
9SECURITY_CFLAGS_pn-eglibc = ""
10SECURITY_CFLAGS_pn-eglibc-initial = ""
11SECURITY_CFLAGS_pn-zlib = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
12SECURITY_CFLAGS_pn-gcc-runtime = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
13SECURITY_CFLAGS_pn-libgcc = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
14SECURITY_CFLAGS_pn-tcl = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
15SECURITY_CFLAGS_pn-libcap = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
16SECURITY_CFLAGS_pn-python-smartpm = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
17SECURITY_CFLAGS_pn-python-imaging = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
18SECURITY_CFLAGS_pn-python-pycurl = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
19SECURITY_CFLAGS_pn-kexec-tools = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
20
21# These 2 have text relco errors with the pie options enabled
22SECURITY_CFLAGS_pn-pulseaudio = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
23SECURITY_CFLAGS_pn-ltp = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
24
25TARGET_CFLAGS_append = " ${SECURITY_CFLAGS}"
26TARGET_LDFLAGS_append = " ${SECURITY_LDFLAGS}"