Summary: | sci-libs/libcerf-1.17 installs pkg-config file with mismatched libdir (seen with sci-visualization/gnuplot-6.0.1) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Toralf Förster <toralf> |
Component: | Current packages | Assignee: | Gentoo Science Related Packages <sci> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | ulm |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 861701 | ||
Attachments: |
emerge-info.txt
emerge-history.txt environment etc.clang.tar.xz etc.portage.tar.xz logs.tar.xz qlist-info.txt sci-visualization:gnuplot-6.0.1:20240824-200207.log temp.tar.xz var.tmp.clang.tar.xz |
Description
Toralf Förster
![]() Created attachment 901169 [details]
emerge-info.txt
Created attachment 901170 [details]
emerge-history.txt
Created attachment 901171 [details]
environment
Created attachment 901172 [details]
etc.clang.tar.xz
Created attachment 901173 [details]
etc.portage.tar.xz
Created attachment 901174 [details]
logs.tar.xz
Created attachment 901175 [details]
qlist-info.txt
Created attachment 901176 [details]
sci-visualization:gnuplot-6.0.1:20240824-200207.log
Created attachment 901177 [details]
temp.tar.xz
Created attachment 901178 [details]
var.tmp.clang.tar.xz
(In reply to Toralf Förster from comment #8) > Created attachment 901176 [details] > sci-visualization:gnuplot-6.0.1:20240824-200207.log Something went very wrong earlier, during configure: checking for atexit... no checking for memcpy... no checking for memmove... no checking for memset... no [... about 40 other functions not found ...] AFAICS these are checked with a vanilla AC_CHECK_FUNCS in configure.ac. Then there is this in config.log (line 3704 and following): configure:11444: checking for atexit configure:11444: clang -o conftest -O2 -pipe -march=native -fno-diagnostics-color -Werror=implicit-function-declaration -Werror=implicit-int -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 -L/usr/lib -lcerf conftest.c >&5 ld.lld: error: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/Scrt1.o is incompatible with elf32-i386 ld.lld: error: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/crti.o is incompatible with elf32-i386 ld.lld: error: /usr/lib/llvm/18/bin/../../../../lib/clang/18/lib/linux/clang_rt.crtbegin-x86_64.o is incompatible with elf32-i386 ld.lld: error: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libcerf.so is incompatible with elf32-i386 ld.lld: error: /var/tmp/portage/sci-visualization/gnuplot-6.0.1/temp/conftest-e06c33.o is incompatible with elf32-i386 ld.lld: error: /usr/lib/llvm/18/bin/../../../../lib/clang/18/lib/linux/libclang_rt.builtins-x86_64.a(absvdi2.c.o) is incompatible with elf32-i386 ld.lld: error: /usr/lib/llvm/18/bin/../../../../lib/clang/18/lib/linux/libclang_rt.builtins-x86_64.a(absvsi2.c.o) is incompatible with elf32-i386 ld.lld: error: /usr/lib/llvm/18/bin/../../../../lib/clang/18/lib/linux/libclang_rt.builtins-x86_64.a(absvti2.c.o) is incompatible with elf32-i386 Not sure what is happening there. Looks like it's trying to link 32 bit with 64 bit binaries? I cannot reproduce the problem (with clang/llvm and the exact same set of USE flags). This seems suspicious: $ pkg-config --libs libcerf -L/usr/lib -lcerf Does the package build for you with USE="-libcerf"? You need to use lld (-fuse-ld=lld). lld rejects objects of the wrong type, while bfd just warns about it. I do have a patch locally to make bfd error out on it if you want it. (In reply to Sam James from comment #13) > You need to use lld (-fuse-ld=lld). Thanks, I can reproduce the problem now. (I had LD="ld.lld" but apparently it wasn't enough.) Tweaking libcerf.pc for the correct libdir fixes the problem: --- /usr/lib64/pkgconfig/libcerf.pc~ 2024-08-26 23:45:30.000000000 +0200 +++ /usr/lib64/pkgconfig/libcerf.pc 2024-08-26 23:52:16.300509288 +0200 @@ -1,6 +1,6 @@ prefix=/usr exec_prefix=${prefix} -libdir=${prefix}/lib +libdir=${prefix}/lib64 includedir=${prefix}/include Name: libcerf The problem is with sci-libs/libcerf, therefore reassigning to sci. Patch is available upstream: https://jugit.fz-juelich.de/mlz/libcerf/-/commit/db4497bdf63fb14973169e7e661be2477c174cdb |