Date: Tue, 5 May 2020 21:26:04 +1000 From: Kubilay Kocak <koobs@FreeBSD.org> To: andrew clarke <mail@ozzmosis.com>, Gleb Popov <arrowd@freebsd.org> Cc: FreeBSD ports <ports@freebsd.org> Subject: Re: Out of memory building lang/ghc-8.8.3 Message-ID: <4a13c8ea-2db8-d8ef-56b1-2f4204502772@FreeBSD.org> In-Reply-To: <20200505110900.za365npmukedw4x3@ozzmosis.com> References: <20200505093712.5qeyqt7gioolhdyu@ozzmosis.com> <CALH631nwr8p3Q0ie4kuFc3_HMVMkEQn0DRAHAEV2fwrBW7D3-Q@mail.gmail.com> <20200505110900.za365npmukedw4x3@ozzmosis.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 5/05/2020 9:09 pm, andrew clarke wrote: > On 2020-05-05 14:19:50, Gleb Popov (arrowd@freebsd.org) wrote: > >> On Tue, May 5, 2020 at 1:37 PM andrew clarke <mail@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4a13c8ea-2db8-d8ef-56b1-2f4204502772>