When cross building libgpg-error for powerpc64le-cros-linux-gnu platform and failed: /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/gpg-error.h.in:432: error including `/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/syscfg/lock-obj-pub.linux-gnu.h': No such file or directory Reproducible: Always Steps to Reproduce: 1. emerge crossdev 2. crossdev -t powerpc64le-cros-linux-gnu 3. emerge-powerpc64le-cros-linux-gnu dev-libs/libgpg-error Actual Results: .... libgpg-error-1.22 prepared for make Revision: 9a05076 (39429) Platform: powerpc64le-cros-linux-gnu >>> Source configured. >>> Compiling source in /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22 ... * abi_ppc_64.ppc64: running multilib-minimal_abi_src_compile make --jobs=8 --load-average=16 make all-recursive make[1]: Entering directory '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22-abi_ppc_64.ppc64' Making all in m4 make[2]: Entering directory '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22-abi_ppc_64.ppc64/m4' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22-abi_ppc_64.ppc64/m4' Making all in src make[2]: Entering directory '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22-abi_ppc_64.ppc64/src' gawk -f /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/mkerrnos.awk /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/errnos.in >code-to-errno.h gawk -f /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/mkerrcodes1.awk /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/errnos.in >_mkerrcodes.h gawk -f /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/mkstrtable.awk -v textidx=2 -v nogettext=1 \ /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/err-sources.h.in >err-sources-sym.h gawk -f /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/mkstrtable.awk -v textidx=2 -v nogettext=1 \ /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/err-codes.h.in >err-codes-sym.h gawk -f /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/mkstrtable.awk -v textidx=2 -v nogettext=1 \ -v prefix=GPG_ERR_ -v namespace=errnos_ \ /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/errnos.in >errnos-sym.h powerpc64le-unknown-linux-gnu-gcc -g -O0 -I. -I/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src -o mkheader /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/mkheader.c cat /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/gpg-error.def.in >_gpg-error.def.h echo "/*dummy*/" > mkw32errmap.map.c powerpc64le-cros-linux-gnu-gcc -E -I. -I/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src -I.. _gpg-error.def.h | \ grep -v '^#' >gpg-error.def powerpc64le-cros-linux-gnu-gcc -E -P _mkerrcodes.h | grep GPG_ERR_ | \ gawk -f /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/mkerrcodes.awk >mkerrcodes.h rm _gpg-error.def.h rm _mkerrcodes.h powerpc64le-unknown-linux-gnu-gcc -I. -I/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src -o mkerrcodes /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/mkerrcodes.c ./mkerrcodes | gawk -f /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/mkerrcodes2.awk >code-from-errno.h if test -f lock-obj-pub.native.h; then rm lock-obj-pub.native.h; fi ./mkheader linux-gnu powerpc64le-cros-linux-gnu /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/gpg-error.h.in \ ../config.h 1.22 0x011600 >gpg-error.h /build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/gpg-error.h.in:432: error including `/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22/src/syscfg/lock-obj-pub.linux-gnu.h': No such file or directory Makefile:1313: recipe for target 'gpg-error.h' failed make[2]: *** [gpg-error.h] Error 1 make[2]: Leaving directory '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22-abi_ppc_64.ppc64/src' Makefile:472: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22-abi_ppc_64.ppc64' Makefile:403: recipe for target 'all' failed make: *** [all] Error 2 * ERROR: dev-libs/libgpg-error-1.22::gentoo failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=dev-libs/libgpg-error-1.22::gentoo'`, * the complete build log and the output of `emerge -pqv '=dev-libs/libgpg-error-1.22::gentoo'`. * The complete build log is located at '/build/ppc64le-usr/var/log/portage/dev-libs:libgpg-error-1.22:20160911-083459.log'. * For convenience, a symlink to the build log is located at '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/temp/build.log'. * The ebuild environment file is located at '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/temp/environment'. * Working directory: '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22-abi_ppc_64.ppc64' * S: '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22' >>> Failed to emerge dev-libs/libgpg-error-1.22 for /build/ppc64le-usr/, Log file: >>> '/build/ppc64le-usr/var/log/portage/dev-libs:libgpg-error-1.22:20160911-083459.log' * Messages for package dev-libs/libgpg-error-1.22 merged to /build/ppc64le-usr/: * ERROR: dev-libs/libgpg-error-1.22::gentoo failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=dev-libs/libgpg-error-1.22::gentoo'`, * the complete build log and the output of `emerge -pqv '=dev-libs/libgpg-error-1.22::gentoo'`. * The complete build log is located at '/build/ppc64le-usr/var/log/portage/dev-libs:libgpg-error-1.22:20160911-083459.log'. * For convenience, a symlink to the build log is located at '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/temp/build.log'. * The ebuild environment file is located at '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/temp/environment'. * Working directory: '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22-abi_ppc_64.ppc64' * S: '/build/ppc64le-usr/var/tmp/portage/dev-libs/libgpg-error-1.22/work/libgpg-error-1.22' Expected Results: emerge-powerpc64le-cros-linux-gnu dev-libs/libgpg-error successfully
Added the README, which in the source code. Cross-Compiling --------------- Libgpg-error needs to figure out some platform specific properties. These are used to build the platform specific gpg-error.h file. The detection is done during build time but can't be done when cross-compiling. Thus if you run into an error during building you need to figure out these values. You may use these commands: build="$(build-aux/config.guess)" ./configure --prefix=TARGETDIR --host=TARGET --build=$build cd src make gen-posix-lock-obj scp gen-posix-lock-obj TARGET: ssh TARGET ./gen-posix-lock-obj >tmp.h mv tmp.h "syscfg/$(awk 'NR==1 {print $2}' tmp.h)" If you are using a VPATH build adjust accordingly. If this all works for you (make sure to run the test programs on the target platform), please send the generated file to the gnupg-devel mailing list so that we can include it in the next release. Note that in addition to the aliasing done by config.sub the src/mkheader build tool does some extra aliasing to avoid having too much identical syscfg files.
So have you tried following the instructions from the README?
*** This bug has been marked as a duplicate of bug 584052 ***