summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/examples/Makefile6
-rw-r--r--share/man/man3/pthread_attr_affinity_np.36
-rw-r--r--share/man/man3/pthread_create.335
-rw-r--r--share/man/man4/bcma.44
-rw-r--r--share/man/man4/bhnd.44
-rw-r--r--share/man/man4/bhndb.44
-rw-r--r--share/man/man4/siba.46
-rw-r--r--share/man/man4/vlan.42
-rw-r--r--share/man/man5/src.conf.514
-rw-r--r--share/man/man9/netisr.922
-rw-r--r--share/mk/bsd.compiler.mk3
-rw-r--r--share/mk/bsd.dep.mk22
-rw-r--r--share/mk/bsd.info.mk14
-rw-r--r--share/mk/bsd.lib.mk42
-rw-r--r--share/mk/bsd.man.mk8
-rw-r--r--share/mk/bsd.nls.mk2
-rw-r--r--share/mk/bsd.prog.mk8
-rw-r--r--share/mk/bsd.snmpmod.mk1
-rw-r--r--share/mk/local.meta.sys.mk5
-rw-r--r--share/mk/meta.stage.mk4
-rw-r--r--share/mk/src.opts.mk4
-rw-r--r--share/mk/sys.mk72
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
OpenPOWER on IntegriCloud