On 25/10/2023 07:47, Xavier Humbert wrote:
Le 10/25/23 08:46, Cy Schubert a écrit :In message <[email protected]>, Xavier Humbert w rites:Hi,When building rust, all memory is eaten, leading to OOM killing almost everything, eventually failing, and leading to an unstable system. Is there a way to tell the compiler to avoid this behaviour ?How much RAM does your machine have? How many CPU cores/threads does it have?I have 16 GB RAM, and 4 cores
I've managed to build rust on a smaller machine than that. I find that the following helps:
* Stopping rust and some other large ports building on tmpfs
TMPFS_BLACKLIST='rust gcc* llvm* texlive-texmf'
TMPFS_BLACKLIST_TMPDIR=/usr/local/poudriere/data/cache/tmp
USE_TMPFS=yes
TMPFS_LIMIT=4
* Building rust separately from other ports, and then doing
incremental builds for the rest of the ports
% poudriere bulk -j stable14amd64 -b latest lang/rust
rust is annoying in that it doesn't respect the ALLOW_MAKE_JOBS setting,
and will launch multiple threads of compilation irespective of it, which
really doesn't help on a memory / CPU onstrained system. Even so,
separating out rust for individual compilation means poudriere runs that
are a complete faff.
You can't just kick off an incremental rebuild of ports and leave it to do its thing, but have to babysit the process and keep building certain ports specially. It wouldn't be so bad, but it seems that just about any trivial activity in the ports tree means poudriere will insist that rust needs rebuilding.
Cheers,
Matthew
OpenPGP_signature.asc
Description: OpenPGP digital signature
