Monday, March 30, 2026

Re: disable parallel make for "fake"

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.
>

No comments:

Post a Comment