Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 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 | |
| 14 | Upstream-Status: Pending (should be fixed in gnulib which is then rarely updated in grub) |
| 15 | |
| 16 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> |
| 17 | |
| 18 | diff -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__ \ |