Files
poky/meta/recipes-support/libgpg-error/libgpg-error_1.18.bb
Khem Raj bd193a0115 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>
2015-03-10 10:47:42 +00:00

56 lines
1.9 KiB
BlitzBasic

SUMMARY = "Small library that defines common error values for all GnuPG components"
HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/"
BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
LICENSE = "GPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
file://src/gpg-error.h.in;endline=23;md5=8b204918f0ca707136394d8bb20c7ebc \
file://src/init.c;endline=20;md5=8f5a9b59634f4aebcd0ec9d3ebd53bfe"
SECTION = "libs"
SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${PV}.tar.bz2 \
file://pkgconfig.patch"
SRC_URI[md5sum] = "12312802d2065774b787cbfc22cc04e9"
SRC_URI[sha256sum] = "9ff1d6e61d4cef7c1d0607ceef6d40dc33f3da7a3094170c3718c00153d80810"
BINCONFIG = "${bindir}/gpg-error-config"
inherit autotools binconfig-disabled pkgconfig gettext
CPPFLAGS += "-P"
do_compile_prepend() {
TARGET_FILE=linux-gnu
if [ ${TARGET_OS} != "linux" ]; then
TARGET_FILE=${TARGET_OS}
fi
case ${TARGET_ARCH} in
aarch64) TUPLE=aarch64-unknown-linux-gnu ;;
arm) TUPLE=arm-unknown-linux-gnueabi ;;
armeb) TUPLE=arm-unknown-linux-gnueabi ;;
i586) TUPLE=i486-pc-linux-gnu ;;
mipsel) TUPLE=mipsel-unknown-linux-gnu ;;
mips64el) TUPLE=mipsel-unknown-linux-gnu ;;
mips64) TUPLE=mips-unknown-linux-gnu ;;
mips) TUPLE=mips-unknown-linux-gnu ;;
powerpc64) TUPLE=powerpc64-unknown-linux-gnu ;;
powerpc) TUPLE=powerpc-unknown-linux-gnu ;;
sh4) TUPLE=sh4-unknown-linux-gnu ;;
x86_64) TUPLE=x86_64-pc-linux-gnu ;;
esac
cp ${S}/src/syscfg/lock-obj-pub.$TUPLE.h \
${S}/src/syscfg/lock-obj-pub.$TARGET_FILE.h
}
do_install_append() {
# we don't have common lisp in OE
rm -rf "${D}${datadir}/common-lisp/"
}
FILES_${PN}-dev += "${bindir}/gpg-error"
BBCLASSEXTEND = "native"