| Newsgroups |
gmane.linux.lfs.beyond.devel |
| Message-ID |
<[email protected]> |
On Thu, 2025-09-04 at 17:29 -0500, rhubarbpieguy wrote:
>
> The rustc bootstrap.toml section contains - llvm-config =
> "/usr/bin/llvm-config." I believe that line prevents rustc compiling
> without llvm installed, presenting a conflict as the documentation
> lists
> llvm as recommended.
It's not a conflict. If you are omitting an optional dependency you
often need to change the instructions in the book, not limited to this
case.
We already have:
Recommended means that BLFS strongly suggests this package is installed
first (except if said to be “runtime,” see below) for a clean and
trouble-free build, that won't have issues either during the build
process, or at run-time. The instructions in the book assume these
packages are installed. In many cases, if a recommended dependency (not
just “runtime”) is not installed, the built package may lack some
important functionalities (for example, a video player may be only able
to play audio). Sometimes, it's needed to modify the book instructions
to disable those important functionalities. In other cases, the build
system of the package may build a copy of the dependency (often outdated
and sometimes with known security vulnerabilities) shipped in the source
tree, or may be downloaded from the Internet during the build process.
This increases build time and disk usage. This could potentially cause
other problems. If a recommended dependency is said to be “runtime,” it
means that BLFS strongly suggests that this dependency is installed
before using the package, for getting full functionality.
in "Notes on Building Software." Notably we already have
Sometimes, it's needed to modify the book instructions to disable those
important functionalities.
But this is a little inaccurate in this case. Maybe:
Sometimes it's needed to modify the book instructions to build with some
recommended dependencies omitted, in some cases we document how to
modify the instructions in the Command Explanations sections but those
modifications are not seriously tested.
/* snip */
> # Comment out following options if you have not installed
> # recommended dependencies:
>
> Should there be something similar above - llvm-config =
> "/usr/bin/llvm-config?" I commented out the lines and compiled rustc
> without llvm installed.
The book already has:
[target.x86_64-unknown-linux-gnu]: the syntax of bootstrap.toml requires
an llvm-config entry for each target for which system-llvm is to be
used. Change the target to [target.i686-unknown-linux-gnu] if you are
building on 32-bit x86. This whole section should be omitted if you wish
to build against the shipped llvm, but the resulting build will be
larger and take longer.
In the Command Explanations section. Yes it's inconsistent but we use
the Command Explanations section to document how to omit a recommended
dependency in almost the entire book, for example in WebKitGTK we don't
have something like
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr \
/* snip */
-D USE_WOFF2=OFF \
-D USE_GTK4=OFF \
# omit this if you've not installed libseccomp or bubblewrap or
# xdg-dbus-proxy but note that doing so may allow your system to
# be compromised more severely in case a security vulnerability in
# webkitgtk or it's dependencies is exploited
-D ENABLE_BUBBLEWRAP_SANDBOX=ON \
-D USE_SYSPROF_CAPTURE=NO \
-D ENABLE_SPEECH_SYNTHESIS=OFF \
-W no-dev -G Ninja .. &&
ninja
You can see this would look stupid for most of the packages, and it's
even not possible here: the above case won't work because bash will
truncate the command before -D ENABLE_BUBBLEWRAP_SANDBOX=ON with that
comment then.
It's just the Mozilla packages are some exceptions different from all
the book.
--
Xi Ruoyao <[email protected]>
--
http://lists.linuxfromscratch.org/sympa/info/blfs-dev
Unsubscribe: See the above information page