sys-libs/gdbm (both versions in portage) fails to crosscompile on my AMD64 machine, target is ARM. This happens because it tries to link the the native version. armv4t-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/lib -L/usr/armv4t-softfloat-linux-gnueabi/tmp/portage/sys-libs/gdbm-1.8.3-r3/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 Unmerging the native version is a workaround to get it built, it seems it is using the -lgdbm approach instead of directly linking to /usr/lib/libgdbm.so Reproducible: Always Steps to Reproduce: 1. Install gdbm native 2. try to install gdbm with the crosscompiler 3. -> it will fail 4. remove gdbm native 5. install gdbm with the crosscompiler 6. -> it will work This bug seems to be related to the old #165263 where the problematic workaround was introduced.
Same here. It also applies to 1.8.3-r4. Building for armv5teb-softfloat-linux-gnueabi on x86_64-pc-linux-gnu. The explicit '-L/usr/lib' in the linker output kind of gives the problem away ;)
I managed to install it even with the native version also installed by changing `elibtoolize` in the ebuild to `eautoreconf`
*** This bug has been marked as a duplicate of bug 262298 ***