Merge from head

This commit is contained in:
Simon J. Gerraty 2014-05-08 23:54:15 +00:00
commit cc3f4b9965
696 changed files with 44610 additions and 5401 deletions

View File

@ -139,11 +139,7 @@ _MAKEOBJDIRPREFIX!= /usr/bin/env -i PATH=${PATH} ${MAKE} \
# Choices add to complexity though.
# We cannot blindly use a make which may not be the one we want
# so be exlicit - until all choice is removed.
.if !defined(WITHOUT_BMAKE)
WANT_MAKE= bmake
.else
WANT_MAKE= fmake
.endif
MYMAKE= ${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}/${WANT_MAKE}
.if defined(.PARSEDIR)
HAVE_MAKE= bmake
@ -152,7 +148,7 @@ HAVE_MAKE= fmake
.endif
.if exists(${MYMAKE})
SUB_MAKE:= ${MYMAKE} -m ${.CURDIR}/share/mk
.elif ${WANT_MAKE} != ${HAVE_MAKE} || ${WANT_MAKE} != "bmake"
.elif ${WANT_MAKE} != ${HAVE_MAKE}
# It may not exist yet but we may cause it to.
# In the case of fmake, upgrade_checks may cause a newer version to be built.
SUB_MAKE= `test -x ${MYMAKE} && echo ${MYMAKE} || echo ${MAKE}` \
@ -238,8 +234,17 @@ tinderbox toolchains kernel-toolchains: .MAKE
${TGTS}:
${_+_}@cd ${.CURDIR}; ${_MAKE} ${.TARGET}
# Set a reasonable default
.MAIN: all
# The historic default "all" target creates files which may cause stale
# or (in the cross build case) unlinkable results. Fail with an error
# when no target is given. The users can explicitly specify "all"
# if they want the historic behavior.
.MAIN: _guard
_guard:
@echo
@echo "Explicit target required (use \"all\" for historic behavior)"
@echo
@false
STARTTIME!= LC_ALL=C date
CHECK_TIME!= find ${.CURDIR}/sys/sys/param.h -mtime -0s ; echo
@ -342,7 +347,7 @@ make bmake: .PHONY
${MMAKE} obj && \
${MMAKE} depend && \
${MMAKE} all && \
${MMAKE} install DESTDIR=${MYMAKE:H} BINDIR=
${MMAKE} install DESTDIR=${MYMAKE:H} BINDIR= NO_MAN=t
tinderbox toolchains kernel-toolchains: upgrade_checks
@ -449,9 +454,15 @@ universe_kernels: universe_kernconfs
.if !defined(TARGET)
TARGET!= uname -m
.endif
.if defined(MAKE_ALL_KERNELS)
_THINNER=cat
.else
_THINNER=xargs grep -L "^.NO_UNIVERSE"
.endif
KERNCONFS!= cd ${KERNSRCDIR}/${TARGET}/conf && \
find [A-Z0-9]*[A-Z0-9] -type f -maxdepth 0 \
! -name DEFAULTS ! -name NOTES
! -name DEFAULTS ! -name NOTES | \
${_THINNER}
universe_kernconfs:
.for kernel in ${KERNCONFS}
TARGET_ARCH_${kernel}!= cd ${KERNSRCDIR}/${TARGET}/conf && \

View File

@ -45,7 +45,7 @@
.error "Both TARGET and TARGET_ARCH must be defined."
.endif
.include <bsd.own.mk>
.include "share/mk/src.opts.mk"
.include <bsd.arch.inc.mk>
.include <bsd.compiler.mk>
@ -1001,7 +1001,7 @@ buildkernel:
cd ${KRNLCONFDIR}; \
PATH=${TMPPATH} \
config ${CONFIGARGS} -d ${KRNLOBJDIR}/${_kernel} \
-I ${KERNCONFDIR} ${KERNCONFDIR}/${_kernel}
-I '${KERNCONFDIR}' '${KERNCONFDIR}/${_kernel}'
.endif
.if !defined(NO_CLEAN) && !defined(NO_KERNELCLEAN)
@echo
@ -1480,6 +1480,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} \
${_secure_lib_libssh} ${_secure_lib_libssl}
.if ${MK_GNUCXX} != "no" && ${MK_CXX} != "no"
_prebuild_libs+= gnu/lib/libstdc++ gnu/lib/libsupc++
gnu/lib/libstdc++__L: lib/msun__L
.endif
.if defined(WITH_ATF) || ${MK_TESTS} != "no"
@ -1807,7 +1808,7 @@ check-old: check-old-files check-old-libs check-old-dirs
# showconfig - show build configuration.
#
showconfig:
@${MAKE} -n -f bsd.own.mk -V dummy -dg1 2>&1 | grep ^MK_ | sort
@${MAKE} -n -f src.opts.mk -V dummy -dg1 2>&1 | grep ^MK_ | sort
.if !empty(KRNLOBJDIR) && !empty(KERNCONF)
DTBOUTPUTPATH= ${KRNLOBJDIR}/${KERNCONF}/
@ -1815,7 +1816,7 @@ DTBOUTPUTPATH= ${KRNLOBJDIR}/${KERNCONF}/
.if !defined(FDT_DTS_FILE) || empty(FDT_DTS_FILE)
.if exists(${KERNCONFDIR}/${KERNCONF})
FDT_DTS_FILE!= awk 'BEGIN {FS="="} /^makeoptions[[:space:]]+FDT_DTS_FILE/ {print $$2}' \
${KERNCONFDIR}/${KERNCONF} ; echo
'${KERNCONFDIR}/${KERNCONF}' ; echo
.endif
.endif
@ -1829,24 +1830,9 @@ DTBOUTPUTPATH= ${.CURDIR}
# Build 'standalone' Device Tree Blob
#
builddtb:
@if [ "${FDT_DTS_FILE}" = "" ]; then \
echo "ERROR: FDT_DTS_FILE must be specified!"; \
exit 1; \
fi; \
if [ ! -f ${.CURDIR}/sys/boot/fdt/dts/${TARGET}/${FDT_DTS_FILE} ]; then \
echo "ERROR: Specified DTS file (${FDT_DTS_FILE}) does not \
exist!"; \
exit 1; \
fi; \
if [ "${DTBOUTPUTPATH}" = "${.CURDIR}" ]; then \
echo "WARNING: DTB will be placed in the current working \
directory"; \
fi
@PATH=${TMPPATH} \
MACHINE=${TARGET} \
@PATH=${TMPPATH} MACHINE=${TARGET} \
${.CURDIR}/sys/tools/fdt/make_dtb.sh ${.CURDIR}/sys \
${FDT_DTS_FILE} \
${DTBOUTPUTPATH}/`basename ${FDT_DTS_FILE} .dts`
"${FDT_DTS_FILE}" ${DTBOUTPUTPATH}
###############

View File

@ -38,6 +38,14 @@
# xargs -n1 | sort | uniq -d;
# done
# 20140505: Bogusly installing src.opts.mk
OLD_FILES+=usr/share/mk/src.opts.mk
# 20140505: Reject PR kern/187551
OLD_DIRS+=usr/tests/sbin/ifconfig
OLD_FILES+=usr/tests/sbin/ifconfig/Kyuafile
OLD_FILES+=usr/tests/sbin/ifconfig/fibs_test
# 20140502: Removal of lindev(4)
OLD_FILES+=usr/share/man/man4/lindev.4.gz
# 20140314: AppleTalk
OLD_DIRS+=usr/include/netatalk
OLD_FILES+=usr/include/netatalk/aarp.h
@ -49,7 +57,6 @@ OLD_FILES+=usr/include/netatalk/ddp_pcb.h
OLD_FILES+=usr/include/netatalk/ddp_var.h
OLD_FILES+=usr/include/netatalk/endian.h
OLD_FILES+=usr/include/netatalk/phase2.h
# 20140314: Remove IPX/SPX
OLD_LIBS+=lib/libipx.so.5
OLD_FILES+=usr/include/netipx/ipx.h

1291
UPDATING

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
# From: @(#)Makefile 8.1 (Berkeley) 5/31/93
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= cat \
chflags \

View File

@ -1,7 +1,7 @@
# @(#)Makefile.inc 8.1 (Berkeley) 5/31/93
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
BINDIR?= /bin
WARNS?= 6

View File

@ -6,7 +6,7 @@
#
# To profile, put -DPROF in DEFS and -pg in CFLAGS, and recompile.
.include <bsd.own.mk>
.include <src.opts.mk>
TCSHDIR= ${.CURDIR}/../../contrib/tcsh
.PATH: ${TCSHDIR}

View File

@ -1,7 +1,7 @@
# @(#)Makefile 8.1 (Berkeley) 5/31/93
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
PROG= date
SRCS= date.c netdate.c vary.c

View File

@ -74,7 +74,7 @@ def(void)
dd_out(0);
/*
* Ddout copies the leftover output to the beginning of
* dd_out copies the leftover output to the beginning of
* the buffer and resets the output buffer. Reset the
* input buffer to match it.
*/

View File

@ -50,8 +50,8 @@ __FBSDID("$FreeBSD$");
#include <sys/conf.h>
#include <sys/disklabel.h>
#include <sys/filio.h>
#include <sys/time.h>
#include <assert.h>
#include <ctype.h>
#include <err.h>
#include <errno.h>
@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$");
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include "dd.h"
@ -76,6 +77,7 @@ STAT st; /* statistics */
void (*cfunc)(void); /* conversion function */
uintmax_t cpy_cnt; /* # of blocks to copy */
static off_t pending = 0; /* pending seek if sparse */
static off_t last_sp = 0; /* size of last added sparse block */
u_int ddflags = 0; /* conversion options */
size_t cbsz; /* conversion block size */
uintmax_t files_cnt = 1; /* # of files to copy */
@ -123,7 +125,6 @@ static void
setup(void)
{
u_int cnt;
struct timeval tv;
if (in.name == NULL) {
in.name = "stdin";
@ -173,6 +174,8 @@ setup(void)
} else if ((in.db = malloc(MAX(in.dbsz, cbsz) + cbsz)) == NULL ||
(out.db = malloc(out.dbsz + cbsz)) == NULL)
err(1, "output buffer");
/* dbp is the first free position in each buffer. */
in.dbp = in.db;
out.dbp = out.db;
@ -240,8 +243,8 @@ setup(void)
ctab = casetab;
}
(void)gettimeofday(&tv, NULL);
st.start = tv.tv_sec + tv.tv_usec * 1e-6;
if (clock_gettime(CLOCK_MONOTONIC, &st.start))
err(1, "clock_gettime");
}
static void
@ -434,8 +437,15 @@ dd_out(int force)
* we play games with the buffer size, and it's usually a partial write.
*/
outp = out.db;
/*
* If force, first try to write all pending data, else try to write
* just one block. Subsequently always write data one full block at
* a time at most.
*/
for (n = force ? out.dbcnt : out.dbsz;; n = out.dbsz) {
for (cnt = n;; cnt -= nw) {
cnt = n;
do {
sparse = 0;
if (ddflags & C_SPARSE) {
sparse = 1; /* Is buffer sparse? */
@ -447,18 +457,24 @@ dd_out(int force)
}
if (sparse && !force) {
pending += cnt;
last_sp = cnt;
nw = cnt;
} else {
if (pending != 0) {
if (force)
pending--;
/* If forced to write, and we have no
* data left, we need to write the last
* sparse block explicitly.
*/
if (force && cnt == 0) {
pending -= last_sp;
assert(outp == out.db);
memset(outp, 0, cnt);
}
if (lseek(out.fd, pending, SEEK_CUR) ==
-1)
err(2, "%s: seek error creating sparse file",
out.name);
if (force)
write(out.fd, outp, 1);
pending = 0;
pending = last_sp = 0;
}
if (cnt)
nw = write(out.fd, outp, cnt);
@ -473,27 +489,29 @@ dd_out(int force)
err(1, "%s", out.name);
nw = 0;
}
outp += nw;
st.bytes += nw;
if ((size_t)nw == n) {
if (n != out.dbsz)
++st.out_part;
else
++st.out_full;
break;
if ((size_t)nw == n && n == out.dbsz)
++st.out_full;
else
++st.out_part;
if ((size_t) nw != cnt) {
if (out.flags & ISTAPE)
errx(1, "%s: short write on tape device",
out.name);
if (out.flags & ISCHR && !warned) {
warned = 1;
warnx("%s: short write on character device",
out.name);
}
}
++st.out_part;
if ((size_t)nw == cnt)
break;
if (out.flags & ISTAPE)
errx(1, "%s: short write on tape device",
out.name);
if (out.flags & ISCHR && !warned) {
warned = 1;
warnx("%s: short write on character device",
out.name);
}
}
cnt -= nw;
} while (cnt != 0);
if ((out.dbcnt -= n) < out.dbsz)
break;
}

View File

@ -41,7 +41,7 @@ typedef struct {
/* XXX ssize_t? */
size_t dbcnt; /* current buffer byte count */
size_t dbrcnt; /* last read byte count */
size_t dbsz; /* buffer size */
size_t dbsz; /* block size */
#define ISCHR 0x01 /* character device (warn on short) */
#define ISPIPE 0x02 /* pipe-like (see position.c) */
@ -64,7 +64,7 @@ typedef struct {
uintmax_t trunc; /* # of truncated records */
uintmax_t swab; /* # of odd-length swab blocks */
uintmax_t bytes; /* # of bytes written */
double start; /* start time of dd */
struct timespec start; /* start time of dd */
} STAT;
/* Flags (in ddflags). */

View File

@ -40,14 +40,15 @@ static char sccsid[] = "@(#)misc.c 8.3 (Berkeley) 4/2/94";
__FBSDID("$FreeBSD$");
#include <sys/types.h>
#include <sys/time.h>
#include <err.h>
#include <errno.h>
#include <inttypes.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include "dd.h"
@ -56,16 +57,21 @@ __FBSDID("$FreeBSD$");
void
summary(void)
{
struct timeval tv;
double secs;
struct timespec end, ts_res;
double secs, res;
if (ddflags & C_NOINFO)
return;
(void)gettimeofday(&tv, NULL);
secs = tv.tv_sec + tv.tv_usec * 1e-6 - st.start;
if (secs < 1e-6)
secs = 1e-6;
if (clock_gettime(CLOCK_MONOTONIC, &end))
err(1, "clock_gettime");
if (clock_getres(CLOCK_MONOTONIC, &ts_res))
err(1, "clock_getres");
secs = (end.tv_sec - st.start.tv_sec) + \
(end.tv_nsec - st.start.tv_nsec) * 1e-9;
res = ts_res.tv_sec + ts_res.tv_nsec * 1e-9;
if (secs < res)
secs = res;
(void)fprintf(stderr,
"%ju+%ju records in\n%ju+%ju records out\n",
st.in_full, st.in_part, st.out_full, st.out_part);

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
PROG= ed
SRCS= buf.c cbc.c glbl.c io.c main.c re.c sub.c undo.c

View File

@ -1,7 +1,7 @@
# @(#)Makefile 8.1 (Berkeley) 6/2/93
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
PROG= ls
SRCS= cmp.c ls.c print.c util.c

View File

@ -1,7 +1,7 @@
# @(#)Makefile 8.2 (Berkeley) 4/2/94
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
PROG= mv

View File

@ -1,7 +1,7 @@
# @(#)Makefile 8.1 (Berkeley) 5/31/93
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
# To install on versions prior to BSD 4.4 the following may have to be
# defined with CFLAGS +=

View File

@ -1,7 +1,7 @@
# $NetBSD: Makefile,v 1.1 2002/03/01 11:21:58 ad Exp $
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
PROG= pkill

View File

@ -11,7 +11,7 @@ SRCS= fmt.c keyword.c nlist.c print.c ps.c
# on large systems.
#
CFLAGS+=-DLAZY_PS
DPADD= ${LIBM} ${LIBKVM}
LDADD= -lm -lkvm
DPADD= ${LIBM} ${LIBKVM} ${LIBJAIL}
LDADD= -lm -lkvm -ljail
.include <bsd.prog.mk>

View File

@ -29,7 +29,7 @@
.\" @(#)ps.1 8.3 (Berkeley) 4/18/94
.\" $FreeBSD$
.\"
.Dd December 27, 2013
.Dd May 2, 2014
.Dt PS 1
.Os
.Sh NAME
@ -40,6 +40,7 @@
.Op Fl aCcdefHhjlmrSTuvwXxZ
.Op Fl O Ar fmt | Fl o Ar fmt
.Op Fl G Ar gid Ns Op , Ns Ar gid Ns Ar ...
.Op Fl J Ar jid Ns Op , Ns Ar jid Ns Ar ...
.Op Fl M Ar core
.Op Fl N Ar system
.Op Fl p Ar pid Ns Op , Ns Ar pid Ns Ar ...
@ -62,7 +63,7 @@ will also display processes that do not have controlling terminals.
.Pp
A different set of processes can be selected for display by using any
combination of the
.Fl a , G , p , T , t ,
.Fl a , G , J , p , T , t ,
and
.Fl U
options.
@ -152,6 +153,20 @@ Print information associated with the following keywords:
.Cm user , pid , ppid , pgid , sid , jobc , state , tt , time ,
and
.Cm command .
.It Fl J
Display information about processes which match the specified jail IDs.
This may be either the
.Cm jid
or
.Cm name
of the jail.
Use
.Fl J
.Sy 0
to display only host processes.
This flag implies
.Fl x
by default.
.It Fl L
List the set of keywords available for the
.Fl O

View File

@ -50,6 +50,7 @@ static char sccsid[] = "@(#)ps.c 8.4 (Berkeley) 4/2/94";
__FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/jail.h>
#include <sys/proc.h>
#include <sys/user.h>
#include <sys/stat.h>
@ -62,6 +63,7 @@ __FBSDID("$FreeBSD$");
#include <errno.h>
#include <fcntl.h>
#include <grp.h>
#include <jail.h>
#include <kvm.h>
#include <limits.h>
#include <locale.h>
@ -124,6 +126,7 @@ struct listinfo {
const char *lname;
union {
gid_t *gids;
int *jids;
pid_t *pids;
dev_t *ttys;
uid_t *uids;
@ -132,6 +135,7 @@ struct listinfo {
};
static int addelem_gid(struct listinfo *, const char *);
static int addelem_jid(struct listinfo *, const char *);
static int addelem_pid(struct listinfo *, const char *);
static int addelem_tty(struct listinfo *, const char *);
static int addelem_uid(struct listinfo *, const char *);
@ -163,12 +167,12 @@ static char vfmt[] = "pid,state,time,sl,re,pagein,vsz,rss,lim,tsiz,"
"%cpu,%mem,command";
static char Zfmt[] = "label";
#define PS_ARGS "AaCcde" OPT_LAZY_f "G:gHhjLlM:mN:O:o:p:rSTt:U:uvwXxZ"
#define PS_ARGS "AaCcde" OPT_LAZY_f "G:gHhjJ:LlM:mN:O:o:p:rSTt:U:uvwXxZ"
int
main(int argc, char *argv[])
{
struct listinfo gidlist, pgrplist, pidlist;
struct listinfo gidlist, jidlist, pgrplist, pidlist;
struct listinfo ruidlist, sesslist, ttylist, uidlist;
struct kinfo_proc *kp;
KINFO *kinfo = NULL, *next_KINFO;
@ -208,6 +212,7 @@ main(int argc, char *argv[])
prtheader = showthreads = wflag = xkeep_implied = 0;
xkeep = -1; /* Neither -x nor -X. */
init_list(&gidlist, addelem_gid, sizeof(gid_t), "group");
init_list(&jidlist, addelem_jid, sizeof(int), "jail id");
init_list(&pgrplist, addelem_pid, sizeof(pid_t), "process group");
init_list(&pidlist, addelem_pid, sizeof(pid_t), "process id");
init_list(&ruidlist, addelem_uid, sizeof(uid_t), "ruser");
@ -275,6 +280,11 @@ main(int argc, char *argv[])
case 'h':
prtheader = ws.ws_row > 5 ? ws.ws_row : 22;
break;
case 'J':
add_list(&jidlist, optarg);
xkeep_implied = 1;
nselectors++;
break;
case 'j':
parsefmt(jfmt, 0);
_fmt = 1;
@ -538,6 +548,11 @@ main(int argc, char *argv[])
if (kp->ki_rgid == gidlist.l.gids[elem])
goto keepit;
}
if (jidlist.count > 0) {
for (elem = 0; elem < jidlist.count; elem++)
if (kp->ki_jid == jidlist.l.jids[elem])
goto keepit;
}
if (pgrplist.count > 0) {
for (elem = 0; elem < pgrplist.count; elem++)
if (kp->ki_pgid ==
@ -666,6 +681,7 @@ main(int argc, char *argv[])
}
}
free_list(&gidlist);
free_list(&jidlist);
free_list(&pidlist);
free_list(&pgrplist);
free_list(&ruidlist);
@ -726,6 +742,30 @@ addelem_gid(struct listinfo *inf, const char *elem)
return (1);
}
static int
addelem_jid(struct listinfo *inf, const char *elem)
{
int tempid;
if (*elem == '\0') {
warnx("Invalid (zero-length) jail id");
optfatal = 1;
return (0); /* Do not add this value. */
}
tempid = jail_getid(elem);
if (tempid < 0) {
warnx("Invalid %s: %s", inf->lname, elem);
optfatal = 1;
return (0);
}
if (inf->count >= inf->maxcount)
expand_list(inf);
inf->l.jids[(inf->count)++] = tempid;
return (1);
}
static int
addelem_pid(struct listinfo *inf, const char *elem)
{
@ -1373,7 +1413,7 @@ usage(void)
(void)fprintf(stderr, "%s\n%s\n%s\n%s\n",
"usage: ps " SINGLE_OPTS " [-O fmt | -o fmt] [-G gid[,gid...]]",
" [-M core] [-N system]",
" [-J jid[,jid...]] [-M core] [-N system]",
" [-p pid[,pid...]] [-t tty[,tty...]] [-U user[,user...]]",
" ps [-L]");
exit(1);

View File

@ -1,7 +1,7 @@
# @(#)Makefile 8.4 (Berkeley) 5/5/95
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
PROG= sh
INSTALLFLAGS= -S

View File

@ -80,6 +80,9 @@ FILES+= for2.0
FILES+= for3.0
FILES+= getopts1.0 getopts1.0.stdout
FILES+= getopts2.0 getopts2.0.stdout
FILES+= getopts3.0
FILES+= getopts4.0
FILES+= getopts5.0
FILES+= hash1.0 hash1.0.stdout
FILES+= hash2.0 hash2.0.stdout
FILES+= hash3.0 hash3.0.stdout

View File

@ -0,0 +1,6 @@
# $FreeBSD$
shift $#
getopts x opt
r=$?
[ "$r" != 0 ] && [ "$OPTIND" = 1 ]

View File

@ -0,0 +1,10 @@
# $FreeBSD$
set -- -x
opt=not
getopts x opt
r1=$? OPTIND1=$OPTIND opt1=$opt
getopts x opt
r2=$? OPTIND2=$OPTIND
[ "$r1" = 0 ] && [ "$OPTIND1" = 2 ] && [ "$opt1" = x ] && [ "$r2" != 0 ] &&
[ "$OPTIND2" = 2 ]

View File

@ -0,0 +1,10 @@
# $FreeBSD$
set -- -x arg
opt=not
getopts x opt
r1=$? OPTIND1=$OPTIND opt1=$opt
getopts x opt
r2=$? OPTIND2=$OPTIND
[ "$r1" = 0 ] && [ "$OPTIND1" = 2 ] && [ "$opt1" = x ] && [ "$r2" != 0 ] &&
[ "$OPTIND2" = 2 ]

View File

@ -1,7 +1,7 @@
# @(#)Makefile 8.1 (Berkeley) 5/31/93
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
PROG= test
LINKS= ${BINDIR}/test ${BINDIR}/[

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= lib sbin usr.bin usr.sbin

View File

@ -1,39 +1,78 @@
/*-
* Copyright (c) 2010 Pawel Jakub Dawidek <pjd@FreeBSD.org>
* All rights reserved.
/*
* CDDL HEADER START
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* $FreeBSD$
*/
#ifndef _OPENSOLARIS_THREAD_POOL_H_
#define _OPENSOLARIS_THREAD_POOL_H_
#ifndef _THREAD_POOL_H_
#define _THREAD_POOL_H_
typedef int tpool_t;
#pragma ident "%Z%%M% %I% %E% SMI"
#define tpool_create(a, b, c, d) (0)
#define tpool_dispatch(pool, func, arg) func(arg)
#define tpool_wait(pool) do { } while (0)
#define tpool_destroy(pool) do { } while (0)
#include <sys/types.h>
#include <thread.h>
#include <pthread.h>
#endif /* !_OPENSOLARIS_THREAD_POOL_H_ */
#ifdef __cplusplus
extern "C" {
#endif
typedef struct tpool tpool_t; /* opaque thread pool descriptor */
#if defined(__STDC__)
extern tpool_t *tpool_create(uint_t min_threads, uint_t max_threads,
uint_t linger, pthread_attr_t *attr);
extern int tpool_dispatch(tpool_t *tpool,
void (*func)(void *), void *arg);
extern void tpool_destroy(tpool_t *tpool);
extern void tpool_abandon(tpool_t *tpool);
extern void tpool_wait(tpool_t *tpool);
extern void tpool_suspend(tpool_t *tpool);
extern int tpool_suspended(tpool_t *tpool);
extern void tpool_resume(tpool_t *tpool);
extern int tpool_member(tpool_t *tpool);
#else /* Non ANSI */
extern tpool_t *tpool_create();
extern int tpool_dispatch();
extern void tpool_destroy();
extern void tpool_abandon();
extern void tpool_wait();
extern void tpool_suspend();
extern int tpool_suspended();
extern void tpool_resume();
extern int tpool_member();
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
#endif /* _THREAD_POOL_H_ */

View File

@ -0,0 +1,430 @@
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#pragma ident "%Z%%M% %I% %E% SMI"
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include "thread_pool_impl.h"
typedef void (*_Voidfp)(void*); /* pointer to extern "C" function */
static void
delete_pool(tpool_t *tpool)
{
tpool_job_t *job;
/*
* There should be no pending jobs, but just in case...
*/
for (job = tpool->tp_head; job != NULL; job = tpool->tp_head) {
tpool->tp_head = job->tpj_next;
free(job);
}
(void) pthread_attr_destroy(&tpool->tp_attr);
free(tpool);
}
/*
* Worker thread is terminating.
*/
static void
worker_cleanup(void *arg)
{
tpool_t *tpool = arg;
if (--tpool->tp_current == 0 &&
(tpool->tp_flags & (TP_DESTROY | TP_ABANDON))) {
if (tpool->tp_flags & TP_ABANDON) {
pthread_mutex_unlock(&tpool->tp_mutex);
delete_pool(tpool);
return;
}
if (tpool->tp_flags & TP_DESTROY)
(void) pthread_cond_broadcast(&tpool->tp_busycv);
}
pthread_mutex_unlock(&tpool->tp_mutex);
}
static void
notify_waiters(tpool_t *tpool)
{
if (tpool->tp_head == NULL && tpool->tp_active == NULL) {
tpool->tp_flags &= ~TP_WAIT;
(void) pthread_cond_broadcast(&tpool->tp_waitcv);
}
}
/*
* Called by a worker thread on return from a tpool_dispatch()d job.
*/
static void
job_cleanup(void *arg)
{
tpool_t *tpool = arg;
pthread_t my_tid = pthread_self();
tpool_active_t *activep;
tpool_active_t **activepp;
pthread_mutex_lock(&tpool->tp_mutex);
/* CSTYLED */
for (activepp = &tpool->tp_active;; activepp = &activep->tpa_next) {
activep = *activepp;
if (activep->tpa_tid == my_tid) {
*activepp = activep->tpa_next;
break;
}
}
if (tpool->tp_flags & TP_WAIT)
notify_waiters(tpool);
}
static void *
tpool_worker(void *arg)
{
tpool_t *tpool = (tpool_t *)arg;
int elapsed;
tpool_job_t *job;
void (*func)(void *);
tpool_active_t active;
sigset_t maskset;
pthread_mutex_lock(&tpool->tp_mutex);
pthread_cleanup_push(worker_cleanup, tpool);
/*
* This is the worker's main loop.
* It will only be left if a timeout or an error has occured.
*/
active.tpa_tid = pthread_self();
for (;;) {
elapsed = 0;
tpool->tp_idle++;
if (tpool->tp_flags & TP_WAIT)
notify_waiters(tpool);
while ((tpool->tp_head == NULL ||
(tpool->tp_flags & TP_SUSPEND)) &&
!(tpool->tp_flags & (TP_DESTROY | TP_ABANDON))) {
if (tpool->tp_current <= tpool->tp_minimum ||
tpool->tp_linger == 0) {
(void) pthread_cond_wait(&tpool->tp_workcv,
&tpool->tp_mutex);
} else {
struct timespec timeout;
clock_gettime(CLOCK_MONOTONIC, &timeout);
timeout.tv_sec += tpool->tp_linger;
if (pthread_cond_timedwait(&tpool->tp_workcv,
&tpool->tp_mutex, &timeout) != 0) {
elapsed = 1;
break;
}
}
}
tpool->tp_idle--;
if (tpool->tp_flags & TP_DESTROY)
break;
if (tpool->tp_flags & TP_ABANDON) {
/* can't abandon a suspended pool */
if (tpool->tp_flags & TP_SUSPEND) {
tpool->tp_flags &= ~TP_SUSPEND;
(void) pthread_cond_broadcast(&tpool->tp_workcv);
}
if (tpool->tp_head == NULL)
break;
}
if ((job = tpool->tp_head) != NULL &&
!(tpool->tp_flags & TP_SUSPEND)) {
elapsed = 0;
func = job->tpj_func;
arg = job->tpj_arg;
tpool->tp_head = job->tpj_next;
if (job == tpool->tp_tail)
tpool->tp_tail = NULL;
tpool->tp_njobs--;
active.tpa_next = tpool->tp_active;
tpool->tp_active = &active;
pthread_mutex_unlock(&tpool->tp_mutex);
pthread_cleanup_push(job_cleanup, tpool);
free(job);
/*
* Call the specified function.
*/
func(arg);
/*
* We don't know what this thread has been doing,
* so we reset its signal mask and cancellation
* state back to the initial values.
*/
sigfillset(&maskset);
(void) pthread_sigmask(SIG_SETMASK, &maskset, NULL);
(void) pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED,
NULL);
(void) pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,
NULL);
pthread_cleanup_pop(1);
}
if (elapsed && tpool->tp_current > tpool->tp_minimum) {
/*
* We timed out and there is no work to be done
* and the number of workers exceeds the minimum.
* Exit now to reduce the size of the pool.
*/
break;
}
}
pthread_cleanup_pop(1);
return (arg);
}
/*
* Create a worker thread, with all signals blocked.
*/
static int
create_worker(tpool_t *tpool)
{
sigset_t maskset, oset;
pthread_t thread;
int error;
sigfillset(&maskset);
(void) pthread_sigmask(SIG_SETMASK, &maskset, &oset);
error = pthread_create(&thread, &tpool->tp_attr, tpool_worker, tpool);
(void) pthread_sigmask(SIG_SETMASK, &oset, NULL);
return (error);
}
tpool_t *
tpool_create(uint_t min_threads, uint_t max_threads, uint_t linger,
pthread_attr_t *attr)
{
tpool_t *tpool;
int error;
if (min_threads > max_threads || max_threads < 1) {
errno = EINVAL;
return (NULL);
}
tpool = malloc(sizeof (*tpool));
if (tpool == NULL) {
errno = ENOMEM;
return (NULL);
}
bzero(tpool, sizeof(*tpool));
(void) pthread_mutex_init(&tpool->tp_mutex, NULL);
(void) pthread_cond_init(&tpool->tp_busycv, NULL);
(void) pthread_cond_init(&tpool->tp_workcv, NULL);
(void) pthread_cond_init(&tpool->tp_waitcv, NULL);
tpool->tp_minimum = min_threads;
tpool->tp_maximum = max_threads;
tpool->tp_linger = linger;
/* make all pool threads be detached daemon threads */
(void) pthread_attr_init(&tpool->tp_attr);
(void) pthread_attr_setdetachstate(&tpool->tp_attr,
PTHREAD_CREATE_DETACHED);
return (tpool);
}
/*
* Dispatch a work request to the thread pool.
* If there are idle workers, awaken one.
* Else, if the maximum number of workers has
* not been reached, spawn a new worker thread.
* Else just return with the job added to the queue.
*/
int
tpool_dispatch(tpool_t *tpool, void (*func)(void *), void *arg)
{
tpool_job_t *job;
if ((job = malloc(sizeof (*job))) == NULL)
return (-1);
bzero(job, sizeof(*job));
job->tpj_next = NULL;
job->tpj_func = func;
job->tpj_arg = arg;
pthread_mutex_lock(&tpool->tp_mutex);
if (tpool->tp_head == NULL)
tpool->tp_head = job;
else
tpool->tp_tail->tpj_next = job;
tpool->tp_tail = job;
tpool->tp_njobs++;
if (!(tpool->tp_flags & TP_SUSPEND)) {
if (tpool->tp_idle > 0)
(void) pthread_cond_signal(&tpool->tp_workcv);
else if (tpool->tp_current < tpool->tp_maximum &&
create_worker(tpool) == 0)
tpool->tp_current++;
}
pthread_mutex_unlock(&tpool->tp_mutex);
return (0);
}
/*
* Assumes: by the time tpool_destroy() is called no one will use this
* thread pool in any way and no one will try to dispatch entries to it.
* Calling tpool_destroy() from a job in the pool will cause deadlock.
*/
void
tpool_destroy(tpool_t *tpool)
{
tpool_active_t *activep;
pthread_mutex_lock(&tpool->tp_mutex);
pthread_cleanup_push((_Voidfp)pthread_mutex_unlock, &tpool->tp_mutex);
/* mark the pool as being destroyed; wakeup idle workers */
tpool->tp_flags |= TP_DESTROY;
tpool->tp_flags &= ~TP_SUSPEND;
(void) pthread_cond_broadcast(&tpool->tp_workcv);
/* cancel all active workers */
for (activep = tpool->tp_active; activep; activep = activep->tpa_next)
(void) pthread_cancel(activep->tpa_tid);
/* wait for all active workers to finish */
while (tpool->tp_active != NULL) {
tpool->tp_flags |= TP_WAIT;
(void) pthread_cond_wait(&tpool->tp_waitcv, &tpool->tp_mutex);
}
/* the last worker to terminate will wake us up */
while (tpool->tp_current != 0)
(void) pthread_cond_wait(&tpool->tp_busycv, &tpool->tp_mutex);
pthread_cleanup_pop(1); /* pthread_mutex_unlock(&tpool->tp_mutex); */
delete_pool(tpool);
}
/*
* Like tpool_destroy(), but don't cancel workers or wait for them to finish.
* The last worker to terminate will delete the pool.
*/
void
tpool_abandon(tpool_t *tpool)
{
pthread_mutex_lock(&tpool->tp_mutex);
if (tpool->tp_current == 0) {
/* no workers, just delete the pool */
pthread_mutex_unlock(&tpool->tp_mutex);
delete_pool(tpool);
} else {
/* wake up all workers, last one will delete the pool */
tpool->tp_flags |= TP_ABANDON;
tpool->tp_flags &= ~TP_SUSPEND;
(void) pthread_cond_broadcast(&tpool->tp_workcv);
pthread_mutex_unlock(&tpool->tp_mutex);
}
}
/*
* Wait for all jobs to complete.
* Calling tpool_wait() from a job in the pool will cause deadlock.
*/
void
tpool_wait(tpool_t *tpool)
{
pthread_mutex_lock(&tpool->tp_mutex);
pthread_cleanup_push((_Voidfp)pthread_mutex_unlock, &tpool->tp_mutex);
while (tpool->tp_head != NULL || tpool->tp_active != NULL) {
tpool->tp_flags |= TP_WAIT;
(void) pthread_cond_wait(&tpool->tp_waitcv, &tpool->tp_mutex);
}
pthread_cleanup_pop(1); /* pthread_mutex_unlock(&tpool->tp_mutex); */
}
void
tpool_suspend(tpool_t *tpool)
{
pthread_mutex_lock(&tpool->tp_mutex);
tpool->tp_flags |= TP_SUSPEND;
pthread_mutex_unlock(&tpool->tp_mutex);
}
int
tpool_suspended(tpool_t *tpool)
{
int suspended;
pthread_mutex_lock(&tpool->tp_mutex);
suspended = (tpool->tp_flags & TP_SUSPEND) != 0;
pthread_mutex_unlock(&tpool->tp_mutex);
return (suspended);
}
void
tpool_resume(tpool_t *tpool)
{
int excess;
pthread_mutex_lock(&tpool->tp_mutex);
if (!(tpool->tp_flags & TP_SUSPEND)) {
pthread_mutex_unlock(&tpool->tp_mutex);
return;
}
tpool->tp_flags &= ~TP_SUSPEND;
(void) pthread_cond_broadcast(&tpool->tp_workcv);
excess = tpool->tp_njobs - tpool->tp_idle;
while (excess-- > 0 && tpool->tp_current < tpool->tp_maximum) {
if (create_worker(tpool) != 0)
break; /* pthread_create() failed */
tpool->tp_current++;
}
pthread_mutex_unlock(&tpool->tp_mutex);
}
int
tpool_member(tpool_t *tpool)
{
pthread_t my_tid = pthread_self();
tpool_active_t *activep;
pthread_mutex_lock(&tpool->tp_mutex);
for (activep = tpool->tp_active; activep; activep = activep->tpa_next) {
if (activep->tpa_tid == my_tid) {
pthread_mutex_unlock(&tpool->tp_mutex);
return (1);
}
}
pthread_mutex_unlock(&tpool->tp_mutex);
return (0);
}

View File

@ -0,0 +1,99 @@
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* $FreeBSD$
*/
#ifndef _THREAD_POOL_IMPL_H
#define _THREAD_POOL_IMPL_H
#pragma ident "%Z%%M% %I% %E% SMI"
#include <thread_pool.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* Thread pool implementation definitions.
* See <thread_pool.h> for interface declarations.
*/
/*
* FIFO queued job
*/
typedef struct tpool_job tpool_job_t;
struct tpool_job {
tpool_job_t *tpj_next; /* list of jobs */
void (*tpj_func)(void *); /* function to call */
void *tpj_arg; /* its argument */
};
/*
* List of active threads, linked through their stacks.
*/
typedef struct tpool_active tpool_active_t;
struct tpool_active {
tpool_active_t *tpa_next; /* list of active threads */
pthread_t tpa_tid; /* active thread id */
};
/*
* The thread pool.
*/
struct tpool {
tpool_t *tp_forw; /* circular list of all thread pools */
tpool_t *tp_back;
mutex_t tp_mutex; /* protects the pool data */
cond_t tp_busycv; /* synchronization in tpool_dispatch */
cond_t tp_workcv; /* synchronization with workers */
cond_t tp_waitcv; /* synchronization in tpool_wait() */
tpool_active_t *tp_active; /* threads performing work */
tpool_job_t *tp_head; /* FIFO job queue */
tpool_job_t *tp_tail;
pthread_attr_t tp_attr; /* attributes of the workers */
int tp_flags; /* see below */
uint_t tp_linger; /* seconds before idle workers exit */
int tp_njobs; /* number of jobs in job queue */
int tp_minimum; /* minimum number of worker threads */
int tp_maximum; /* maximum number of worker threads */
int tp_current; /* current number of worker threads */
int tp_idle; /* number of idle workers */
};
/* tp_flags */
#define TP_WAIT 0x01 /* waiting in tpool_wait() */
#define TP_SUSPEND 0x02 /* pool is being suspended */
#define TP_DESTROY 0x04 /* pool is being destroyed */
#define TP_ABANDON 0x08 /* pool is abandoned (auto-destroy) */
#ifdef __cplusplus
}
#endif
#endif /* _THREAD_POOL_IMPL_H */

View File

@ -1138,7 +1138,7 @@ dt_vopen(int version, int flags, int *errp,
#if defined(sun)
dtp->dt_prcmode = DT_PROC_STOP_PREINIT;
#else
dtp->dt_prcmode = DT_PROC_STOP_MAIN;
dtp->dt_prcmode = DT_PROC_STOP_POSTINIT;
#endif
dtp->dt_linkmode = DT_LINK_KERNEL;
dtp->dt_linktype = DT_LTYP_ELF;

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= ${_drti} \
libavl \

View File

@ -54,7 +54,6 @@
#define Psetbkpt proc_bkptset
#define Psetflags proc_setflags
#define Pstate proc_state
#define Pstate proc_state
#define Psymbol_iter_by_addr proc_iter_symbyaddr
#define Punsetflags proc_clearflags
#define Pupdate_maps(p) do { } while (0)

View File

@ -14,6 +14,7 @@ SRCS= deviceid.c \
fsshare.c \
mkdirp.c \
mnttab.c \
thread_pool.c \
zmount.c \
zone.c

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= ${_tests} ${_zfs} ${_zpool}

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= \
ctfconvert \

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= ${_dtrace} \
${_dtruss} \

View File

@ -14408,7 +14408,7 @@ ix86_local_alignment (tree type, int align)
if (AGGREGATE_TYPE_P (type)
&& TYPE_SIZE (type)
&& TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
&& (TREE_INT_CST_LOW (TYPE_SIZE (type)) >= 16
&& (TREE_INT_CST_LOW (TYPE_SIZE (type)) >= 128
|| TREE_INT_CST_HIGH (TYPE_SIZE (type))) && align < 128)
return 128;
}

View File

@ -185,7 +185,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
template <typename _InputIterator>
multimap(_InputIterator __first, _InputIterator __last)
: _M_t()
{ _M_t._M_insert_unique(__first, __last); }
{ _M_t._M_insert_equal(__first, __last); }
/**
* @brief Builds a %multimap from a range.

View File

@ -549,8 +549,6 @@ def finstrument_functions : Flag<["-"], "finstrument-functions">, Group<f_Group>
def fkeep_inline_functions : Flag<["-"], "fkeep-inline-functions">, Group<clang_ignored_f_Group>;
def flat__namespace : Flag<["-"], "flat_namespace">;
def flax_vector_conversions : Flag<["-"], "flax-vector-conversions">, Group<f_Group>;
def flimit_debug_info : Flag<["-"], "flimit-debug-info">, Group<f_Group>, Flags<[CC1Option]>,
HelpText<"Limit debug information produced to reduce size of debug binary">;
def flimited_precision_EQ : Joined<["-"], "flimited-precision=">, Group<f_Group>;
def flto : Flag<["-"], "flto">, Group<f_Group>;
def fno_lto : Flag<["-"], "fno-lto">, Group<f_Group>;
@ -645,8 +643,6 @@ def fno_inline : Flag<["-"], "fno-inline">, Group<f_clang_Group>, Flags<[CC1Opti
def fno_keep_inline_functions : Flag<["-"], "fno-keep-inline-functions">, Group<clang_ignored_f_Group>;
def fno_lax_vector_conversions : Flag<["-"], "fno-lax-vector-conversions">, Group<f_Group>,
HelpText<"Disallow implicit conversions between vectors with a different number of elements or different element types">, Flags<[CC1Option]>;
def fno_limit_debug_info : Flag<["-"], "fno-limit-debug-info">, Group<f_Group>, Flags<[CC1Option]>,
HelpText<"Do not limit debug information produced to reduce size of debug binary">;
def fno_merge_all_constants : Flag<["-"], "fno-merge-all-constants">, Group<f_Group>,
Flags<[CC1Option]>, HelpText<"Disallow merging of constants">;
def fno_modules : Flag <["-"], "fno-modules">, Group<f_Group>,
@ -774,6 +770,12 @@ def fno_signed_char : Flag<["-"], "fno-signed-char">, Flags<[CC1Option]>,
def fsplit_stack : Flag<["-"], "fsplit-stack">, Group<f_Group>;
def fstack_protector_all : Flag<["-"], "fstack-protector-all">, Group<f_Group>;
def fstack_protector : Flag<["-"], "fstack-protector">, Group<f_Group>;
def fstandalone_debug : Flag<["-"], "fstandalone-debug">, Group<f_Group>, Flags<[CC1Option]>,
HelpText<"Emit full debug info for all types used by the program">;
def fno_standalone_debug : Flag<["-"], "fno-standalone-debug">, Group<f_Group>, Flags<[CC1Option]>,
HelpText<"Limit debug information produced to reduce size of debug binary">;
def flimit_debug_info : Flag<["-"], "flimit-debug-info">, Alias<fno_standalone_debug>;
def fno_limit_debug_info : Flag<["-"], "fno-limit-debug-info">, Alias<fstandalone_debug>;
def fstrict_aliasing : Flag<["-"], "fstrict-aliasing">, Group<f_Group>;
def fstrict_enums : Flag<["-"], "fstrict-enums">, Group<f_Group>, Flags<[CC1Option]>,
HelpText<"Enable optimizations based on the strict definition of an enum's "

View File

@ -50,12 +50,20 @@ class CodeGenOptions : public CodeGenOptionsBase {
};
enum DebugInfoKind {
NoDebugInfo, // Don't generate debug info.
DebugLineTablesOnly, // Emit only debug info necessary for generating
// line number tables (-gline-tables-only).
LimitedDebugInfo, // Limit generated debug info to reduce size
// (-flimit-debug-info).
FullDebugInfo // Generate complete debug info.
NoDebugInfo, /// Don't generate debug info.
DebugLineTablesOnly, /// Emit only debug info necessary for generating
/// line number tables (-gline-tables-only).
LimitedDebugInfo, /// Limit generated debug info to reduce size
/// (-fno-standalone-debug). This emits
/// forward decls for types that could be
/// replaced with forward decls in the source
/// code. For dynamic C++ classes type info
/// is only emitted int the module that
/// contains the classe's vtable.
FullDebugInfo /// Generate complete debug info.
};
enum TLSModel {

View File

@ -1456,13 +1456,13 @@ llvm::DIType CGDebugInfo::CreateType(const RecordType *Ty) {
// declaration. The completeType, completeRequiredType, and completeClassData
// callbacks will handle promoting the declaration to a definition.
if (T ||
// Under -flimit-debug-info:
(DebugKind <= CodeGenOptions::LimitedDebugInfo &&
// Under -flimit-debug-info, emit only a declaration unless the type is
// required to be complete.
!RD->isCompleteDefinitionRequired() && CGM.getLangOpts().CPlusPlus) ||
// If the class is dynamic, only emit a declaration. A definition will be
// emitted whenever the vtable is emitted.
(CXXDecl && CXXDecl->hasDefinition() && CXXDecl->isDynamicClass()) || T) {
// Emit only a forward declaration unless the type is required.
((!RD->isCompleteDefinitionRequired() && CGM.getLangOpts().CPlusPlus) ||
// If the class is dynamic, only emit a declaration. A definition will be
// emitted whenever the vtable is emitted.
(CXXDecl && CXXDecl->hasDefinition() && CXXDecl->isDynamicClass())))) {
llvm::DIDescriptor FDContext =
getContextDescriptor(cast<Decl>(RD->getDeclContext()));
if (!T)

View File

@ -3002,8 +3002,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls);
Args.AddLastArg(CmdArgs, options::OPT_fformat_extensions);
Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions);
Args.AddLastArg(CmdArgs, options::OPT_flimit_debug_info);
Args.AddLastArg(CmdArgs, options::OPT_fno_limit_debug_info);
Args.AddLastArg(CmdArgs, options::OPT_fstandalone_debug);
Args.AddLastArg(CmdArgs, options::OPT_fno_standalone_debug);
Args.AddLastArg(CmdArgs, options::OPT_fno_operator_names);
// AltiVec language extensions aren't relevant for assembling.
if (!isa<PreprocessJobAction>(JA) ||

View File

@ -295,7 +295,8 @@ static void ParseCommentArgs(CommentOptions &Opts, ArgList &Args) {
}
static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
DiagnosticsEngine &Diags) {
DiagnosticsEngine &Diags,
const TargetOptions &TargetOpts) {
using namespace options;
bool Success = true;
@ -322,10 +323,16 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
Opts.setDebugInfo(CodeGenOptions::DebugLineTablesOnly);
} else if (Args.hasArg(OPT_g_Flag) || Args.hasArg(OPT_gdwarf_2) ||
Args.hasArg(OPT_gdwarf_3) || Args.hasArg(OPT_gdwarf_4)) {
if (Args.hasFlag(OPT_flimit_debug_info, OPT_fno_limit_debug_info, true))
Opts.setDebugInfo(CodeGenOptions::LimitedDebugInfo);
else
bool Default = false;
// Until dtrace (via CTF) can deal with distributed debug info,
// Darwin defaults to standalone/full debug info.
if (llvm::Triple(TargetOpts.Triple).isOSDarwin())
Default = true;
if (Args.hasFlag(OPT_fstandalone_debug, OPT_fno_standalone_debug, Default))
Opts.setDebugInfo(CodeGenOptions::FullDebugInfo);
else
Opts.setDebugInfo(CodeGenOptions::LimitedDebugInfo);
}
Opts.DebugColumnInfo = Args.hasArg(OPT_dwarf_column_info);
Opts.SplitDwarfFile = Args.getLastArgValue(OPT_split_dwarf_file);
@ -1657,8 +1664,9 @@ bool CompilerInvocation::CreateFromArgs(CompilerInvocation &Res,
ParseFileSystemArgs(Res.getFileSystemOpts(), *Args);
// FIXME: We shouldn't have to pass the DashX option around here
InputKind DashX = ParseFrontendArgs(Res.getFrontendOpts(), *Args, Diags);
Success = ParseCodeGenArgs(Res.getCodeGenOpts(), *Args, DashX, Diags)
&& Success;
ParseTargetArgs(Res.getTargetOpts(), *Args);
Success = ParseCodeGenArgs(Res.getCodeGenOpts(), *Args, DashX, Diags,
Res.getTargetOpts()) && Success;
ParseHeaderSearchArgs(Res.getHeaderSearchOpts(), *Args);
if (DashX != IK_AST && DashX != IK_LLVM_IR) {
ParseLangArgs(*Res.getLangOpts(), *Args, DashX, Diags);
@ -1673,8 +1681,6 @@ bool CompilerInvocation::CreateFromArgs(CompilerInvocation &Res,
ParsePreprocessorArgs(Res.getPreprocessorOpts(), *Args, FileMgr, Diags);
ParsePreprocessorOutputArgs(Res.getPreprocessorOutputOpts(), *Args,
Res.getFrontendOpts().ProgramAction);
ParseTargetArgs(Res.getTargetOpts(), *Args);
return Success;
}

View File

@ -1920,7 +1920,6 @@ mon_getlist_0(
printf("wants monitor 0 list\n");
#endif
if (!mon_enabled) {
req_ack(srcadr, inter, inpkt, INFO_ERR_NODATA);
return;
}
im = (struct info_monitor *)prepare_pkt(srcadr, inter, inpkt,
@ -1965,7 +1964,6 @@ mon_getlist_1(
extern int mon_enabled;
if (!mon_enabled) {
req_ack(srcadr, inter, inpkt, INFO_ERR_NODATA);
return;
}
im = (struct info_monitor_1 *)prepare_pkt(srcadr, inter, inpkt,

View File

@ -74,6 +74,7 @@ e - list errors generated by last \"kill\" or \"renice\" command\n\
H - toggle the displaying of threads\n\
i or I - toggle the displaying of idle processes\n\
j - toggle the displaying of jail ID\n\
J - display processes for only one jail (+ selects all jails)\n\
k - kill processes; send a signal to a list of processes\n\
m - toggle the display between 'cpu' and 'io' modes\n\
n or # - change number of processes to display\n", stdout);

View File

@ -66,6 +66,7 @@ struct process_select
int thread; /* show threads */
int uid; /* only this uid (unless uid == -1) */
int wcpu; /* show weighted cpu */
int jid; /* only this jid (unless jid == -1) */
int jail; /* show jail ID */
int kidle; /* show per-CPU idle threads */
char *command; /* only this command (unless == NULL) */

View File

@ -20,6 +20,8 @@ top \- display and update information about the top cpu processes
] [
.BI \-s time
] [
.BI \-J jail
] [
.BI \-U username
] [
.I number
@ -171,6 +173,21 @@ values are \*(lqcpu\*(rq, \*(lqsize\*(rq, \*(lqres\*(rq, and \*(lqtime\*(rq,
but may vary on different operating systems. Note that
not all operating systems support this option.
.TP
.BI \-J jail
Show only those processes owned by
.IR jail .
This may be either the
.B jid
or
.B name
of the jail.
Use
.B 0
to limit to host processes.
Using this option implies the
.B \-j
flag.
.PP
.BI \-U username
Show only those processes owned by
.IR username .
@ -315,6 +332,12 @@ Toggle the display of
.IR jail (8)
ID.
.TP
.B J
Display only processes owned by a specific jail (prompt for jail).
If the jail specified is simply \*(lq+\*(rq, then processes belonging
to all jails and the host will be displayed.
This will also enable the display of JID.
.TP
.B P
Toggle the display of per-CPU statistics.
.TP

View File

@ -38,7 +38,9 @@ char *copyright =
#include <signal.h>
#include <setjmp.h>
#include <ctype.h>
#include <sys/jail.h>
#include <sys/time.h>
#include <jail.h>
/* includes specific to top */
#include "display.h" /* interface to display package */
@ -198,9 +200,9 @@ char *argv[];
fd_set readfds;
#ifdef ORDER
static char command_chars[] = "\f qh?en#sdkriIutHmSCajzPo";
static char command_chars[] = "\f qh?en#sdkriIutHmSCajzPJo";
#else
static char command_chars[] = "\f qh?en#sdkriIutHmSCajzP";
static char command_chars[] = "\f qh?en#sdkriIutHmSCajzPJ";
#endif
/* these defines enumerate the "strchr"s of the commands in command_chars */
#define CMD_redraw 0
@ -228,8 +230,9 @@ char *argv[];
#define CMD_jidtog 21
#define CMD_kidletog 22
#define CMD_pcputog 23
#define CMD_jail 24
#ifdef ORDER
#define CMD_order 24
#define CMD_order 25
#endif
/* set the buffer for stdout */
@ -261,6 +264,7 @@ char *argv[];
ps.uid = -1;
ps.thread = No;
ps.wcpu = 1;
ps.jid = -1;
ps.jail = No;
ps.kidle = Yes;
ps.command = NULL;
@ -288,7 +292,7 @@ char *argv[];
optind = 1;
}
while ((i = getopt(ac, av, "CSIHPabijnquvzs:d:U:m:o:t")) != EOF)
while ((i = getopt(ac, av, "CSIHPabijJ:nquvzs:d:U:m:o:t")) != EOF)
{
switch(i)
{
@ -413,6 +417,15 @@ char *argv[];
ps.jail = !ps.jail;
break;
case 'J': /* display only jail's processes */
if ((ps.jid = jail_getid(optarg)) == -1)
{
fprintf(stderr, "%s: unknown jail\n", optarg);
exit(1);
}
ps.jail = 1;
break;
case 'P':
pcpu_stats = !pcpu_stats;
break;
@ -425,7 +438,7 @@ char *argv[];
fprintf(stderr,
"Top version %s\n"
"Usage: %s [-abCHIijnPqStuvz] [-d count] [-m io | cpu] [-o field] [-s time]\n"
" [-U username] [number]\n",
" [-J jail] [-U username] [number]\n",
version_string(), myname);
exit(1);
}
@ -994,7 +1007,7 @@ char *argv[];
case CMD_user:
new_message(MT_standout,
"Username to show: ");
"Username to show (+ for all): ");
if (readline(tempbuf2, sizeof(tempbuf2), No) > 0)
{
if (tempbuf2[0] == '+' &&
@ -1085,6 +1098,44 @@ char *argv[];
reset_display();
putchar('\r');
break;
case CMD_jail:
new_message(MT_standout,
"Jail to show (+ for all): ");
if (readline(tempbuf2, sizeof(tempbuf2), No) > 0)
{
if (tempbuf2[0] == '+' &&
tempbuf2[1] == '\0')
{
ps.jid = -1;
}
else if ((i = jail_getid(tempbuf2)) == -1)
{
new_message(MT_standout,
" %s: unknown jail", tempbuf2);
no_command = Yes;
}
else
{
ps.jid = i;
}
if (ps.jail == 0) {
ps.jail = 1;
new_message(MT_standout |
MT_delayed, " Displaying jail "
"ID.");
header_text =
format_header(uname_field);
reset_display();
}
putchar('\r');
}
else
{
clear_message();
}
break;
case CMD_kidletog:
ps.kidle = !ps.kidle;
new_message(MT_standout | MT_delayed,

View File

@ -1055,7 +1055,7 @@ int ssl3_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek)
{
s->rstate=SSL_ST_READ_HEADER;
rr->off=0;
if (s->mode & SSL_MODE_RELEASE_BUFFERS)
if (s->mode & SSL_MODE_RELEASE_BUFFERS && s->s3->rbuf.left == 0)
ssl3_release_read_buffer(s);
}
}

View File

@ -1,7 +1,7 @@
# from: @(#)Makefile 5.11 (Berkeley) 5/21/91
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
.if ${MK_SENDMAIL} != "no"
SUBDIR= sendmail

View File

@ -641,10 +641,10 @@ devfs_rulesets="/etc/defaults/devfs.rules /etc/devfs.rules" # Files containing
devfs_system_ruleset="" # The name (NOT number) of a ruleset to apply to /dev
devfs_set_rulesets="" # A list of /mount/dev=ruleset_name settings to
# apply (must be mounted already, i.e. fstab(5))
devfs_load_rulesets="NO" # Enable to always load the default rulesets
performance_cx_lowest="HIGH" # Online CPU idle state
devfs_load_rulesets="YES" # Enable to always load the default rulesets
performance_cx_lowest="Cmax" # Online CPU idle state
performance_cpu_freq="NONE" # Online CPU frequency
economy_cx_lowest="HIGH" # Offline CPU idle state
economy_cx_lowest="Cmax" # Offline CPU idle state
economy_cpu_freq="NONE" # Offline CPU frequency
virecover_enable="YES" # Perform housekeeping for the vi(1) editor
ugidfw_enable="NO" # Load mac_bsdextended(4) rules on boot

View File

@ -97,8 +97,6 @@
..
growfs
..
ifconfig
..
mdconfig
..
..

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
FILES= ${_BSD.debug.dist} \
BSD.include.dist \

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
FILES= 100.clean-disks \
110.clean-tmps \

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
FILES= 450.status-security \
999.local

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
FILES= 100.chksetuid \
110.neggrpperm \

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
FILES= 340.noid \
450.status-security \

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
FILES= DAEMON \
FILESYSTEMS \

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= \
bcd \

View File

@ -1,7 +1,7 @@
# @(#)Makefile 8.1 (Berkeley) 5/31/93
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
PROG= factor
SRCS= factor.c pr_tbl.c

View File

@ -1,7 +1,7 @@
# @(#)Makefile 5.33.1.1 (Berkeley) 5/6/91
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= lib ${_tests} usr.bin

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= csu libgcc libgcov libdialog libgomp libregex libreadline

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
MK_SSP= no
GCCDIR= ${.CURDIR}/../../../contrib/gcc

View File

@ -6,7 +6,7 @@ GCCLIB= ${.CURDIR}/../../../contrib/gcclibs
SHLIB_NAME= libgcc_s.so.1
SHLIBDIR?= /lib
.include <bsd.own.mk>
.include <src.opts.mk>
#
# libgcc is linked in last and thus cannot depend on ssp symbols coming
# from earlier libraries. Disable stack protection for this library.

View File

@ -3,7 +3,7 @@
MK_PROFILE= no
MK_SSP= no
.include <bsd.own.mk>
.include <src.opts.mk>
.include "${.CURDIR}/../../usr.bin/cc/Makefile.tgt"
GCCDIR= ${.CURDIR}/../../../contrib/gcc

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
GCCVER= 4.2
GCCDIR= ${.CURDIR}/../../../contrib/gcc

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
GCCVER= 4.2
GCCDIR= ${.CURDIR}/../../../contrib/gcc

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= ${_binutils} \
${_cc} \

View File

@ -4,7 +4,7 @@
# BINDIR
.include "${.CURDIR}/../../Makefile.inc"
.include "${.CURDIR}/../Makefile.inc0"
.include <bsd.own.mk>
.include <src.opts.mk>
.PATH: ${SRCDIR}/gas ${SRCDIR}/gas/config

View File

@ -1,7 +1,7 @@
# $FreeBSD$
.include "../Makefile.inc0"
.include <bsd.own.mk>
.include <src.opts.mk>
.PATH: ${SRCDIR}/ld

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
# The order of some of these are rather important. Some depend on previous
# subdirs.

View File

@ -1,5 +1,6 @@
# $FreeBSD$
.include <src.opts.mk>
.include "../Makefile.inc"
# Sometimes this is .include'd several times...

View File

@ -1,7 +1,7 @@
# $FreeBSD$
MAN=
.include <bsd.own.mk>
.include <src.opts.mk>
.include "../Makefile.inc"
.include "../Makefile.fe"

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
.include "../Makefile.inc"
.include "../Makefile.fe"

View File

@ -1,7 +1,7 @@
# $FreeBSD$
MAN=
.include <bsd.own.mk>
.include <src.opts.mk>
.include "../Makefile.inc"

View File

@ -1,7 +1,7 @@
# $FreeBSD$
MAN=
.include <bsd.own.mk>
.include <src.opts.mk>
.include "../Makefile.inc"

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
CFLAGS+= -I.

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
.include "../Makefile.inc"
.include "../Makefile.fe"

View File

@ -10,7 +10,7 @@ CFLAGS+= -I${.CURDIR} -I${DIALOG}
WARNS?= 6
.include <bsd.own.mk>
.include <src.opts.mk>
.if ${MK_NCURSESW} == "no"
DPADD+= ${LIBNCURSES}

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
GREP_LIBZ=YES

View File

@ -3,7 +3,7 @@
#
# Doing a "make install" builds /usr/include.
.include <bsd.own.mk>
.include <src.opts.mk>
CLEANFILES= osreldate.h version vers.c
SUBDIR= arpa gssapi protocols rpcsvc rpc xlocale

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
INCS= ftp.h inet.h nameser.h nameser_compat.h telnet.h tftp.h

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
NO_LINT=

View File

@ -1,7 +1,7 @@
# @(#)Makefile 8.1 (Berkeley) 6/4/93
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
# To satisfy shared library or ELF linkage when only the libraries being
# built are visible:

View File

@ -25,7 +25,7 @@
#
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
SUBDIR= libatf-c \
libatf-c++ \

View File

@ -25,6 +25,7 @@
#
# $FreeBSD$
.include <src.opts.mk>
.include <bsd.init.mk>
LIB= atf-c++

View File

@ -25,6 +25,7 @@
#
# $FreeBSD$
.include <src.opts.mk>
.include <bsd.init.mk>
LIB= atf-c

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
.if !make(install)
.if !defined(EARLY_BUILD)

View File

@ -1,5 +1,7 @@
# $FreeBSD$
.include <src.opts.mk>
CLANG_SRCS= ${LLVM_SRCS}/tools/clang
CFLAGS+= -I${LLVM_SRCS}/include -I${CLANG_SRCS}/include \

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
LIB= llvmanalysis

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
LIB= llvmipa

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
LIB= llvmipo

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
LIB= llvmmc

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
LIB= llvmscalaropts

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
LIB= llvmsupport

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
LIB= llvmtransformutils

View File

@ -1,6 +1,6 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
LIB= llvmx86disassembler

View File

@ -1,5 +1,5 @@
# $FreeBSD$
.include <bsd.own.mk>
.include <src.opts.mk>
LIBARCHIVEDIR= ${.CURDIR}/../../contrib/libarchive

View File

@ -2,7 +2,7 @@
#
# Author: Harti Brandt <harti@freebsd.org>
.include <bsd.own.mk>
.include <src.opts.mk>
CONTRIB= ${.CURDIR}/../../../contrib/bsnmp/lib
.PATH: ${CONTRIB}

Some files were not shown because too many files have changed in this diff Show More