Out of memory building lang/ghc-8.8.3

andrew clarke mail at ozzmosis.com
Tue May 5 11:09:11 UTC 2020


On 2020-05-05 14:19:50, Gleb Popov (arrowd at freebsd.org) wrote:

> On Tue, May 5, 2020 at 1:37 PM andrew clarke <mail at ozzmosis.com> wrote:
> 
> > Beware anyone building lang/ghc-8.8.3 from the ports tree. Building it
> > here on FreeBSD 12.1-REL AMD64 with Poudriere, the build ran out of swap,
> > despite the PC having 8 GB RAM, 8 GB swap and not much else running.
> >
> > My /usr/local/etc/poudriere.conf:
> >
> > BASEFS=/poudriere
> > ZPOOL=zroot
> > FREEBSD_HOST=http://mirror.internode.net/
> > POUDRIERE_DATA=/poudriere/data
> > RESOLV_CONF=/etc/resolv.conf
> > DISTFILES_CACHE=/usr/ports/distfiles
> > USE_TMPFS=yes
> > ALLOW_MAKE_JOBS=yes
> > KEEP_OLD_PACKAGES=yes
> > PARALLEL_JOBS=8
> >
> > Maybe I can retune the last three parameters to use less memory. I've not
> > tried yet.
> >
> > This isn't really a whinge, I'm just surprised it failed. I'd have thought
> > 8 GB was enough.
> >
> > (ghc is a build dependency of textproc/hs-pandoc)
> >
> 
> Did you have something else building at the same time?
> 
> On my laptop with 16 Gb of RAM I also see OOM failures when building
> multiple "heavy" packages (llvmXX, gccX, ghc, rust, libreoffice)
> simultaneously. In this case I use -J poudriere option to limit number of
> jobs.

Nothing else building.

This is a headless server, so I've no need to build something the size of
libreoffice or chromium. I've noticed llvm10 takes a long time to build, but
8 GB seems plenty of memory for it.

The -J option sounds like the way to go, provided I remember to use it
next time. Or I could instead set PARALLEL_JOBS=1 in poudriere.conf but then
build performance will suffer for every port, which isn't ideal.

But perhaps there's an option to limit make jobs just for a single port, set in
/usr/local/etc/poudriere.d/make.conf ? That would be nice.


More information about the freebsd-ports mailing list