Re: Wow: Building the likes of devel/llvm16 now requires building rust first (when rust is out of date). . .

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 14 Sep 2023 20:46:07 UTC
On Sep 14, 2023, at 10:46, John F Carr <jfc@mit.edu> wrote:

> This needs to be fixed.  One massive compiler should not depend on another massive
> compiler just in case something in the tool chain wants to make an HTTPS request.
> Setting DOCS=off does not fix the dependency.
> 
> Here is my list of stripped-down devel/llvm17 options that still require rust
> 
> ===> The following configuration options are available for llvm17-17.0.0.r4:
>     BE_AMDGPU=off: AMD GPU backend (required by mesa)
>     BE_WASM=off: WebAssembly backend (required by firefox via wasi)
>     CLANG=on: Build clang
>     COMPILER_RT=on: Sanitizer libraries
>     DOCS=off: Build and/or install documentation
>     EXTRAS=off: Extra clang tools
>     FLANG=off: Flang FORTRAN compiler
>     LIT=on: Install lit and FileCheck test tools
>     LLD=on: Install lld, the LLVM linker
>     LLDB=on: Install lldb, the LLVM debugger
>     MLIR=on: Multi-Level Intermediate Representation
>     OPENMP=off: Install libomp, the LLVM OpenMP runtime library
>     POLLY=off: Polyhedral loop and data-locality optimizer
>     PYCLANG=off: Install python bindings to libclang
>     STATIC_LIBS=off: Install static libraries (does not effect sanitizers)
> ====> Options available for the single BACKENDS: you have to select exactly one of them
>     BE_FREEBSD=on: Backends for FreeBSD architectures
>     BE_NATIVE=off: Backend(s) for this architecture (AArch64 ARM)
>     BE_STANDARD=off: All non-experimental backends
> 
> rust does not currently build on my system so I can not build the ports llvm17 or llvm-devel.

(py39 happens to be what is in use in my context.)

Even devel/llvm*@lite depends on py39-recommonmark
--and that in turns leads to the sequence: py39-sphinx,
py39-requests, py39-urllib3, py39-cryptography,
py39-setuptools-rust, and rust. (The dependencies
look to be basically runtime and test dependencies.)
devel/llvm* always seems to be tied to recommonmark .

[I'll note that recommonmark is in the process
of being replaced upstream my myst-parser but
that also leads down the same sphinx and later
dependency sequence from what I can tell.]

The system-clang builds avoid needing recommonmark
(or the like). May be devel/llvm*'s could be updated
to allow selecting such an avoidance? May be what
actually uses recommonmark (or the like) could be
separated into its own port that could optionally
be built/installed? (Just vague ideas.)

[Separately, just curious: Which resource limitations
stop the building of rust in your context?]

===
Mark Millard
marklmi at yahoo.com