summaryrefslogtreecommitdiffstats
path: root/meta/recipes-bsp/grub
diff options
context:
space:
mode:
authorAlexander Kanavin <alexander.kanavin@linux.intel.com>2016-12-02 21:14:07 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-12-08 10:31:29 +0000
commitbc209d9b8dbfb842eb00f0a09e52025f1ca403ae (patch)
treee1b370eb8bbf628d6482290b15809016f21677c8 /meta/recipes-bsp/grub
parentf9c12adaf8b3db01a91cc1ea11369d89a3a61c41 (diff)
downloadpoky-bc209d9b8dbfb842eb00f0a09e52025f1ca403ae.tar.gz
grub2: enforce -no-pie if supported by compiler
Recent distros are enabling -pie by default; in case of grub we need to turn it off. (From OE-Core rev: aaff6c99dde3f1058bb3c4b320f27753c6c992ad) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-bsp/grub')
-rw-r--r--meta/recipes-bsp/grub/files/0001-Enforce-no-pie-if-the-compiler-supports-it.patch45
-rw-r--r--meta/recipes-bsp/grub/grub2.inc1
2 files changed, 46 insertions, 0 deletions
diff --git a/meta/recipes-bsp/grub/files/0001-Enforce-no-pie-if-the-compiler-supports-it.patch b/meta/recipes-bsp/grub/files/0001-Enforce-no-pie-if-the-compiler-supports-it.patch
new file mode 100644
index 0000000000..ccdbee215d
--- /dev/null
+++ b/meta/recipes-bsp/grub/files/0001-Enforce-no-pie-if-the-compiler-supports-it.patch
@@ -0,0 +1,45 @@
1From 6186bcf1bcaaa0f16e79339e07c64c841d4d957d Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 2 Dec 2016 20:52:40 +0200
4Subject: [PATCH] Enforce -no-pie, if the compiler supports it.
5
6Add a -no-pie as recent (2 Dec 2016) Debian testing compiler
7seems to default to enabling PIE when linking. See
8https://wiki.ubuntu.com/SecurityTeam/PIE
9
10Upstream-Status: Pending
11Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
12---
13 acinclude.m4 | 2 +-
14 configure.ac | 2 +-
15 2 files changed, 2 insertions(+), 2 deletions(-)
16
17diff --git a/acinclude.m4 b/acinclude.m4
18index 19200b0..a713923 100644
19--- a/acinclude.m4
20+++ b/acinclude.m4
21@@ -416,7 +416,7 @@ int main() {
22
23 [# `$CC -c -o ...' might not be portable. But, oh, well... Is calling
24 # `ac_compile' like this correct, after all?
25-if eval "$ac_compile -S -o conftest.s" 2> /dev/null; then]
26+if eval "$ac_compile -S -o conftest.s" 2> /dev/null && eval "$CC -dumpspecs 2>/dev/null | grep -e no-pie" ; then]
27 AC_MSG_RESULT([yes])
28 [# Should we clear up other files as well, having called `AC_LANG_CONFTEST'?
29 rm -f conftest.s
30diff --git a/configure.ac b/configure.ac
31index df20991..506c6b4 100644
32--- a/configure.ac
33+++ b/configure.ac
34@@ -603,7 +603,7 @@ grub_CHECK_PIE
35 [# Need that, because some distributions ship compilers that include
36 # `-fPIE' in the default specs.
37 if [ x"$pie_possible" = xyes ]; then
38- TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE"
39+ TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE -no-pie"
40 fi]
41
42 # Position independent executable.
43--
442.10.2
45
diff --git a/meta/recipes-bsp/grub/grub2.inc b/meta/recipes-bsp/grub/grub2.inc
index b10f633aae..f64198d9f0 100644
--- a/meta/recipes-bsp/grub/grub2.inc
+++ b/meta/recipes-bsp/grub/grub2.inc
@@ -32,6 +32,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
32 file://0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch \ 32 file://0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch \
33 file://fix-texinfo.patch \ 33 file://fix-texinfo.patch \
34 file://0001-grub-core-gettext-gettext.c-main_context-secondary_c.patch \ 34 file://0001-grub-core-gettext-gettext.c-main_context-secondary_c.patch \
35 file://0001-Enforce-no-pie-if-the-compiler-supports-it.patch \
35 " 36 "
36 37
37DEPENDS = "flex-native bison-native autogen-native" 38DEPENDS = "flex-native bison-native autogen-native"