To emerge net-fs/nfs4-acl-tools-0.3.5 fails on link phase as follows; libtool: link: x86_64-pc-linux-gnu-gcc -o nfs4_getfacl -Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed nfs4_getfacl.o ../libnfs4acl/.libs/libnfs4acl.a /usr/lib64/libattr.so /usr/lib/libattr.so /usr/lib/gcc/x86_64-pc-linux-gnu/7.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/libattr.so: error adding symbols: file in wrong format Of course, linking with both /usr/lib{,64}/libattr.so is incorrect but I have no idea where to fix it... (profile? configure?) Reproducible: Always Steps to Reproduce: 1. emerge =net-fs/nfs4-acl-tools-0.3.5 Actual Results: Shown as before. Expected Results: To be linked with /usr/lib64/libattr.so only.
Created attachment 574596 [details] build.log
Created attachment 574598 [details] emerge --info
Created attachment 574600 [details] environment
Created attachment 578986 [details, diff] amd64 only workaround This is a quick, dirty and bad example for workaround. If /usr/lib64/libattr.la exists, then refer "/usr/lib64/libattr.la".
Those autoconf macros are just plain broken, and should be thrown away.
I had a similar issue like this but on a different library. /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: //usr/lib/libfreetype.so: error adding symbols: file in wrong format collect2: error: ld returned 1 exit status make[3]: *** [Makefile:624: libfontconfig.la] Error 1 make[2]: *** [Makefile:545: all] Error 2 make[1]: *** [Makefile:602: all-recursive] Error 1 make: *** [Makefile:486: all] Error 2 I found out that there are old orphaned files that should no longer exist and were causing compilation error: /usr/lib64/libfreetype.a /usr/lib64/libfreetype.la Removing them fixed it. This is one way to find orphaned files: find /usr/lib64 -name '*.la' -exec qfile -o '{}' '+'