Subject: Re: bug#37482: Guix fails to build libreoffice

From: Tobias Geerinckx-Rice <[email-masked]>
Date: Sun, 22 Sep 2019 19:45:52 +0200

Jan,

Thanks for the report, and sorry you had to learn this the hard 
way.

Jan Wielkiewicz 写道：
> I've recently tried to reconfigure my system, but after about 3 
> hours
> of building libreoffice, the system froze for 2 hours and then 
> guix
> threw:

[…]

> g++: internal compiler error: Killed (program cc1plus)
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <http://gcc.gnu.org/bugs.html> for instructions.

This message and the freezing above is a tell-tale sign of OOM 
(out-of-memory).  If you check your dmesg or /var/log/messages at 
that time, I'm almost certain you'll see the OOM killer plot its 
dastardly deeds.

> My system is an old ThinkPad with 2GB of RAM and Intel Centrino 
> Duo
> processor, but I'm unsure if this was the cause of the build 
> failing.

You may be sure.

2 GiB of RAM is simply not enough to build many packages these 
days.  That's the world we live in.  There's nothing Guix can do 
to change that.

You can restrict the number of parallel builds and jobs by 
respectively passing --max-jobs=1 and --cores=1 to the daemon. 
You can make this permanent by setting (extra-options …) in your 
system configuration.

Even then, some complex executables will simply fail to link with 
so little RAM.

> I saw some other packages have similar problems like, if my 
> memory is
> correct, the support for ARM have been removed from webkit-qt.

I don't see how this is related to running out of RAM.  If 
webkit-qt is broken on ARM that's unfortunate, but it's better to 
mark it as such than failing to build it on 100% of ARM systems.

Your issue is different: the exact same libreoffice might have 
built fine if you had 4 GiB of RAM, or 3, or 5, or 2 with swap, 
but only if your weren't also running any (Guix or other) builds 
at the time, or watching a movie, or had the room thermostat 
turned up, or use Gnome 3, all beneath a gibbous moon.  All these 
things, and many more, will cause builds to fail or succeed 
‘randomly’.

The only way to know is to try.

> I'm not sure if removing support for an achitecture is the right
> solution here - wouldn't it be better if Guix checked if the 
> system is
> powerful enough to handle building certain packages?

I personally think the annoyances of ‘helpful’ warnings 
(=extremely inaccurate guesses) would far outweigh any purported 
benefit.

Kind regards,

T G-R