diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/examples/Makefile | 6 | ||||
-rw-r--r-- | share/man/man3/pthread_attr_affinity_np.3 | 6 | ||||
-rw-r--r-- | share/man/man3/pthread_create.3 | 35 | ||||
-rw-r--r-- | share/man/man4/bcma.4 | 4 | ||||
-rw-r--r-- | share/man/man4/bhnd.4 | 4 | ||||
-rw-r--r-- | share/man/man4/bhndb.4 | 4 | ||||
-rw-r--r-- | share/man/man4/siba.4 | 6 | ||||
-rw-r--r-- | share/man/man4/vlan.4 | 2 | ||||
-rw-r--r-- | share/man/man5/src.conf.5 | 14 | ||||
-rw-r--r-- | share/man/man9/netisr.9 | 22 | ||||
-rw-r--r-- | share/mk/bsd.compiler.mk | 3 | ||||
-rw-r--r-- | share/mk/bsd.dep.mk | 22 | ||||
-rw-r--r-- | share/mk/bsd.info.mk | 14 | ||||
-rw-r--r-- | share/mk/bsd.lib.mk | 42 | ||||
-rw-r--r-- | share/mk/bsd.man.mk | 8 | ||||
-rw-r--r-- | share/mk/bsd.nls.mk | 2 | ||||
-rw-r--r-- | share/mk/bsd.prog.mk | 8 | ||||
-rw-r--r-- | share/mk/bsd.snmpmod.mk | 1 | ||||
-rw-r--r-- | share/mk/local.meta.sys.mk | 5 | ||||
-rw-r--r-- | share/mk/meta.stage.mk | 4 | ||||
-rw-r--r-- | share/mk/src.opts.mk | 4 | ||||
-rw-r--r-- | share/mk/sys.mk | 72 |
22 files changed, 186 insertions, 102 deletions
diff --git a/share/examples/Makefile b/share/examples/Makefile index 03b2952..acb50c7 100644 --- a/share/examples/Makefile +++ b/share/examples/Makefile @@ -37,7 +37,8 @@ LDIRS= BSD_daemon \ ses \ scsi_target \ sunrpc \ - uefisign + uefisign \ + ypldap XFILES= BSD_daemon/FreeBSD.pfa \ BSD_daemon/README \ @@ -192,7 +193,8 @@ XFILES= BSD_daemon/FreeBSD.pfa \ sunrpc/sort/rsort.c \ sunrpc/sort/sort.x \ sunrpc/sort/sort_proc.c \ - uefisign/uefikeys + uefisign/uefikeys \ + ypldap/ypldap.conf BINDIR= ${SHAREDIR}/examples diff --git a/share/man/man3/pthread_attr_affinity_np.3 b/share/man/man3/pthread_attr_affinity_np.3 index ee63e7d7..56e5329 100644 --- a/share/man/man3/pthread_attr_affinity_np.3 +++ b/share/man/man3/pthread_attr_affinity_np.3 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 8, 2010 +.Dd June 2, 2016 .Dt PTHREAD_ATTR_AFFINITY_NP 3 .Os .Sh NAME @@ -132,8 +132,8 @@ Insufficient memory exists to store the cpuset mask. .Xr cpuset 2 , .Xr cpuset_getid 2 , .Xr cpuset_setid 2 , -.Xr pthread_get_affinity_np 3 , -.Xr pthread_set_affinity_np 3 +.Xr pthread_getaffinity_np 3 , +.Xr pthread_setaffinity_np 3 .Sh STANDARDS The .Nm pthread_attr_getaffinity_np diff --git a/share/man/man3/pthread_create.3 b/share/man/man3/pthread_create.3 index 58bef13..43d9ed2 100644 --- a/share/man/man3/pthread_create.3 +++ b/share/man/man3/pthread_create.3 @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 15, 2014 +.Dd June 2, 2016 .Dt PTHREAD_CREATE 3 .Os .Sh NAME @@ -101,22 +101,41 @@ indicate the error. .Sh ERRORS The .Fn pthread_create -function will fail if: +function can return any of the following errors: .Bl -tag -width Er +.It Bq Er ENOMEM +The system lacked the necessary resources to create another thread. .It Bq Er EAGAIN -The system lacked the necessary resources to create another thread, or -the system-imposed limit on the total number of threads in a process -[PTHREAD_THREADS_MAX] would be exceeded. +The system-imposed limit on the total number of threads in a process +.Dv [PTHREAD_THREADS_MAX] +would be exceeded. +.It Bq Er EAGAIN +The +.Dv RACCT_NTHR +limit would be exceeded; see +.Xr racct 2 . .It Bq Er EPERM -The caller does not have appropriate permission to set the required scheduling -parameters or scheduling policy. +The caller does not have permission to set the scheduling parameters or +scheduling policy. .It Bq Er EINVAL -The value specified by +A value specified by .Fa attr is invalid. +.It Bq Er EDEADLK +The CPU set specified by +.Fa attr +would prevent the thread from running on any CPU. +.It Bq Er EFAULT +The stack base specified by +.Fa attr +is invalid, or the kernel was unable to put required +initial data on the stack. .El .Sh SEE ALSO +.Xr cpuset_setaffinity 2 , .Xr fork 2 , +.Xr racct 2 , +.Xr thr_new 2 , .Xr pthread_attr 3 , .Xr pthread_cancel 3 , .Xr pthread_cleanup_pop 3 , diff --git a/share/man/man4/bcma.4 b/share/man/man4/bcma.4 index 792c607..3a0313c 100644 --- a/share/man/man4/bcma.4 +++ b/share/man/man4/bcma.4 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 8, 2015 +.Dd June 3, 2016 .Dt BCMA 4 .Os .Sh NAME @@ -75,4 +75,4 @@ device driver first appeared in The .Nm driver was written by -.An Landon Fuller Aq Mt landon@landonf.org . +.An Landon Fuller Aq Mt landonf@FreeBSD.org . diff --git a/share/man/man4/bhnd.4 b/share/man/man4/bhnd.4 index 5f683c6..e54563f 100644 --- a/share/man/man4/bhnd.4 +++ b/share/man/man4/bhnd.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 8, 2015 +.Dd June 3, 2016 .Dt BHND 4 .Os .Sh NAME @@ -80,4 +80,4 @@ device driver first appeared in The .Nm driver was written by -.An Landon Fuller Aq Mt landon@landonf.org . +.An Landon Fuller Aq Mt landonf@FreeBSD.org . diff --git a/share/man/man4/bhndb.4 b/share/man/man4/bhndb.4 index eb01f66d..66c64cf 100644 --- a/share/man/man4/bhndb.4 +++ b/share/man/man4/bhndb.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 8, 2015 +.Dd June 3, 2016 .Dt BHNDB 4 .Os .Sh NAME @@ -65,7 +65,7 @@ device driver first appeared in The .Nm driver was written by -.An Landon Fuller Aq Mt landon@landonf.org . +.An Landon Fuller Aq Mt landonf@FreeBSD.org . .Sh CAVEATS The .Nm diff --git a/share/man/man4/siba.4 b/share/man/man4/siba.4 index 5750d3d..12e263b 100644 --- a/share/man/man4/siba.4 +++ b/share/man/man4/siba.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 8, 2010 +.Dd June 3, 2016 .Dt SIBA 4 .Os .Sh NAME @@ -88,6 +88,6 @@ and .An Weongyo Jeong Aq Mt weongyo@FreeBSD.org . The driver was rewritten for -.Fx 11.0 . +.Fx 11.0 by -.An Landon Fuller Aq Mt landon@landonf.org . +.An Landon Fuller Aq Mt landonf@FreeBSD.org . diff --git a/share/man/man4/vlan.4 b/share/man/man4/vlan.4 index efdae27..a47f68c 100644 --- a/share/man/man4/vlan.4 +++ b/share/man/man4/vlan.4 @@ -203,5 +203,3 @@ can be corrected manually if used in conjunction with such a parent interface. .Sh SEE ALSO .Xr ifconfig 8 , .Xr sysctl 8 -.Sh BUGS -No 802.1Q features except VLAN tagging are implemented. diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 1910d24..2e5dfce 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 292283 2015-12-15 18:42:30Z bdrewery .\" $FreeBSD$ -.Dd May 24, 2016 +.Dd June 5, 2016 .Dt SRC.CONF 5 .Os .Sh NAME @@ -1062,7 +1062,7 @@ Set to not build utilities for manual pages, .Xr manctl 8 , and related support files. .It Va WITH_META_MODE -.\" from FreeBSD: head/tools/build/options/WITH_META_MODE 300630 2016-05-24 23:15:52Z bdrewery +.\" from FreeBSD: head/tools/build/options/WITH_META_MODE 301474 2016-06-05 23:14:06Z bdrewery Creates .Xr make 1 meta files when building, which can provide a reliable incremental build when @@ -1083,9 +1083,10 @@ The command to execute changes. .It The current working directory changes. .It -The target's meta file is missing, if it had -.Sy .META -as a dependency. +The target's meta file is missing. +.It +The target's meta file is missing filemon data when filemon is loaded +and a previous run did not have it loaded. .It [requires .Xr filemon 4 ] @@ -1106,6 +1107,9 @@ This option originally invoked a different build system but that was renamed to .Va WITH_DIRDEPS_BUILD . .Pp +Currently this also enforces +.Va WITHOUT_SYSTEM_COMPILER . +.Pp This must be set in the environment, make command line, or .Pa /etc/src-env.conf , not diff --git a/share/man/man9/netisr.9 b/share/man/man9/netisr.9 index 63112be..ac648d1 100644 --- a/share/man/man9/netisr.9 +++ b/share/man/man9/netisr.9 @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 11, 2015 +.Dd June 3, 2016 .Dt NETISR 9 .Os .Sh NAME @@ -61,6 +61,16 @@ .Fn netisr_get_cpucount "void" .Ft u_int .Fn netisr_get_cpuid "u_int cpunumber" +.Pp +With optional virtual network stack support enabled via the following kernel +compile option: +.Bd -ragged -offset indent +.Cd "options VIMAGE" +.Ed +.Ft void +.Fn netisr_register_vnet "const struct netisr_handler *nhp" +.Ft void +.Fn netisr_unregister_vnet "const struct netisr_handler *nhp" .Sh DESCRIPTION The .Nm @@ -80,6 +90,16 @@ and may also manage queue limits and statistics using the and .Fn netisr_setqlimit . .Pp +In case of VIMAGE kernels each virtual network stack (vnet), that is not the +default base system network stack, calls +.Fn netisr_register_vnet +and +.Fn netisr_unregister_vnet +to enable or disable packet processing by the +.Nm +for each protocol. +Disabling will also purge any outstanding packet from the protocol queue. +.Pp .Nm supports multi-processor execution of handlers, and relies on a combination of source ordering and protocol-specific ordering and work-placement diff --git a/share/mk/bsd.compiler.mk b/share/mk/bsd.compiler.mk index d078dfe..38c4f5f 100644 --- a/share/mk/bsd.compiler.mk +++ b/share/mk/bsd.compiler.mk @@ -96,6 +96,9 @@ CCACHE_DIR:= ${CCACHE_DIR:tA} .MAKE.META.IGNORE_PATHS+= ${CCACHE_DIR} .export CCACHE_DIR .endif +# ccache doesn't affect build output so let it slide for meta mode +# comparisons. +.MAKE.META.IGNORE_PATHS+= ${CCACHE_BIN} ccache-print-options: .PHONY @${CCACHE_BIN} -p .endif # exists(${CCACHE_BIN}) diff --git a/share/mk/bsd.dep.mk b/share/mk/bsd.dep.mk index 24651cc..c371171 100644 --- a/share/mk/bsd.dep.mk +++ b/share/mk/bsd.dep.mk @@ -92,7 +92,7 @@ OBJS_DEPEND_GUESS.${_S:R}.o= ${_S} # Lexical analyzers .for _LSRC in ${SRCS:M*.l:N*/*} .for _LC in ${_LSRC:R}.c -${_LC}: ${_LSRC} ${OP_META} +${_LC}: ${_LSRC} ${LEX} ${LFLAGS} -o${.TARGET} ${.ALLSRC} OBJS_DEPEND_GUESS.${_LC:R}.o= ${_LC} SRCS:= ${SRCS:S/${_LSRC}/${_LC}/} @@ -107,7 +107,7 @@ SRCS:= ${SRCS:S/${_YSRC}/${_YC}/} CLEANFILES+= ${_YC} .if !empty(YFLAGS:M-d) && !empty(SRCS:My.tab.h) .ORDER: ${_YC} y.tab.h -${_YC}: ${OP_META} +y.tab.h: .NOMETA ${_YC} y.tab.h: ${_YSRC} ${YACC} ${YFLAGS} ${.ALLSRC} cp y.tab.c ${_YC} @@ -115,14 +115,14 @@ CLEANFILES+= y.tab.c y.tab.h .elif !empty(YFLAGS:M-d) .for _YH in ${_YC:R}.h .ORDER: ${_YC} ${_YH} -${_YC}: ${OP_META} +${_YH}: .NOMETA ${_YC} ${_YH}: ${_YSRC} ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} SRCS+= ${_YH} CLEANFILES+= ${_YH} .endfor .else -${_YC}: ${_YSRC} ${OP_META} +${_YC}: ${_YSRC} ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} .endif OBJS_DEPEND_GUESS.${_YC:R}.o= ${_YC} @@ -136,20 +136,20 @@ CFLAGS+= -I${.OBJDIR} .for _DSRC in ${SRCS:M*.d:N*/*} .for _D in ${_DSRC:R} SRCS+= ${_D}.h -${_D}.h: ${_DSRC} ${OP_META} +${_D}.h: ${_DSRC} ${DTRACE} ${DTRACEFLAGS} -h -s ${.ALLSRC} SRCS:= ${SRCS:S/^${_DSRC}$//} OBJS+= ${_D}.o CLEANFILES+= ${_D}.h ${_D}.o -${_D}.o: ${_DSRC} ${OBJS:S/^${_D}.o$//} ${OP_META} +${_D}.o: ${_DSRC} ${OBJS:S/^${_D}.o$//} @rm -f ${.TARGET} ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h} .if defined(LIB) CLEANFILES+= ${_D}.So ${_D}.po -${_D}.So: ${_DSRC} ${SOBJS:S/^${_D}.So$//} ${OP_META} +${_D}.So: ${_DSRC} ${SOBJS:S/^${_D}.So$//} @rm -f ${.TARGET} ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h} -${_D}.po: ${_DSRC} ${POBJS:S/^${_D}.po$//} ${OP_META} +${_D}.po: ${_DSRC} ${POBJS:S/^${_D}.po$//} @rm -f ${.TARGET} ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h} .endif @@ -245,8 +245,10 @@ DPSRCS+= ${SRCS} # A .depend file will only be generated if there are commands in # beforedepend/_EXTRADEPEND/afterdepend. The target is kept # to allow 'make depend' to generate files. -${DEPENDFILE}: ${DPSRCS} ${OP_META} -.if !empty(.MAKE.MODE:Mmeta) || exists(${.OBJDIR}/${DEPENDFILE}) +${DEPENDFILE}: ${DPSRCS} +.if exists(${.OBJDIR}/${DEPENDFILE}) || \ + ((commands(beforedepend) || commands(_EXTRADEPEND) || \ + commands(afterdepend)) && !empty(.MAKE.MODE:Mmeta)) rm -f ${DEPENDFILE} .endif .if target(_EXTRADEPEND) diff --git a/share/mk/bsd.info.mk b/share/mk/bsd.info.mk index 832f59f..eeb0da3 100644 --- a/share/mk/bsd.info.mk +++ b/share/mk/bsd.info.mk @@ -86,18 +86,18 @@ DVIPS2ASCII?= dvips2ascii .SUFFIXES: ${ICOMPRESS_EXT} .info .texi .texinfo .dvi .ps .latin1 .html -.texi.info .texinfo.info: ${OP_META} +.texi.info .texinfo.info: ${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} \ -o ${.TARGET} -.texi.dvi .texinfo.dvi: ${OP_META} +.texi.dvi .texinfo.dvi: TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \ ${TEX} ${.IMPSRC} </dev/null # Run again to resolve cross references. TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \ ${TEX} ${.IMPSRC} </dev/null -.texinfo.latin1 .texi.latin1: ${OP_META} +.texinfo.latin1 .texi.latin1: perl -npe 's/(^\s*\\input\s+texinfo\s+)/$$1\n@tex\n\\global\\hsize=120mm\n@end tex\n\n/' ${.IMPSRC} >> ${.IMPSRC:T:R}-la.texi TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \ ${TEX} ${.IMPSRC:T:R}-la.texi </dev/null @@ -108,10 +108,10 @@ DVIPS2ASCII?= dvips2ascii ${DVIPS2ASCII} > ${.TARGET}.new mv -f ${.TARGET}.new ${.TARGET} -.dvi.ps: ${OP_META} +.dvi.ps: ${DVIPS} -o ${.TARGET} ${.IMPSRC} -.info.html: ${OP_META} +.info.html: ${INFO2HTML} ${.IMPSRC} ${INSTALL_LINK} ${.TARGET:R}.info.Top.html ${.TARGET} @@ -133,7 +133,7 @@ all: ${IFILES} .endif .for x in ${IFILENS} -${x:S/$/${ICOMPRESS_EXT}/}: ${x} ${OP_META} +${x:S/$/${ICOMPRESS_EXT}/}: ${x} ${ICOMPRESS_CMD} ${.ALLSRC} > ${.TARGET} .endfor @@ -158,7 +158,7 @@ ${x:S/$/-install/}: .if defined(SRCS) CLEANFILES+= ${INFO}.texi -${INFO}.texi: ${SRCS} ${OP_META} +${INFO}.texi: ${SRCS} cat ${.ALLSRC} > ${.TARGET} .endif diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index 97d703c..971577c 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -91,55 +91,55 @@ PICFLAG=-fpic PO_FLAG=-pg -.c.o: ${OP_META} +.c.o: ${CC} ${STATIC_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.c.po: ${OP_META} +.c.po: ${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.c.So: ${OP_META} +.c.So: ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.cc.o .C.o .cpp.o .cxx.o: ${OP_META} +.cc.o .C.o .cpp.o .cxx.o: ${CXX} ${STATIC_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} -.cc.po .C.po .cpp.po .cxx.po: ${OP_META} +.cc.po .C.po .cpp.po .cxx.po: ${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} -.cc.So .C.So .cpp.So .cxx.So: ${OP_META} +.cc.So .C.So .cpp.So .cxx.So: ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} -.f.po: ${OP_META} +.f.po: ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} ${CTFCONVERT_CMD} -.f.So: ${OP_META} +.f.So: ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} ${CTFCONVERT_CMD} -.s.po .s.So: ${OP_META} +.s.po .s.So: ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} ${CTFCONVERT_CMD} -.asm.po: ${OP_META} +.asm.po: ${CC:N${CCACHE_BIN}} -x assembler-with-cpp -DPROF ${PO_CFLAGS} \ ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.asm.So: ${OP_META} +.asm.So: ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.S.po: ${OP_META} +.S.po: ${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \ -o ${.TARGET} ${CTFCONVERT_CMD} -.S.So: ${OP_META} +.S.So: ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \ -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} @@ -183,7 +183,7 @@ CLEANFILES+= ${OBJS} ${STATICOBJS} .if defined(LIB) && !empty(LIB) _LIBS= lib${LIB_PRIVATE}${LIB}.a -lib${LIB_PRIVATE}${LIB}.a: ${OBJS} ${STATICOBJS} ${OP_META} +lib${LIB_PRIVATE}${LIB}.a: ${OBJS} ${STATICOBJS} @${ECHO} building static ${LIB} library @rm -f ${.TARGET} ${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' NMFLAGS='${NMFLAGS}' lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} @@ -198,7 +198,7 @@ POBJS+= ${OBJS:.o=.po} ${STATICOBJS:.o=.po} DEPENDOBJS+= ${POBJS} CLEANFILES+= ${POBJS} -lib${LIB_PRIVATE}${LIB}_p.a: ${POBJS} ${OP_META} +lib${LIB_PRIVATE}${LIB}_p.a: ${POBJS} @${ECHO} building profiled ${LIB} library @rm -f ${.TARGET} ${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' NMFLAGS='${NMFLAGS}' lorder ${POBJS} | tsort -q` ${ARADD} @@ -230,7 +230,7 @@ ${SHLIB_NAME_FULL}: beforelinking .if defined(SHLIB_LINK) .if defined(SHLIB_LDSCRIPT) && !empty(SHLIB_LDSCRIPT) && exists(${.CURDIR}/${SHLIB_LDSCRIPT}) -${SHLIB_LINK:R}.ld: ${.CURDIR}/${SHLIB_LDSCRIPT} ${OP_META} +${SHLIB_LINK:R}.ld: ${.CURDIR}/${SHLIB_LDSCRIPT} sed -e 's,@@SHLIB@@,${_SHLIBDIR}/${SHLIB_NAME},g' \ -e 's,@@LIBDIR@@,${_LIBDIR},g' \ ${.ALLSRC} > ${.TARGET} @@ -241,7 +241,7 @@ CLEANFILES+= ${SHLIB_LINK:R}.ld CLEANFILES+= ${SHLIB_LINK} .endif -${SHLIB_NAME_FULL}: ${SOBJS} ${OP_META} +${SHLIB_NAME_FULL}: ${SOBJS} @${ECHO} building shared library ${SHLIB_NAME} @rm -f ${SHLIB_NAME} ${SHLIB_LINK} .if defined(SHLIB_LINK) && !commands(${SHLIB_LINK:R}.ld) @@ -256,11 +256,11 @@ ${SHLIB_NAME_FULL}: ${SOBJS} ${OP_META} .if ${MK_DEBUG_FILES} != "no" CLEANFILES+= ${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug -${SHLIB_NAME}: ${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug ${OP_META} +${SHLIB_NAME}: ${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug ${OBJCOPY} --strip-debug --add-gnu-debuglink=${SHLIB_NAME}.debug \ ${SHLIB_NAME_FULL} ${.TARGET} -${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL} ${OP_META} +${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL} ${OBJCOPY} --only-keep-debug ${SHLIB_NAME_FULL} ${.TARGET} .endif .endif #defined(SHLIB_NAME) @@ -268,7 +268,7 @@ ${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL} ${OP_META} .if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no" _LIBS+= lib${LIB_PRIVATE}${LIB}_pic.a -lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS} ${OP_META} +lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS} @${ECHO} building special pic ${LIB} library @rm -f ${.TARGET} ${AR} ${ARFLAGS} ${.TARGET} ${SOBJS} ${ARADD} @@ -281,7 +281,7 @@ _LIBS+= ${LINTLIB} LINTOBJS+= ${SRCS:M*.c:.c=.ln} CLEANFILES+= ${LINTOBJS} -${LINTLIB}: ${LINTOBJS} ${OP_META} +${LINTLIB}: ${LINTOBJS} @${ECHO} building lint library ${.TARGET} @rm -f ${.TARGET} ${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} diff --git a/share/mk/bsd.man.mk b/share/mk/bsd.man.mk index d96269c..eca0139 100644 --- a/share/mk/bsd.man.mk +++ b/share/mk/bsd.man.mk @@ -99,7 +99,7 @@ ${__target}: ${__page} .if defined(MANBUILDCAT) && !empty(MANBUILDCAT) .for __target in ${__page:T:S/$/${CATEXT}${FILTEXTENSION}/g} all-man: ${__target} -${__target}: ${__page} ${OP_META} +${__target}: ${__page} ${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} > ${.TARGET} .endfor .endif @@ -112,7 +112,7 @@ CLEANFILES+= ${MAN:T:S/$/${CATEXT}/g} .for __page in ${MAN} .for __target in ${__page:T:S/$/${CATEXT}/g} all-man: ${__target} -${__target}: ${__page} ${OP_META} +${__target}: ${__page} ${MANDOC_CMD} ${.ALLSRC} > ${.TARGET} .endfor .endfor @@ -148,7 +148,7 @@ CLEANFILES+= ${MAN:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g} .for __page in ${MAN} .for __target in ${__page:T:S/$/${MCOMPRESS_EXT}/} all-man: ${__target} -${__target}: ${__page} ${OP_META} +${__target}: ${__page} .if defined(MANFILTER) ${MANFILTER} < ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET} .else @@ -158,7 +158,7 @@ ${__target}: ${__page} ${OP_META} .if defined(MANBUILDCAT) && !empty(MANBUILDCAT) .for __target in ${__page:T:S/$/${CATEXT}${MCOMPRESS_EXT}/} all-man: ${__target} -${__target}: ${__page} ${OP_META} +${__target}: ${__page} .if defined(MANFILTER) ${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} | ${MCOMPRESS_CMD} > ${.TARGET} .else diff --git a/share/mk/bsd.nls.mk b/share/mk/bsd.nls.mk index 980ba95..d160a2b 100644 --- a/share/mk/bsd.nls.mk +++ b/share/mk/bsd.nls.mk @@ -42,7 +42,7 @@ NLSSRCFILES_${file}?= ${NLSSRCFILES} .endif .if defined(NLSSRCFILES_${file}) NLSSRCDIR_${file}?= ${NLSSRCDIR} -${file}.msg: ${NLSSRCFILES_${file}:S/^/${NLSSRCDIR_${file}}\//} ${OP_META} +${file}.msg: ${NLSSRCFILES_${file}:S/^/${NLSSRCDIR_${file}}\//} @rm -f ${.TARGET} cat ${.ALLSRC} > ${.TARGET} CLEANFILES+= ${file}.msg diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk index 3307dba..742eba9 100644 --- a/share/mk/bsd.prog.mk +++ b/share/mk/bsd.prog.mk @@ -90,7 +90,7 @@ OBJS+= ${SRCS:N*.h:R:S/$/.o/g} beforelinking: ${OBJS} ${PROG_FULL}: beforelinking .endif -${PROG_FULL}: ${OBJS} ${OP_META} +${PROG_FULL}: ${OBJS} .if defined(PROG_CXX) ${CXX:N${CCACHE_BIN}} ${CXXFLAGS:N-M*} ${LDFLAGS} -o ${.TARGET} \ ${OBJS} ${LDADD} @@ -122,7 +122,7 @@ OBJS+= ${PROG}.o beforelinking: ${OBJS} ${PROG_FULL}: beforelinking .endif -${PROG_FULL}: ${OBJS} ${OP_META} +${PROG_FULL}: ${OBJS} .if defined(PROG_CXX) ${CXX:N${CCACHE_BIN}} ${CXXFLAGS:N-M*} ${LDFLAGS} -o ${.TARGET} \ ${OBJS} ${LDADD} @@ -138,11 +138,11 @@ ${PROG_FULL}: ${OBJS} ${OP_META} .endif # !defined(SRCS) .if ${MK_DEBUG_FILES} != "no" -${PROG}: ${PROG_FULL} ${PROGNAME}.debug ${OP_META} +${PROG}: ${PROG_FULL} ${PROGNAME}.debug ${OBJCOPY} --strip-debug --add-gnu-debuglink=${PROGNAME}.debug \ ${PROG_FULL} ${.TARGET} -${PROGNAME}.debug: ${PROG_FULL} ${OP_META} +${PROGNAME}.debug: ${PROG_FULL} ${OBJCOPY} --only-keep-debug ${PROG_FULL} ${.TARGET} .endif diff --git a/share/mk/bsd.snmpmod.mk b/share/mk/bsd.snmpmod.mk index ccd57b7..b3aab06 100644 --- a/share/mk/bsd.snmpmod.mk +++ b/share/mk/bsd.snmpmod.mk @@ -11,6 +11,7 @@ ${MOD}_oid.h: ${MOD}_tree.def ${EXTRAMIBDEFS} ${EXTRAMIBSYMS} cat ${.ALLSRC} | gensnmptree -e ${XSYM} > ${.TARGET} .ORDER: ${MOD}_tree.c ${MOD}_tree.h +${MOD}_tree.h: .NOMETA ${MOD}_tree.c ${MOD}_tree.h: ${MOD}_tree.def ${EXTRAMIBDEFS} cat ${.ALLSRC} | gensnmptree -p ${MOD}_ diff --git a/share/mk/local.meta.sys.mk b/share/mk/local.meta.sys.mk index b457f0b..b3b2152 100644 --- a/share/mk/local.meta.sys.mk +++ b/share/mk/local.meta.sys.mk @@ -278,3 +278,8 @@ CFLAGS+= ${CROSS_TARGET_FLAGS} ACFLAGS+= ${CROSS_TARGET_FLAGS} LDFLAGS+= -Wl,-m -Wl,elf_${MACHINE_ARCH}_fbsd .endif + +META_MODE+= missing-meta=yes +.if empty(META_MODE:Mnofilemon) +META_MODE+= missing-filemon=yes +.endif diff --git a/share/mk/meta.stage.mk b/share/mk/meta.stage.mk index 0baddba..2807774 100644 --- a/share/mk/meta.stage.mk +++ b/share/mk/meta.stage.mk @@ -1,5 +1,5 @@ # $FreeBSD$ -# $Id: meta.stage.mk,v 1.44 2016/03/16 18:21:23 sjg Exp $ +# $Id: meta.stage.mk,v 1.45 2016/05/26 03:59:09 sjg Exp $ # # @(#) Copyright (c) 2011, Simon J. Gerraty # @@ -271,6 +271,8 @@ beforeinstall: .dirdep .NOPATH: ${STAGE_FILES} .if !empty(STAGE_TARGETS) +.NOPATH: ${CLEANFILES} + MK_STALE_STAGED?= no .if ${MK_STALE_STAGED} == "yes" all: stale_staged diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 30fe118..e3ef419 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -352,6 +352,10 @@ MK_ELFTOOLCHAIN_BOOTSTRAP:= no MK_GCC_BOOTSTRAP:= no .endif +.if ${MK_META_MODE} == "yes" +MK_SYSTEM_COMPILER:= no +.endif + .if ${MK_TOOLCHAIN} == "no" MK_BINUTILS:= no MK_CLANG:= no diff --git a/share/mk/sys.mk b/share/mk/sys.mk index bea1c71..4a174f8 100644 --- a/share/mk/sys.mk +++ b/share/mk/sys.mk @@ -47,6 +47,9 @@ __ENV_ONLY_OPTIONS:= \ .elif ${MK_META_MODE} == "yes" && defined(.MAKEFLAGS) && ${.MAKEFLAGS:M-B} == "" # verbose will show .MAKE.META.PREFIX for each target. META_MODE+= meta verbose +.if !defined(NO_META_MISSING) +META_MODE+= missing-meta=yes +.endif # silent will hide command output if a .meta file is created. .if !defined(NO_SILENT) META_MODE+= silent=yes @@ -57,14 +60,35 @@ META_MODE+= silent=yes .endif META_MODE+= nofilemon .endif +# Require filemon data with bmake +.if empty(META_MODE:Mnofilemon) +META_MODE+= missing-filemon=yes +.endif .endif META_MODE?= normal .export META_MODE .MAKE.MODE?= ${META_MODE} -.if ${.MAKE.MODE:Mmeta*} != "" -OP_META= .META +.if !empty(.MAKE.MODE:Mmeta) && !defined(NO_META_IGNORE_HOST) +# Ignore host file changes that will otherwise cause +# buildworld -> installworld -> buildworld to rebuild everything. +# Since the build is self-reliant and bootstraps everything it needs, +# this should not be a real problem for incremental builds. +# Note that these are prefix matching, so /lib matches /libexec. +.MAKE.META.IGNORE_PATHS+= \ + ${__MAKE_SHELL} \ + /bin \ + /lib \ + /rescue \ + /sbin \ + /usr/bin \ + /usr/include \ + /usr/lib \ + /usr/sbin \ + /usr/share \ + .endif + .if ${MK_AUTO_OBJ} == "yes" # This needs to be done early - before .PATH is computed # Don't do this for 'make showconfig' as it enables all options where meta mode @@ -292,99 +316,99 @@ YFLAGS ?= -d # non-Posix rule set -.sh: ${OP_META} +.sh: cp -f ${.IMPSRC} ${.TARGET} chmod a+x ${.TARGET} -.c.ln: ${OP_META} +.c.ln: ${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \ touch ${.TARGET} -.cc.ln .C.ln .cpp.ln .cxx.ln: ${OP_META} +.cc.ln .C.ln .cpp.ln .cxx.ln: ${LINT} ${LINTOBJFLAGS} ${CXXFLAGS:M-[DIU]*} ${.IMPSRC} || \ touch ${.TARGET} -.c: ${OP_META} +.c: ${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET} ${CTFCONVERT_CMD} -.c.o: ${OP_META} +.c.o: ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.cc .cpp .cxx .C: ${OP_META} +.cc .cpp .cxx .C: ${CXX} ${CXXFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET} -.cc.o .cpp.o .cxx.o .C.o: ${OP_META} +.cc.o .cpp.o .cxx.o .C.o: ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} -.m.o: ${OP_META} +.m.o: ${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.p.o: ${OP_META} +.p.o: ${PC} ${PFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.e .r .F .f: ${OP_META} +.e .r .F .f: ${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} \ -o ${.TARGET} -.e.o .r.o .F.o .f.o: ${OP_META} +.e.o .r.o .F.o .f.o: ${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} -c ${.IMPSRC} -o ${.TARGET} -.S.o: ${OP_META} +.S.o: ${CC:N${CCACHE_BIN}} ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.asm.o: ${OP_META} +.asm.o: ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \ -o ${.TARGET} ${CTFCONVERT_CMD} -.s.o: ${OP_META} +.s.o: ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} ${CTFCONVERT_CMD} # XXX not -j safe -.y.o: ${OP_META} +.y.o: ${YACC} ${YFLAGS} ${.IMPSRC} ${CC} ${CFLAGS} -c y.tab.c -o ${.TARGET} rm -f y.tab.c ${CTFCONVERT_CMD} -.l.o: ${OP_META} +.l.o: ${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c ${CC} ${CFLAGS} -c ${.PREFIX}.tmp.c -o ${.TARGET} rm -f ${.PREFIX}.tmp.c ${CTFCONVERT_CMD} # XXX not -j safe -.y.c: ${OP_META} +.y.c: ${YACC} ${YFLAGS} ${.IMPSRC} mv y.tab.c ${.TARGET} -.l.c: ${OP_META} +.l.c: ${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.TARGET} -.s.out .c.out .o.out: ${OP_META} +.s.out .c.out .o.out: ${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET} ${CTFCONVERT_CMD} -.f.out .F.out .r.out .e.out: ${OP_META} +.f.out .F.out .r.out .e.out: ${FC} ${EFLAGS} ${RFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} \ ${LDLIBS} -o ${.TARGET} rm -f ${.PREFIX}.o ${CTFCONVERT_CMD} # XXX not -j safe -.y.out: ${OP_META} +.y.out: ${YACC} ${YFLAGS} ${.IMPSRC} ${CC} ${CFLAGS} ${LDFLAGS} y.tab.c ${LDLIBS} -ly -o ${.TARGET} rm -f y.tab.c ${CTFCONVERT_CMD} -.l.out: ${OP_META} +.l.out: ${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c ${CC} ${CFLAGS} ${LDFLAGS} ${.PREFIX}.tmp.c ${LDLIBS} -ll -o ${.TARGET} rm -f ${.PREFIX}.tmp.c |