gdbm-1.8.3 shipped with outdated ltmain.sh which cause cross-compile failure. The Makefile.in also need to update to specify the --mode=install for libtool-2.2.6a, otherwise src_install() would fail with libtool error. Reproducible: Always Steps to Reproduce: 1. cross-compile gdbm-1.8.3-r4 2. fail with ld : Actual Results: # armv4tl-softfloat-linux-gnueabi-gcc -shared dbminit.lo delete.lo fetch.lo store.lo seq.lo close.lo dbmopen.lo dbmdelete.lo dbmfetch.lo dbmstore.lo dbmseq.lo dbmclose.lo dbmdirfno.lo dbmpagfno.lo dbmrdonly.lo -L/usr/armv4tl-softfloat-linux-gnueabi/lib -L/usr/armv4tl-softfloat-linux-gnueabi/usr/lib -Wl,--as-needed -L/usr/lib -L/usr/armv4tl-softfloat-linux-gnueabi/tmp/portage/sys-libs/gdbm-1.8.3-r4/image//usr/lib -lgdbm -Wl,-soname -Wl,libgdbm_compat.so.3 -o .libs/libgdbm_compat.so.3.0.0 # /usr/lib/libgdbm.so: file not recognized: File format not recognized # collect2: ld returned 1 exit status # libtool: install: error: relink `libgdbm_compat.la' with the above command before installing it # make: *** [install-compat] Error 1 # [31;01m*[0m ERROR: sys-libs/gdbm-1.8.3-r4 failed: Expected Results: successfully cross-compile
Created attachment 211760 [details, diff] patch Makefile.in to correctly use libtool to install patch for cross-compile
Created attachment 211763 [details] fixxed ebuild remove aclocal.m4 and run eautoreconf instead of eliboolized, patch Makefile.in for libtool-2.2.6a require --mode=install in install phrase.
Created attachment 212653 [details, diff] ebuild diff Please attach a unified diff, not a full ebuild next time.
It doesn't sound all right: - removing aclocal.m4 shouldn't be needed when using eautoreconf; - for future-proofing, elibtoolize should be kept, after eautoreconf has finished; - disabling dependency tracking is generally useful for one-time builds like all of Portage-commanded builds are, and should have no implications in cross-compilation.
(In reply to comment #4) > It doesn't sound all right: > > - removing aclocal.m4 shouldn't be needed when using eautoreconf; > - for future-proofing, elibtoolize should be kept, after eautoreconf has > finished; > - disabling dependency tracking is generally useful for one-time builds like > all of Portage-commanded builds are, and should have no implications in > cross-compilation. > Hi Flameeye, when I kept aclocal.m4, the eautoreconf just skip aclocal, and the libtool stuff would not been updated.
(In reply to comment #3) > Created an attachment (id=212653) [details] > ebuild diff > > Please attach a unified diff, not a full ebuild next time. > Got it :)
the patch worked here, thanks
Woked for me too.
Interestingly, this just works if you just remove the elibtoolize (without the patch, rm of aclocal.m4 or eautoreconf). I don't understand the libtool foo enough to comment why this might be (or if this is even expected).
After applying both patches my problems with crosscompiling for hppa were gone. Thanks !
*** Bug 379453 has been marked as a duplicate of this bug. ***
should be fixed with gdbm-1.9.1