[Pkg-gnupg-maint] Bug#777374: FTBFS with gcc-5
Helmut Grohne
helmut at subdivi.de
Sat Feb 7 18:51:19 UTC 2015
Source: libgpg-error
Version: 1.17-3
Severity: important
User: helmutg at debian.org
Usertags: rebootstrap
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.
Helmut
More information about the Pkg-gnupg-maint
mailing list