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"
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to