RE: lang/rust: resurrect PORT_LLVM as a non-default OPTION

From: Mark Millard <marklmi_at_yahoo.com>
Date: Mon, 09 Oct 2023 23:06:56 UTC
Charlie Li <vishwin@FreeBSD.org> 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