Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
sys-block/thin-provisioning-tools-1.1.0-r2 pulls in LLVM 18
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
mortonP
Tux's lil' helper
Tux's lil' helper


Joined: 22 Dec 2015
Posts: 89

PostPosted: Sat Nov 16, 2024 10:57 pm    Post subject: sys-block/thin-provisioning-tools-1.1.0-r2 pulls in LLVM 18 Reply with quote

The thin-provisioning-tools are small nice tools:

Code:
$ equery s  sys-block/thin-provisioning-tools
 * sys-block/thin-provisioning-tools-1.0.10
         Total files : 55
         Total size  : 3.03 MiB


Now an update is pending....

Code:
$ emerge -av1  sys-block/thin-provisioning-tools
These are the packages that would be merged, in order:
Calculating dependencies... done!
Dependency resolution took 5.09 s (backtrack: 0/20).

[ebuild  N     ] sys-devel/llvm-common-18.1.8::gentoo  USE="-emacs -verify-sig" 0 KiB
[ebuild  N     ] sys-devel/clang-common-18.1.8-r3::gentoo  USE="cet -bootstrap-prefix -default-compiler-rt -default-libcxx -default-lld -hardened -llvm-libunwind -verify-sig" 0 KiB
[ebuild  N     ] sys-libs/binutils-libs-2.42-r2:0/2.42.0::gentoo  USE="cet nls -64-bit-bfd -multitarget -static-libs -test" ABI_X86="(64) -32 (-x32)" 0 KiB
[ebuild  N     ] sys-libs/libomp-18.1.8:0/18.1::gentoo  USE="-debug -gdb-plugin -hwloc -offload -ompt -test -verify-sig" ABI_X86="32 (64) (-x32)" LLVM_TARGETS="(-AMDGPU) -NVPTX" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11 -python3_13" 0 KiB
[ebuild  N     ] sys-devel/llvm-18.1.8-r1:18/18.1::gentoo  USE="binutils-plugin libffi ncurses zstd -debug -debuginfod -doc -exegesis -libedit -test -verify-sig -xml -z3" ABI_X86="(64) -32 (-x32)" LLVM_TARGETS="(AArch64) (AMDGPU) (ARM) (AVR) (BPF) (Hexagon) (Lanai) (LoongArch) (MSP430) (Mips) (NVPTX) (PowerPC) (RISCV) (Sparc) (SystemZ) (VE) (WebAssembly) (X86) (XCore) -ARC -CSKY -DirectX -M68k -SPIRV -Xtensa" 0 KiB
[ebuild  N     ] sys-devel/llvm-toolchain-symlinks-18-r1:18::gentoo  USE="native-symlinks -multilib-symlinks" 0 KiB
[ebuild  N     ] sys-devel/llvmgold-18::gentoo  0 KiB
[ebuild  N     ] sys-devel/clang-18.1.8:18/18.1::gentoo  USE="extra (pie) static-analyzer -debug -doc (-ieee-long-double) -test -verify-sig -xml" ABI_X86="(64) -32 (-x32)" LLVM_TARGETS="(AArch64) (AMDGPU) (ARM) (AVR) (BPF) (Hexagon) (Lanai) (LoongArch) (MSP430) (Mips) (NVPTX) (PowerPC) (RISCV) (Sparc) (SystemZ) (VE) (WebAssembly) (X86) (XCore) -ARC -CSKY -DirectX -M68k -SPIRV -Xtensa" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11 -python3_13" 0 KiB
[ebuild  N     ] sys-devel/clang-toolchain-symlinks-18:18::gentoo  USE="native-symlinks -gcc-symlinks -multilib-symlinks" 0 KiB
[ebuild  N     ] sys-libs/compiler-rt-18.1.8-r1:18::gentoo  USE="clang -debug -test -verify-sig" ABI_X86="32 (64)" 0 KiB
[ebuild  N     ] sys-libs/compiler-rt-sanitizers-18.1.8-r1:18::gentoo  USE="asan cfi clang dfsan gwp-asan hwasan libfuzzer lsan memprof msan orc profile safestack scudo tsan ubsan xray -debug (-shadowcallstack) -test -verify-sig" ABI_X86="32 (64)" 0 KiB
[ebuild  N     ] sys-devel/clang-runtime-18.1.8:18::gentoo  USE="compiler-rt openmp sanitize -libcxx" ABI_X86="32 (64) (-x32)" 0 KiB
[ebuild     U  ] sys-block/thin-provisioning-tools-1.1.0-r2::gentoo [1.0.10::gentoo] USE="-debug -io-uring" LLVM_SLOT="18%* -17%" 27.264 KiB
Total: 13 packages (1 upgrade, 12 new), Size of downloads: 27.264 KiB   


....err.... what?
Where does that full set of LLVM come from?

Probably this has something to do with: (https://github.com/jthornber/thin-provisioning-tools)
Quote:
"We are in the process of switching these tools over from C++ to Rust."


...yeah, rust needs LLVM..... but.... there is rust already installed:

Code:
$ eix dev-lang/rust
[I] dev-lang/rust
     Installed versions:  1.81.0-r100(1.81.0)^t(01:02:50 2024-11-10)(-big-endian -clippy -debug -dist -doc -llvm-libunwind -lto -miri -nightly -parallel-compiler -rust-analyzer -rust-src -rustfmt -system-bootstrap -system-llvm -test -verify-sig -wasm ABI_MIPS="-n32 -n64 -o32" ABI_S390="-32 -64" ABI_X86="64 -32 -x32" CPU_FLAGS_X86="sse2" LLVM_SLOT="18" LLVM_TARGETS="X86 -AArch64 -AMDGPU -ARC -ARM -AVR -BPF -CSKY -DirectX -Hexagon -Lanai -LoongArch -M68k -MSP430 -Mips -NVPTX -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -WebAssembly -XCore -Xtensa")


Hmmmm... maybe rust used a bundled LLVM and sys-block/thin-provisioning-tools requires a system LLVM installed?

Since this is a rather slow machine, I'd rather not compile for hours LLVM just to obtain ~3MiB of tools.

Did I miss something?
Or is LLVM for newer thin-provisioning-tools a hard requirement?

Thanks!
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22660

PostPosted: Sat Nov 16, 2024 11:30 pm    Post subject: Reply with quote

When you want to know why a package is scheduled for merge, you should ask Portage to explain its decision. Start with --tree so you can see which package brought in llvm. If that is still not helpful enough, consider excluding or masking packages that you refuse to build, so that Portage explains why it wants them.

At a glance, I would say this is related to the LLVM_SLOT setting, though I cannot say why that is present now when it was not before.

A cursory review of the ebuild shows it is definitely dependent on a large number of Rust crates. I doubt you can build this package without installing a rust compiler.
Back to top
View user's profile Send private message
sam_
Developer
Developer


Joined: 14 Aug 2020
Posts: 1970

PostPosted: Sat Nov 16, 2024 11:32 pm    Post subject: Reply with quote

thin-provisioning-tools actually uses the bindgen crate which itself actually needs to use libclang, so the bundled LLVM in Rust isn't even enough for you here as you're not getting LLVM dragged in for Rust itself.

(FWIW, I disagree that they're nice small tools - they've been rewritten in several different languages over the years and end up being a hassle. I'd consider moving away from them if you can.)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum