Deal with bmake-20170301 no longer resolving -C like it used to.

Several checks assume .CURDIR is resolved, such as for determining RELDIR from
SRCTOP/.CURDIR.  If -C is used then the path is no longer resolved like it was
before which is problematic for symlinked source trees.  A similar change was
also made to ports post bmake-20170301.

This fixes 'make -C <symlinked path> buildworld' using the wrong OBJDIR.

Reported by:	rstone
Sponsored by:	Dell EMC
This commit is contained in:
Bryan Drewery 2017-12-05 21:30:22 +00:00
parent 302bf4c180
commit 154733e844

View File

@ -2,6 +2,14 @@
# early setup only see also src.sys.mk
# bmake-20170301 started taking '-C' "as is" for some cases, notably absolute
# paths. Some later comparisons will assume .CURDIR is resolved and matches
# what we would get with 'cd'. So just force resolve it now if it is an
# absolute path.
.if ${MAKE_VERSION} >= 20170301 && !empty(.CURDIR:M/*)
.CURDIR:= ${.CURDIR:tA}
.endif
# make sure this is defined in a consistent manner
SRCTOP:= ${.PARSEDIR:tA:H:H}