svn commit: r325416 - head/share/mk
Bryan Drewery
bdrewery at FreeBSD.org
Sun Nov 5 01:27:49 UTC 2017
Pretty sure this fixes /etc host files being used in ‘make distribution’ (without AUTO_OBJ) as the source files to install to DESTDIR since many of the etc dirs use NO_OBJ.
I am away from computer for a while so cannot confirm but some basic tests before I left showed it was possible and Peter has run into such a case.
I’ll look more when I get home and mail current@ if it did fix it. It would have regressed since the src.sys.obj.mk commit the other day.
Regards,
Bryan Drewery
> On Nov 4, 2017, at 17:12, Bryan Drewery <bdrewery at FreeBSD.org> wrote:
>
> Author: bdrewery
> Date: Sun Nov 5 00:12:05 2017
> New Revision: 325416
> URL: https://svnweb.freebsd.org/changeset/base/325416
>
> Log:
> Always try to set .OBJDIR, even if AUTO_OBJ is enabled, and fallback to .CURDIR.
>
> When AUTO_OBJ is enabled this change becomes redundant with the auto.obj.mk
> check added in r325404. However, it is possible that new code is added
> at some point between src.sys.obj.mk and auto.obj.mk that disables AUTO_OBJ.
> That could leave make with a bogus and unsafe .OBJDIR in some cases.
>
> Sponsored by: Dell EMC Isilon
>
> Modified:
> head/share/mk/src.sys.obj.mk
>
> Modified: head/share/mk/src.sys.obj.mk
> ==============================================================================
> --- head/share/mk/src.sys.obj.mk Sun Nov 5 00:12:02 2017 (r325415)
> +++ head/share/mk/src.sys.obj.mk Sun Nov 5 00:12:05 2017 (r325416)
> @@ -154,9 +154,8 @@ MK_AUTO_OBJ:= ${OBJDIR_WRITABLE}
> .export MK_AUTO_OBJ
> .endif # ${MK_AUTO_OBJ} == "no" && ...
>
> -# Assign this directory as .OBJDIR if possible after determining if AUTO_OBJ
> -# can be enabled by default.
> -.if ${MK_AUTO_OBJ} == "no"
> +# Assign this directory as .OBJDIR if possible.
> +#
> # The expected OBJDIR already exists, set it as .OBJDIR.
> .if !empty(MAKEOBJDIRPREFIX) && exists(${MAKEOBJDIRPREFIX}${.CURDIR})
> .OBJDIR: ${MAKEOBJDIRPREFIX}${.CURDIR}
> @@ -169,5 +168,10 @@ MK_AUTO_OBJ:= ${OBJDIR_WRITABLE}
> .elif ${MAKE_VERSION} <= 20170720 && \
> ${.CURDIR} == ${SRCTOP} && ${.OBJDIR} == ${SRCTOP}/
> .OBJDIR: ${.CURDIR}
> +.else
> +# The OBJDIR we wanted does not yet exist, ensure we default to safe .CURDIR
> +# in case make started with a bogus MAKEOBJDIR, that expanded before OBJTOP
> +# was set, that happened to match some unexpected directory. Either
> +# auto.obj.mk or bsd.obj.mk will create the directory and fix .OBJDIR later.
> +.OBJDIR: ${.CURDIR}
> .endif
> -.endif # ${MK_AUTO_OBJ} == "no"
>
More information about the svn-src-all
mailing list