diff options
author | Khem Raj <raj.khem@gmail.com> | 2015-02-27 17:19:53 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-03-10 10:47:42 +0000 |
commit | bd193a0115c564d8c16bd09a7df6ae9867b51445 (patch) | |
tree | cb0693110260bba351526740ebdbfb9863280e2a | |
parent | 1aa32a115addac9730bc52e8c98e166f201c29b9 (diff) | |
download | poky-bd193a0115c564d8c16bd09a7df6ae9867b51445.tar.gz |
libgpg-error: Add -P option to CPPFLAGS
Fixes https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1301822.html
libgpg-error FTBFS when built with gcc-5. Here is the relevant excerpt:
| Making all in src
| make[4]: Entering directory '/tmp/buildd/libgpg-error/libgpg-error-1.17/src'
| gawk -f ./mkstrtable.awk -v textidx=3 \
| ./err-sources.h.in >err-sources.h
| gawk -f ./mkstrtable.awk -v textidx=3 \
| ./err-codes.h.in >err-codes.h
| gawk -f ./mkerrnos.awk ./errnos.in >code-to-errno.h
| gawk -f ./mkerrcodes1.awk ./errnos.in >_mkerrcodes.h
| gcc -E -D_FORTIFY_SOURCE=2 _mkerrcodes.h | grep GPG_ERR_ | \
| gawk -f ./mkerrcodes.awk >mkerrcodes.h
| rm _mkerrcodes.h
| gcc -I. -I. -o mkerrcodes ./mkerrcodes.c
| In file included from ./mkerrcodes.c:26:0:
| ./mkerrcodes.h:9:5: error: expected expression before ',' token
| { , "GPG_ERR_E2BIG" },
| ^
It makes invalid assumptions on undefined behaviour of gcc. To see why,
let us look at the contents of the intermediate steps:
_mkerrcodes.h (deleted):
| ...
| #ifdef E2BIG
| E2BIG GPG_ERR_E2BIG
| #endif
| #ifdef WSAE2BIG
| WSAE2BIG GPG_ERR_E2BIG
| #endif
| ...
gcc -E -D_FORTIFY_SOURCE=2 _mkerrcodes.h | grep -v '^$':
| ...
| # 26 "_mkerrcodes.h" 2
| 7
| # 31 "_mkerrcodes.h"
| GPG_ERR_E2BIG
| # 37 "_mkerrcodes.h" 3 4
| 13
| # 37 "_mkerrcodes.h"
| GPG_ERR_EACCES
| ...
As can be seen here, the cpp from gcc-5 can split lines and "grep
GPG_ERR_" fails to account for that.
Change-Id: I6f1476e4afc7163ebc3a05106ceaa3b83e3fab3e
(From OE-Core rev: 3993378c9a8994688fda15a5cd05e04a435d2d54)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-support/libgpg-error/libgpg-error_1.18.bb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/meta/recipes-support/libgpg-error/libgpg-error_1.18.bb b/meta/recipes-support/libgpg-error/libgpg-error_1.18.bb index 9501b67b05..6d11605e54 100644 --- a/meta/recipes-support/libgpg-error/libgpg-error_1.18.bb +++ b/meta/recipes-support/libgpg-error/libgpg-error_1.18.bb | |||
@@ -19,7 +19,7 @@ SRC_URI[sha256sum] = "9ff1d6e61d4cef7c1d0607ceef6d40dc33f3da7a3094170c3718c00153 | |||
19 | BINCONFIG = "${bindir}/gpg-error-config" | 19 | BINCONFIG = "${bindir}/gpg-error-config" |
20 | 20 | ||
21 | inherit autotools binconfig-disabled pkgconfig gettext | 21 | inherit autotools binconfig-disabled pkgconfig gettext |
22 | 22 | CPPFLAGS += "-P" | |
23 | do_compile_prepend() { | 23 | do_compile_prepend() { |
24 | TARGET_FILE=linux-gnu | 24 | TARGET_FILE=linux-gnu |
25 | if [ ${TARGET_OS} != "linux" ]; then | 25 | if [ ${TARGET_OS} != "linux" ]; then |