svn commit: r291555 - head/share/mk

Bryan Drewery bdrewery at FreeBSD.org
Tue Dec 1 03:09:55 UTC 2015


Author: bdrewery
Date: Tue Dec  1 03:09:54 2015
New Revision: 291555
URL: https://svnweb.freebsd.org/changeset/base/291555

Log:
  FAST_DEPEND: Workaround hacks in the wild that have '..' or '/' in OBJS.
  
  This is mostly working around the converts/iconv port having '../ces/file.o'
  in its OBJS list which resulted in '.depend../ces/file.o'.  Now it will have
  '.depend.._ces_file.o'.
  
  Other implementations have :T which would result in '.depend.file.o' here, but
  that could lead to collisions.
  
  X-MFC-With:	r291554
  MFC after:	1 week
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/share/mk/bsd.dep.mk

Modified: head/share/mk/bsd.dep.mk
==============================================================================
--- head/share/mk/bsd.dep.mk	Tue Dec  1 03:00:10 2015	(r291554)
+++ head/share/mk/bsd.dep.mk	Tue Dec  1 03:09:54 2015	(r291555)
@@ -60,15 +60,18 @@ DEPENDFILES=	${DEPENDFILE}
 .if ${MK_FAST_DEPEND} == "yes" && ${.MAKE.MODE:Unormal:Mmeta*} == ""
 DEPENDFILES+=	${DEPENDFILE}.*
 DEPEND_MP?=	-MP
-DEPEND_CFLAGS+=	-MD -MF${DEPENDFILE}.${.TARGET}
+# Handle OBJS=../somefile.o hacks.  Just replace '/' rather than use :T to
+# avoid collisions.
+DEPEND_FILTER=	C,/,_,g
+DEPEND_CFLAGS+=	-MD -MF${DEPENDFILE}.${.TARGET:${DEPEND_FILTER}}
 DEPEND_CFLAGS+=	-MT${.TARGET}
 CFLAGS+=	${DEPEND_CFLAGS}
 DEPENDOBJS+=	${OBJS} ${POBJS} ${SOBJS}
 .for __obj in ${DEPENDOBJS:O:u}
 .if ${.MAKEFLAGS:M-V} == ""
-.sinclude "${DEPENDFILE}.${__obj}"
+.sinclude "${DEPENDFILE}.${__obj:${DEPEND_FILTER}}"
 .endif
-DEPENDFILES_OBJS+=	${DEPENDFILE}.${__obj}
+DEPENDFILES_OBJS+=	${DEPENDFILE}.${__obj:${DEPEND_FILTER}}
 .endfor
 .endif	# ${MK_FAST_DEPEND} == "yes"
 


More information about the svn-src-head mailing list