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

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm,gmane.os.freebsd.devel.ports
Message-ID <[email protected]>
On Sep 14, 2023, at 10:46, John F Carr <[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.