Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 593484 - dev-libs/libgpg-error-1.19: failed to cross building for ppc64le platform.
Summary: dev-libs/libgpg-error-1.19: failed to cross building for ppc64le platform.
Status: RESOLVED DUPLICATE of bug 584052
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-11 09:50 UTC by Leno Hou
Modified: 2016-09-12 05:40 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Leno Hou 2016-09-11 09:50:59 UTC
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
Comment 1 Leno Hou 2016-09-11 10:00:21 UTC
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.
Comment 2 Felix Janda 2016-09-11 14:43:53 UTC
So have you tried following the instructions from the README?
Comment 3 Leno Hou 2016-09-12 05:40:57 UTC

*** This bug has been marked as a duplicate of bug 584052 ***