Charlie Li <[email protected]> wrote on 2023-10-09 15:30:33 +0000 :
> lang/rust: resurrect PORT_LLVM as a non-default OPTION
>
> Rust uses LLVM for code generation [0] and bundles their own copy of a
> release that they fully support in relation to the rest of rustc. This
> however adds to an already intensive build process. For the benefit of those
> building from source, resurrect the PORT_LLVM option, allowing to link with
> an existing devel/llvm port of the user's choosing within Rust compatibility
> ranges. This remains unset by default.
My understanding is that building a devel/llvm* these days requires
building rust first, via needing to build python things (for
documentation purposes?), that in turn need rust to have been built
first. Last I knew, trying to disable the llvm* DOCS option in a
normal way did not avoid the "needs rust" issue.
Absent use of a workaround to avoid this, it would seem to be
problematical to use PORT_LLVM for rust if the llvm* in question
would itself need to be built.
Note: I have used a /usr/local/etc/poudriere.d/make.conf
workaround for my port->package build activity:
.if ${.CURDIR:M*/devel/llvm*}
OPTIONS_UNSET=DOCS
.endif
It managed to avoid the python related dependencies that lead to
rust being needed by the llvm* build.
May be PORT_LLVM enablement should do such automatically? May be
a stronger form of guaranteed mutual exclusion between DOCS and
PORT_LLVM to avoid ever being allowed to form the cycle?
===
Mark Millard
marklmi at yahoo.com