Source: libgpg-error Version: 1.20-1 User: [email protected] Usertags: rebootstrap
Hi GnuPG maintainers, I found another architecture for which libgpg-error fails to cross build. It's hurd-i386 this time. The relevant part of the build log is as follows (build=amd64, host=hurd-i386): | Making all in src | make[4]: Entering directory '/tmp/buildd/libgpg-error/libgpg-error-1.20/src' | gawk -f ./mkerrnos.awk ./errnos.in >code-to-errno.h | gawk -f ./mkerrcodes1.awk ./errnos.in >_mkerrcodes.h | gawk -f ./mkstrtable.awk -v textidx=2 -v nogettext=1 \ | ./err-sources.h.in >err-sources-sym.h | gawk -f ./mkstrtable.awk -v textidx=2 -v nogettext=1 \ | ./err-codes.h.in >err-codes-sym.h | gawk -f ./mkstrtable.awk -v textidx=2 -v nogettext=1 \ | -v prefix=GPG_ERR_ -v namespace=errnos_ \ | ./errnos.in >errnos-sym.h | i586-gnu-gcc -E -D_FORTIFY_SOURCE=2 -P _mkerrcodes.h | grep GPG_ERR_ | \ | gawk -f ./mkerrcodes.awk >mkerrcodes.h | cc -g -O0 -I. -I. -o mkheader ./mkheader.c | cat ./gpg-error.def.in >_gpg-error.def.h | echo "/*dummy*/" > mkw32errmap.map.c | i586-gnu-gcc -E -I. -I.. _gpg-error.def.h | \ | grep -v '^#' >gpg-error.def | rm _mkerrcodes.h | rm _gpg-error.def.h | cc -I. -I. -o mkerrcodes ./mkerrcodes.c | ./mkerrcodes | gawk -f ./mkerrcodes2.awk >code-from-errno.h | if test -f lock-obj-pub.native.h; then rm lock-obj-pub.native.h; fi | ./mkheader gnu i586-pc-gnu ./gpg-error.h.in \ | ../config.h 1.20 0x011400 >gpg-error.h | ./gpg-error.h.in:402: error including `./syscfg/lock-obj-pub.gnu.h': No such file or directory | Makefile:1315: recipe for target 'gpg-error.h' failed | make[4]: *** [gpg-error.h] Error 1 | make[4]: Leaving directory '/tmp/buildd/libgpg-error/libgpg-error-1.20/src' | Makefile:485: recipe for target 'all-recursive' failed | make[3]: *** [all-recursive] Error 1 | make[3]: Leaving directory '/tmp/buildd/libgpg-error/libgpg-error-1.20' | Makefile:417: recipe for target 'all' failed | make[2]: *** [all] Error 2 | make[2]: Leaving directory '/tmp/buildd/libgpg-error/libgpg-error-1.20' | dh_auto_build: make -j5 returned exit code 2 | debian/rules:25: recipe for target 'override_dh_auto_build' failed | make[1]: *** [override_dh_auto_build] Error 2 | make[1]: Leaving directory '/tmp/buildd/libgpg-error/libgpg-error-1.20' | debian/rules:14: recipe for target 'build-arch' failed | make: *** [build-arch] Error 2 | dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2 You might wonder why the file it tried is called "lock-obj-pub.gnu.h". This is due to mkheader first trying to use the triplet (i586-pc-gnu) and after it determined that it does not exist, it fell back to the host os (gnu). So the file should actually be called "lock-obj-pub.i586-pc-gnu.h". While having a look at mkheader.c, I also figured that its architecture alias table (which is only relevant to x86_32) is lacking a few aliases. See http://sources.debian.net/src/libgpg-error/1.20-1/src/mkheader.c/#L78. I think that there is two things that need doing here. * Rename lock-obj-pub.i486-pc-gnu.h to lock-obj-pub.i586-pc-gnu.h. * Add i486-pc-gnu as an alias for i586-pc-gnu to mkheader.c. * If you don't want to receive another bug for kfreebsd-i386, repeat for i586-pc-kfreebsd-gnu. * To be future-proof, you can go i686 directly (assuming appropriate aliases). Helmut

