When builing net-dns/host-20070128-r1, binary is linked with "/usr/$(get_libdir)/libresolv.a" as defined in src_compile() in ebuild : emake CC="$(tc-getCC)" RES_LIB="/usr/$(get_libdir)/libresolv.a" This lead to error when trying to cross compile it : /usr/libexec/gcc/i586-pc-linux-gnu/ld: i386:x86-64 architecture of input file `/usr/lib/libresolv.a(res_comp.o)' is incompatible with i386 outpu Full log attached, and a patch proposol do dynamically link it so we avoid to define the full libresolv.a path which in case of cross compile should composed by $ROOT which is not safe as defined in PMS. Reproducible: Always Steps to Reproduce: 1. crossdev -t i586-pc-linux-gnu 2. i586-pc-linux-gnu-emerge -vat net-dns/host 3.
Created attachment 350446 [details] build.log
Created attachment 350448 [details, diff] host-20070128-r1.ebuild-dynlink.diff
Created attachment 350450 [details, diff] host-20070128-_IPADDR_T-arch.patch This patch avoid using sed in src_prepare(), that sed break vim syntax colorisation and sed result is the same in every case.
Created attachment 350452 [details] host-20070128-r1.ebuild Here is an attempt to migrate the ebuild to EAPI 5
Ugh, that ipaddr_t check is ugly. A sizeof(int) check would make more sense there. Or just use the C99 "uint32_t" from stdint.h.
Pull request: https://github.com/gentoo/gentoo/pull/176
removed