On 5/05/2020 9:09 pm, andrew clarke wrote:
On 2020-05-05 14:19:50, Gleb Popov (arr...@freebsd.org) wrote:

On Tue, May 5, 2020 at 1:37 PM andrew clarke <m...@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.

You can do it for OPTIONS in make.conf (or poudriere make/set .conf's):

# Per port options
# category_portname_{UN}SET=<OPTION>[ OPTION ]

graphics_cairo_UNSET=OPENGL
graphics_cairo_SET=X11

This doesn't help for non-OPTIONS variables, but we have this recently submitted feature/review:

https://reviews.freebsd.org/D24324

For use like:

devel_llvm80_VARS=DISABLE_MAKE_JOBS=yes
devel_llvm90_VARS=DISABLE_MAKE_JOBS=yes

This would satisfy this and other per-port specific build options cases.



_______________________________________________
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to