Index | Thread | Search

From:
Theo Buehler <tb@theobuehler.org>
Subject:
Re: disable parallel make for "fake"
To:
ports <ports@openbsd.org>
Date:
Mon, 30 Mar 2026 12:25:53 +0200

Download raw body.

Thread
On Mon, Mar 30, 2026 at 11:09:50AM +0100, Stuart Henderson wrote:
> Some ports are happy to _build_ in parallel, but fail during "make
> fake". For example, vim and php.
> 
> We used to have a separate PARALLEL_INSTALL variable controlling
> whether parallel flags were passed through there, added in r1.920,
> removed in r1.1510.
> 
> I'm not convinced that parallel fake is enough of a win to be worth
> restricting the number of ports that can use parallel build so I'd like
> to remove it. (Apart from rare semi-broken ports which do a chunk of
> compilation during "make fake", it's mostly going to be filesystem
> access which doesn't parallelize brilliantly on OpenBSD at present
> anyway).

One of the ports where this will really hurt is x1//qt5/qtbase which
rebuilds itself in its entirety during fake.

I don't know how many rust ports with DPB_PROPERTIES=parallel there are
but if any of them sets MODCARGO_INSTALL_TARGET_PATHS, it will likely
build a non-trivial amount of stuff as well.

So while I'm ok with this in principle, I think this needs to run
through a bulk or two to see if it doesn't add a significant amount of
build time.

> 
> Any OKs or objections to disabling it, so that MAKE_JOBS is only
> passed through by infrastructure for build/test?
> 
> (If there's some individual port which would really benefit from
> parallel install, it could always add to FAKE_FLAGS itself).
> 
> Index: bsd.port.mk
> ===================================================================
> RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
> diff -u -p -r1.1647 bsd.port.mk
> --- bsd.port.mk	17 Jan 2026 22:30:08 -0000	1.1647
> +++ bsd.port.mk	30 Mar 2026 09:47:11 -0000
> @@ -488,7 +488,8 @@ MAKE_JOBS ?= 1
>  
>  .if ${MAKE_JOBS} != 1
>  MAKE_FLAGS += ${PARALLEL_MAKE_FLAGS}
> -ALL_FAKE_FLAGS += ${PARALLEL_MAKE_FLAGS}
> +# various ports work with parallel build but fail with parallel install
> +#ALL_FAKE_FLAGS += ${PARALLEL_MAKE_FLAGS}
>  .endif
>  
>  # Here comes the part that sets BUILD_PACKAGES and various IGNORE* up.
>