View previous topic :: View next topic |
Author |
Message |
mortonP Tux's lil' helper
Joined: 22 Dec 2015 Posts: 89
|
Posted: Sat Nov 16, 2024 10:57 pm Post subject: sys-block/thin-provisioning-tools-1.1.0-r2 pulls in LLVM 18 |
|
|
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 |
|
|
Hu Administrator
Joined: 06 Mar 2007 Posts: 22660
|
Posted: Sat Nov 16, 2024 11:30 pm Post subject: |
|
|
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 |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 1970
|
Posted: Sat Nov 16, 2024 11:32 pm Post subject: |
|
|
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 |
|
|
|
|
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
|
|