Re: git: 2b7c1402f96b - main - src.sys.obj.mk: Export OBJTOP
- In reply to: Simon J. Gerraty: "git: 2b7c1402f96b - main - src.sys.obj.mk: Export OBJTOP"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 02 Jun 2024 23:04:40 UTC
On Tue, May 28, 2024 at 06:52:50PM +0000, Simon J. Gerraty wrote:
> The branch main has been updated by sjg:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=2b7c1402f96be2d2986738e32706dab7b5691ef0
>
> commit 2b7c1402f96be2d2986738e32706dab7b5691ef0
> Author: Simon J. Gerraty <sjg@FreeBSD.org>
> AuthorDate: 2024-05-28 18:51:31 +0000
> Commit: Simon J. Gerraty <sjg@FreeBSD.org>
> CommitDate: 2024-05-28 18:51:31 +0000
>
> src.sys.obj.mk: Export OBJTOP
>
> If we had to set OBJTOP we want to .export it (if .MAKE.LEVEL > 0)
> for the benefit of things like x!= ${.MAKE} -r ... and similar.
>
> Without OBJTOP, the default MAKEOBJDIR setting will result in
> attempting to use an objdir like /lib or /bin etc in some cases.
>
> This patch is based on D30990
> with the addition of the check for level > 0.
>
> Reviewed by: jrtc27
> Differential Revision: <https://reviews.freebsd.org/D30990>
Hi Simon,
This breaks "make -j<big number> kernels" for me. The parallel kernel
builds appear to share an object directory and step all over each other.
This happens with and without the level > 0 check.
> ---
> share/mk/src.sys.obj.mk | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/share/mk/src.sys.obj.mk b/share/mk/src.sys.obj.mk
> index 708559edcdb8..e4c31f746f3d 100644
> --- a/share/mk/src.sys.obj.mk
> +++ b/share/mk/src.sys.obj.mk
> @@ -94,6 +94,9 @@ OBJTOP:= ${OBJROOT}${MACHINE}.${MACHINE_ARCH}
> # TARGET.TARGET_ARCH handled in OBJROOT already.
> OBJTOP:= ${OBJROOT:H}
> .endif # ${MK_UNIFIED_OBJDIR} == "yes"
> +.if ${.MAKE.LEVEL} > 0
> +.export OBJTOP
> +.endif
> .endif # empty(OBJTOP)
>
> # Fixup OBJROOT/OBJTOP if using MAKEOBJDIRPREFIX.
>