When llvm:18 and clang:18 is installed, llvmgold:18 will be pulled in by the binutils-plugin useflag of llvm. Packages that depend on llvmgold, but have LLVM_MAX_SLOT capped at 17 will fail. Error: could not open plugin file: /usr/lib/llvm/17/bin/../lib64/LLVMgold.so Example: =mail-client/thunderbird-115.8.1
Please always include the full build.log and emerge --info.
Please attach a build log from a failing package and provide emerge --info.
emerge --info https://bpa.st/KFNA build.log https://bpa.st/2JMQ
Please don't link to pastebins in bug reports. They expire and may not be accessible behind firewalls etc. Please use attachments.
Created attachment 887192 [details] emerge --info
Created attachment 887193 [details] build.log
This is tricky. I'm not really sure who is responsible for this. It's arguably you, as the user, for using LTO with Clang.
actually @immolo on discord told me to open this issue. I tried to bump llvm version to 18, but thunderbird depends on rust, so rust would have to get a bump to. But building rust still fails with llvm:18, i'm working on creating a patch.
I think you might be right, actually. sys-devel/llvm[binutils-plugin] depends on >=sys-devel/llvmgold-${PV} which means you can easily get a mismatch.
Is there a problem with slotting llvmgold?
oops sorry just read the new summary
Is that specific to mold?
sorry for late response had to figure out some other stuff due to llvm:18 anyways yeah you're right it is specific to mold
It'll likely happen with bfd too. The gold plugin isn't needed with lld.
Actually, this makes no sense to me. /usr/lib/llvm/17/lib64/LLVMgold.so is installed by sys-devel/llvm[binutils-plugin], and it is slotted. sys-devel/llvmgold only installs /usr/x86_64-pc-linux-gnu/binutils-bin/lib/bfd-plugins/LLVMgold.so symlink.
(In reply to Michał Górny from comment #15) > Actually, this makes no sense to me. > > /usr/lib/llvm/17/lib64/LLVMgold.so is installed by > sys-devel/llvm[binutils-plugin], and it is slotted. > > sys-devel/llvmgold only installs > /usr/x86_64-pc-linux-gnu/binutils-bin/lib/bfd-plugins/LLVMgold.so symlink. OH, I read it the wrong way around.
(In reply to Michał Górny from comment #15) > Actually, this makes no sense to me. > > /usr/lib/llvm/17/lib64/LLVMgold.so is installed by > sys-devel/llvm[binutils-plugin], and it is slotted. > > sys-devel/llvmgold only installs > /usr/x86_64-pc-linux-gnu/binutils-bin/lib/bfd-plugins/LLVMgold.so symlink. but if you have llvm:18 only llvmgold-18 gets pulled in
(In reply to fabolous.e05 from comment #17) > (In reply to Michał Górny from comment #15) > > Actually, this makes no sense to me. > > > > /usr/lib/llvm/17/lib64/LLVMgold.so is installed by > > sys-devel/llvm[binutils-plugin], and it is slotted. > > > > sys-devel/llvmgold only installs > > /usr/x86_64-pc-linux-gnu/binutils-bin/lib/bfd-plugins/LLVMgold.so symlink. > > but if you have llvm:18 only llvmgold-18 gets pulled in Yes. Which installs a symlink that has nothing to do with the error you're seeing.
Oh shoot I'm just stupid i had binutils-plugin enabled on llvm, but i hadn't recompiled. Sorry for that! Anyways just to understand: what even is the purpose of llvmgold as it's just a symlink? In other terms: which programs need the symlink? btw: thunderbid passes ^ this stuff now, but fails when compiling rusts style lib, but I'm sure i can figure that out by myself.
GNU ld does.
Err, GNU binutils in general, I meant. It's needed for ar/nm etc. to understand LLVM bitcode.