summaryrefslogtreecommitdiffstats
path: root/meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch
diff options
context:
space:
mode:
authorMartin Jansa <martin.jansa@gmail.com>2017-08-23 00:10:20 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-08-23 08:47:03 +0100
commited52aa9e79d713c79aff787bcf3ac9168970f4ac (patch)
treebad38abae2e4e682c6002c8588ebb7bfba2e89c0 /meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch
parent1a73074d75b8aa12427a3c20f7f40223127e43dd (diff)
downloadpoky-ed52aa9e79d713c79aff787bcf3ac9168970f4ac.tar.gz
grub2: fix build on gcc where _FORTIFY_SOURCE is defined
* e.g. with gentoo gcc-7.1 they define _FORTIFY_SOURCE by default with: https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/src/patchsets/gcc/7.1.0/gentoo/10_all_default-fortify-source.patch?view=markup which results in following error while building grub-efi-native: ./config-util.h:1504:48: error: this use of "defined" may not be portable [-Werror=expansion-to-defined] || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ ^~~~~~~~~~~~~~~ this part comes from gnulib and it's used only for Apple and BSD, so we can ignore it, but we cannot add -Wno-error=expansion-to-defined because this warning was introduced only in gcc-7 and older gcc will fail with: cc1: error: -Werror=expansion-to-defined: no option -Wexpansion-to-defined use #pragma to work around this (From OE-Core rev: f5302b0ad2942f7705d46c33949ebc1c5ddf3f58) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch')
-rw-r--r--meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch b/meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch
new file mode 100644
index 0000000000..f35df97bfc
--- /dev/null
+++ b/meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch
@@ -0,0 +1,39 @@
1* e.g. with gentoo gcc-7.1 they define _FORTIFY_SOURCE by default with:
2 https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/src/patchsets/gcc/7.1.0/gentoo/10_all_default-fortify-source.patch?view=markup
3 which results in following error while building grub-efi-native:
4 ./config-util.h:1504:48: error: this use of "defined" may not be portable [-Werror=expansion-to-defined]
5 || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
6 ^~~~~~~~~~~~~~~
7 this part comes from gnulib and it's used only for Apple and BSD,
8 so we can ignore it, but we cannot add -Wno-error=expansion-to-defined
9 because this warning was introduced only in gcc-7 and older gcc
10 will fail with:
11 cc1: error: -Werror=expansion-to-defined: no option -Wexpansion-to-defined
12 use #pragma to work around this
13
14Upstream-Status: Pending (should be fixed in gnulib which is then rarely updated in grub)
15
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17
18diff -uNr grub-2.02.old/m4/extern-inline.m4 grub-2.02/m4/extern-inline.m4
19--- grub-2.02.old/m4/extern-inline.m4 2016-02-28 15:22:21.000000000 +0100
20+++ grub-2.02/m4/extern-inline.m4 2017-08-22 19:26:45.213637276 +0200
21@@ -39,6 +39,10 @@
22 OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
23 for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
24 Assume DragonFly and FreeBSD will be similar. */
25+#pragma GCC diagnostic push
26+#if __GNUC__ >= 7
27+#pragma GCC diagnostic ignored "-Wexpansion-to-defined"
28+#endif
29 #if (((defined __APPLE__ && defined __MACH__) \
30 || defined __DragonFly__ || defined __FreeBSD__) \
31 && (defined __header_inline \
32@@ -50,6 +52,7 @@
33 && defined __GNUC__ && ! defined __cplusplus))))
34 # define _GL_EXTERN_INLINE_STDHEADER_BUG
35 #endif
36+#pragma GCC diagnostic pop
37 #if ((__GNUC__ \
38 ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
39 : (199901L <= __STDC_VERSION__ \