Date: Sat, 4 Nov 2017 18:36:09 -0700 From: Bryan Drewery <bdrewery@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Cc: peter@freebsd.org Subject: Re: svn commit: r325416 - head/share/mk Message-ID: <2264A0FB-9B5B-4E38-88D7-D0F7B3C0C3CC@FreeBSD.org> In-Reply-To: <2AE40414-7976-4B43-90B2-41C32026A2B7@FreeBSD.org> References: <201711050012.vA50C6m8042948@repo.freebsd.org> <2AE40414-7976-4B43-90B2-41C32026A2B7@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Nov 4, 2017, at 18:27, Bryan Drewery <bdrewery@FreeBSD.org> wrote: > > 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. > If it wasn’t clear, any such case is definitely fixed by this commit and r325405 would assert it doesn’t happen again. I’m just not sure if the above is a possible failure case yet. > > Regards, > Bryan Drewery > >> On Nov 4, 2017, at 17:12, Bryan Drewery <bdrewery@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" >> > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2264A0FB-9B5B-4E38-88D7-D0F7B3C0C3CC>
