Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Dec 2015 03:09:54 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r291555 - head/share/mk
Message-ID:  <201512010309.tB139sEd069966@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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"
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201512010309.tB139sEd069966>