Merge ^/head r321383 through r322397.

This commit is contained in:
Hans Petter Selasky 2017-08-11 10:59:34 +00:00
commit 0275f9dbf7
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/projects/bsd_rdma_4_9/; revision=322398
1278 changed files with 55737 additions and 27038 deletions

View file

@ -158,8 +158,18 @@ META_TGT_WHITELIST+= \
toolchains universe world worlds xdev xdev-build
.ORDER: buildworld installworld
.ORDER: buildworld distrib-dirs
.ORDER: buildworld distribution
.ORDER: buildworld distribute
.ORDER: buildworld distributeworld
.ORDER: buildworld buildkernel
.ORDER: distrib-dirs distribute
.ORDER: distrib-dirs distributeworld
.ORDER: distrib-dirs installworld
.ORDER: distribution distribute
.ORDER: distributeworld distribute
.ORDER: distributeworld distribution
.ORDER: installworld distribute
.ORDER: installworld distribution
.ORDER: installworld installkernel
.ORDER: buildkernel installkernel
@ -431,14 +441,22 @@ TARGET_ARCHES_${target}?= ${target}
MAKE_PARAMS_riscv?= CROSS_TOOLCHAIN=riscv64-gcc
# XXX Remove riscv from universe if the required toolchain package is missing.
.if !exists(/usr/local/share/toolchains/riscv64-gcc.mk) && ${TARGETS:Mriscv}
_UNIVERSE_TARGETS:= ${_UNIVERSE_TARGETS:Nriscv}
universe: universe_riscv_skip .PHONY
universe_epilogue: universe_riscv_skip .PHONY
universe_riscv_skip: universe_prologue .PHONY
@echo ">> riscv skipped - install riscv64-xtoolchain-gcc port or package to build"
# XXX Remove architectures only supported by external toolchain from universe
# if required toolchain packages are missing.
TOOLCHAINS_riscv= riscv64
.for target in riscv
.if ${_UNIVERSE_TARGETS:M${target}}
.for toolchain in ${TOOLCHAINS_${target}}
.if !exists(/usr/local/share/toolchains/${toolchain}-gcc.mk)
_UNIVERSE_TARGETS:= ${_UNIVERSE_TARGETS:N${target}}
universe: universe_${toolchain}_skip .PHONY
universe_epilogue: universe_${toolchain}_skip .PHONY
universe_${toolchain}_skip: universe_prologue .PHONY
@echo ">> ${target} skipped - install ${toolchain}-xtoolchain-gcc port or package to build"
.endif
.endfor
.endif
.endfor
.if defined(UNIVERSE_TARGET)
MAKE_JUST_WORLDS= YES

View file

@ -444,7 +444,7 @@ BUILD_ARCH!= uname -p
.endif
.endif
WORLDTMP= ${OBJTREE}${.CURDIR}/tmp
BPATH= ${WORLDTMP}/legacy/usr/sbin:${WORLDTMP}/legacy/usr/bin:${WORLDTMP}/legacy/bin
BPATH= ${CCACHE_WRAPPER_PATH_PFX}${WORLDTMP}/legacy/usr/sbin:${WORLDTMP}/legacy/usr/bin:${WORLDTMP}/legacy/bin
XPATH= ${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin
STRICTTMPPATH= ${BPATH}:${XPATH}
TMPPATH= ${STRICTTMPPATH}:${PATH}
@ -624,8 +624,7 @@ XCFLAGS+= -isystem ${WORLDTMP}/usr/include -L${WORLDTMP}/usr/lib
# combined with --sysroot.
XCFLAGS+= -B${WORLDTMP}/usr/lib
# Force using libc++ for external GCC.
# XXX: This should be checking MK_GNUCXX == no
.if ${X_COMPILER_VERSION} >= 40800
.if ${X_COMPILER_TYPE} == gcc && ${X_COMPILER_VERSION} >= 40800
XCXXFLAGS+= -isystem ${WORLDTMP}/usr/include/c++/v1 -std=c++11 \
-nostdinc++
.endif
@ -761,6 +760,16 @@ _worldtmp: .PHONY
rm -rf ${LIBCOMPATTMP}
.endif
.else
.if exists(${WORLDTMP})
@echo ">>> Deleting stale files in build tree..."
${_+_}cd ${.CURDIR}; ${WMAKE} -DBATCH_DELETE_OLD_FILES \
delete-old delete-old-libs >/dev/null
.endif
.if defined(LIBCOMPAT) && exists(${LIBCOMPATTMP})
${_+_}cd ${.CURDIR}; ${WMAKE} -DBATCH_DELETE_OLD_FILES \
DESTDIR=${LIBCOMPATTMP} \
delete-old delete-old-libs >/dev/null
.endif
rm -rf ${WORLDTMP}/legacy/usr/include
.if ${USING_SYSTEM_COMPILER} == "yes"
.for cc in cc c++
@ -770,7 +779,6 @@ _worldtmp: .PHONY
fi
.endfor
.endif # ${USING_SYSTEM_COMPILER} == "yes"
.endif # !defined(NO_CLEAN)
# Our current approach to dependency tracking cannot cope with certain source
# tree changes, particularly with respect to removing source files and
@ -813,6 +821,9 @@ _worldtmp: .PHONY
${OBJTREE}${.CURDIR}/world32/${.CURDIR}/lib/libc/.depend.${f}.*
.endif
.endfor
.endif # !defined(NO_CLEAN)
.for _dir in \
lib lib/casper usr legacy/bin legacy/usr
mkdir -p ${WORLDTMP}/${_dir}
@ -1607,7 +1618,10 @@ create-world-package-${pkgname}: .PHONY
@awk -F\" ' \
/^name/ { printf("===> Creating %s-", $$2); next } \
/^version/ { print $$2; next } \
' ${WSTAGEDIR}/${pkgname}.ucl ; \
' ${WSTAGEDIR}/${pkgname}.ucl ;
@if [ "${pkgname}" == "runtime" ]; then \
sed -i '' -e "s/%KERNCONF%/${INSTALLKERNEL:tl}/" ${WSTAGEDIR}/${pkgname}.ucl ; \
fi
${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh -o ALLOW_BASE_SHLIBS=yes \
create -M ${WSTAGEDIR}/${pkgname}.ucl \
-p ${WSTAGEDIR}/${pkgname}.plist \
@ -1618,7 +1632,7 @@ create-world-package-${pkgname}: .PHONY
create-kernel-packages: .PHONY
_default_flavor= -default
.if exists(${KSTAGEDIR}/kernel.meta)
.for flavor in "" -debug
. for flavor in "" -debug
create-kernel-packages: create-kernel-packages-flavor${flavor:C,^""$,${_default_flavor},}
create-kernel-packages-flavor${flavor:C,^""$,${_default_flavor},}: _pkgbootstrap .PHONY
@cd ${KSTAGEDIR}/${DISTDIR} ; \
@ -1644,12 +1658,12 @@ create-kernel-packages-flavor${flavor:C,^""$,${_default_flavor},}: _pkgbootstrap
-p ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.plist \
-r ${KSTAGEDIR}/${DISTDIR} \
-o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION}
.endfor
. endfor
.endif
.if ${BUILDKERNELS:[#]} > 1 && ${NO_INSTALLEXTRAKERNELS} != "yes"
.for _kernel in ${BUILDKERNELS:[2..-1]}
.if exists(${KSTAGEDIR}/kernel.${_kernel}.meta)
.for flavor in "" -debug
. for _kernel in ${BUILDKERNELS:[2..-1]}
. if exists(${KSTAGEDIR}/kernel.${_kernel}.meta)
. for flavor in "" -debug
create-kernel-packages: create-kernel-packages-extra-flavor${flavor:C,^""$,${_default_flavor},}-${_kernel}
create-kernel-packages-extra-flavor${flavor:C,^""$,${_default_flavor},}-${_kernel}: _pkgbootstrap .PHONY
@cd ${KSTAGEDIR}/kernel.${_kernel} ; \
@ -1675,9 +1689,9 @@ create-kernel-packages-extra-flavor${flavor:C,^""$,${_default_flavor},}-${_kerne
-p ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.plist \
-r ${KSTAGEDIR}/kernel.${_kernel} \
-o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION}
.endfor
.endif
.endfor
. endfor
. endif
. endfor
.endif
sign-packages: _pkgbootstrap .PHONY
@ -2327,11 +2341,12 @@ _cddl_lib_libumem= cddl/lib/libumem
_cddl_lib_libnvpair= cddl/lib/libnvpair
_cddl_lib_libavl= cddl/lib/libavl
_cddl_lib_libuutil= cddl/lib/libuutil
.if ${MK_ZFS} != "no"
_cddl_lib_libzfs_core= cddl/lib/libzfs_core
cddl/lib/libzfs_core__L: cddl/lib/libnvpair__L
.endif
_cddl_lib_libctf= cddl/lib/libctf
_cddl_lib= cddl/lib
cddl/lib/libzfs_core__L: cddl/lib/libnvpair__L
cddl/lib/libzfs__L: lib/libgeom__L
cddl/lib/libctf__L: lib/libz__L
.endif
# cddl/lib/libdtrace requires lib/libproc and lib/librtld_db; it's only built
@ -2730,8 +2745,7 @@ CD2CFLAGS+= -isystem ${XDDESTDIR}/usr/include -L${XDDESTDIR}/usr/lib
# combined with --sysroot.
CD2CFLAGS+= -B${XDDESTDIR}/usr/lib
# Force using libc++ for external GCC.
# XXX: This should be checking MK_GNUCXX == no
.if ${X_COMPILER_VERSION} >= 40800
.if ${X_COMPILER_TYPE} == gcc && ${X_COMPILER_VERSION} >= 40800
CD2CXXFLAGS+= -isystem ${XDDESTDIR}/usr/include/c++/v1 -std=c++11 \
-nostdinc++
.endif
@ -2749,9 +2763,6 @@ CD2MAKE=${CD2ENV} PATH=${CDTMP}/usr/bin:${XDDESTDIR}/usr/bin:${PATH} ${MAKE} ${N
CD2MAKE+= BUILD_TOOLS_META=.NOMETA
.endif
XDDESTDIR=${DESTDIR}/${XDTP}
.if !defined(OSREL)
OSREL!= uname -r | sed -e 's/[-(].*//'
.endif
.ORDER: xdev-build xdev-install xdev-links
xdev: xdev-build xdev-install .PHONY
@ -2845,7 +2856,7 @@ xdev-links: .PHONY
ln -sf ../../${XDTP}/usr/bin/$$i \
../../../../usr/bin/${XDDIR}-$$i; \
ln -sf ../../${XDTP}/usr/bin/$$i \
../../../../usr/bin/${XDDIR}${OSREL}-$$i; \
../../../../usr/bin/${XDDIR}${_REVISION}-$$i; \
done
.else
xdev xdev-build xdev-install xdev-links: .PHONY

View file

@ -99,8 +99,7 @@ LIBCOMPATCFLAGS+= -B${LIBCOMPATTMP}/usr/lib${libcompat}
# sysroot path which --sysroot does not actually do for headers.
LIBCOMPATCFLAGS+= -isystem ${LIBCOMPATTMP}/usr/include
# Force using libc++ for external GCC.
# XXX: This should be checking MK_GNUCXX == no
.if ${X_COMPILER_VERSION} >= 40800 && \
.if ${X_COMPILER_TYPE} == gcc && ${X_COMPILER_VERSION} >= 40800 && \
(${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no")
LIBCOMPATCXXFLAGS+= -isystem ${LIBCOMPATTMP}/usr/include/c++/v1 -std=c++11 \
-nostdinc++

View file

@ -38,6 +38,9 @@
# xargs -n1 | sort | uniq -d;
# done
# 20170802: ksyms(4) ioctl interface was removed
OLD_FILES+=usr/include/sys/ksyms.h
# 20170722: new clang import which bumps version from 4.0.0 to 5.0.0.
OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/allocator_interface.h
OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/asan_interface.h

View file

@ -51,14 +51,34 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
****************************** SPECIAL WARNING: ******************************
20170808:
Since the switch to GPT disk labels, fsck for UFS/FFS has been
unable to automatically find alternate superblocks. As of r322297,
the information needed to find alternate superblocks has been
moved to the end of the area reserved for the boot block.
Filesystems created with a newfs of this vintage or later
will create the recovery information. If you have a filesystem
created prior to this change and wish to have a recovery block
created for your filesystem, you can do so by running fsck in
forground mode (i.e., do not use the -p or -y options). As it
starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS''
to which you should answer yes.
20170728:
As of r321665, an NFSv4 server configuration that services
Kerberos mounts or clients that do not support the uid/gid in
owner/owner_group string capability, must explicitly enable
the nfsuserd daemon by adding nfsuserd_enable="YES" to the
machine's /etc/rc.conf file.
20170722:
Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0.
Please see the 20141231 entry below for information about prerequisites
and upgrading, if you are not already using clang 3.5.0 or higher.
20170701:
WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need them to be
built with the base system.
WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the
r-commands (rlogin, rsh, etc.) to be built with the base system.
20170625:
The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is

View file

@ -6,8 +6,6 @@
PACKAGE=runtime
PROG= cat
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -51,12 +51,12 @@ __FBSDID("$FreeBSD$");
#ifndef NO_UDOM_SUPPORT
#include <sys/socket.h>
#include <sys/un.h>
#include <errno.h>
#include <netdb.h>
#endif
#include <ctype.h>
#include <err.h>
#include <errno.h>
#include <fcntl.h>
#include <locale.h>
#include <stddef.h>

View file

@ -25,6 +25,13 @@
#
# $FreeBSD$
get_filesystem()
{
local mountpoint=$1
df -T $mountpoint | tail -n 1 | cut -wf 2
}
atf_test_case RH_flag
RH_flag_head()
{
@ -94,6 +101,11 @@ f_flag_body()
{
atf_check truncate -s 0 foo bar
atf_check chmod 0750 foo bar
case "$(get_filesystem .)" in
zfs)
atf_expect_fail "ZFS doesn't support UF_IMMUTABLE; returns EPERM - bug 221189"
;;
esac
atf_check chflags uchg foo
atf_check -e not-empty -s not-exit:0 chmod 0700 foo bar
atf_check -o inline:'100750\n100700\n' stat -f '%p' foo bar
@ -103,7 +115,7 @@ f_flag_body()
f_flag_cleanup()
{
atf_check chflags 0 foo
chflags 0 foo || :
}
atf_test_case h_flag
@ -140,6 +152,11 @@ v_flag_body()
atf_check truncate -s 0 foo bar
atf_check chmod 0600 foo
atf_check chmod 0750 bar
case "$(get_filesystem .)" in
zfs)
atf_expect_fail "ZFS updates mode for foo unnecessarily - bug 221188"
;;
esac
atf_check -o 'inline:bar\n' chmod -v 0600 foo bar
atf_check chmod -v 0600 foo bar
for f in foo bar; do

View file

@ -7,8 +7,6 @@ PACKAGE=runtime
PROG= date
SRCS= date.c netdate.c vary.c
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -38,8 +38,6 @@ test: ${PROG} gen
@rm -f gen 1M_zeroes* obs_zeroes
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -29,7 +29,7 @@
.\" @(#)df.1 8.3 (Berkeley) 5/8/95
.\" $FreeBSD$
.\"
.Dd December 1, 2015
.Dd August 8, 2017
.Dt DF 1
.Os
.Sh NAME
@ -97,7 +97,7 @@ output.
Use unit suffixes: Byte, Kibibyte, Mebibyte, Gibibyte, Tebibyte and
Pebibyte (based on powers of 1024) in order to reduce the number of
digits to four or fewer.
.It Fl H
.It Fl H , Fl Fl si
.Dq Human-readable
output.
Use unit suffixes: Byte, Kilobyte, Megabyte,

View file

@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$");
#include <ufs/ufs/ufsmount.h>
#endif
#include <err.h>
#include <getopt.h>
#include <libutil.h>
#include <locale.h>
#ifdef MOUNT_CHAR_DEVS
@ -107,6 +108,12 @@ static int thousands;
static struct ufs_args mdev;
#endif
static const struct option long_options[] =
{
{ "si", no_argument, NULL, 'H' },
{ NULL, no_argument, NULL, 0 },
};
int
main(int argc, char *argv[])
{
@ -142,7 +149,8 @@ main(int argc, char *argv[])
if (argc < 0)
exit(1);
while ((ch = getopt(argc, argv, "abcgHhiklmnPt:T,")) != -1)
while ((ch = getopt_long(argc, argv, "+abcgHhiklmnPt:T,", long_options,
NULL)) != -1)
switch (ch) {
case 'a':
aflag = 1;

View file

@ -6,8 +6,6 @@
PACKAGE=runtime
PROG= echo
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -12,8 +12,6 @@ CFLAGS+= -fwrapv
NO_WMISSING_VARIABLE_DECLARATIONS=
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -10,8 +10,6 @@ MAN= ln.1 symlink.7
LINKS= ${BINDIR}/ln ${BINDIR}/link
MLINKS= ln.1 link.1
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -14,8 +14,6 @@ CFLAGS+= -DCOLORLS
LIBADD+= termcapw
.endif
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -6,8 +6,6 @@
PACKAGE=runtime
PROG= mv
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -33,8 +33,6 @@ SRCS= ar_io.c ar_subs.c buf_subs.c cache.c cpio.c file_subs.c ftree.c \
gen_subs.c getoldopt.c options.c pat_rep.c pax.c sel_subs.c \
tables.c tar.c tty_subs.c
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -19,8 +19,6 @@ MLINKS= pkill.1 pgrep.1
SYMLINKS= ../..${BINDIR}/pkill /usr/bin/pkill
SYMLINKS+= ../..${BINDIR}/pgrep /usr/bin/pgrep
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$");
#include <sys/user.h>
#include <assert.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
@ -656,10 +657,12 @@ killact(const struct kinfo_proc *kp)
static int
grepact(const struct kinfo_proc *kp)
{
static bool first = true;
show_process(kp);
if (!quiet)
if (!quiet && !first)
printf("%s", delim);
show_process(kp);
first = false;
return (1);
}

View file

@ -64,8 +64,6 @@ syntax.c syntax.h: mksyntax
token.h: mktokens
sh ${.CURDIR}/mktokens
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -6,8 +6,6 @@
PACKAGE=runtime
PROG= sleep
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -8,8 +8,6 @@ PROG= test
LINKS= ${BINDIR}/test ${BINDIR}/[
MLINKS= test.1 [.1
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>

View file

@ -5,9 +5,7 @@
SUBDIR= lib .WAIT \
sbin usr.bin usr.sbin
.if ${MK_TESTS} != "no"
SUBDIR+=tests
.endif
SUBDIR.${MK_TESTS}+= tests
SUBDIR_PARALLEL=

View file

@ -1,4 +1,4 @@
#!/bin/ksh -p
#!/usr/bin/env ksh -p
/*
* CDDL HEADER START

View file

@ -38,6 +38,14 @@
##
reader()
{
while true
do
sleep 0.1
cat /etc/motd > /dev/null
done
}
if [ $# != 1 ]; then
echo expected one argument: '<'dtrace-path'>'
@ -46,6 +54,9 @@ fi
dtrace=$1
reader &
child=$!
$dtrace -qwf read'{chill(15); printf("Done chilling"); exit(0);}'
status=$?
@ -53,4 +64,6 @@ if [ "$status" -ne 0 ]; then
echo $tst: dtrace failed
fi
kill $child
exit $status

View file

@ -39,6 +39,15 @@
##
reader()
{
while true
do
sleep 0.1
cat /etc/motd > /dev/null
done
}
if [ $# != 1 ]; then
echo expected one argument: '<'dtrace-path'>'
exit 2
@ -46,6 +55,9 @@ fi
dtrace=$1
reader &
child=$!
$dtrace -qZf wassup'{printf("Iamkool");}' \
-qf read'{printf("I am done"); exit(0);}'
@ -55,4 +67,6 @@ if [ "$status" -ne 0 ]; then
echo $tst: dtrace failed
fi
kill $child
exit $status

View file

@ -27,6 +27,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
#pragma D option quiet
#pragma D option dynvarsize=2m
/*
* This test verifies that the basename() and dirname() functions are working
@ -54,12 +55,16 @@ BEGIN
dir[i++] = "f";
dir[i++] = "f/";
dir[i++] = "/////";
/*
* basename(3) and basename(1) return different results for the empty
* string on FreeBSD, so we need special handling.
dir[i++] = "";
*/
end = i;
i = 0;
printf("#!/usr/bin/ksh\n\n");
printf("#!/usr/bin/env ksh\n\n");
}
tick-1ms
@ -83,5 +88,19 @@ tick-1ms
tick-1ms
/i == end/
{
dir[i] = "";
printf("if [ \"`basename \"%s\"`\" != \"%s\" -a \".\" != \"%s\" ]; then\n",
dir[i], basename(dir[i]), basename(dir[i]));
printf(" echo \"basename(\\\"%s\\\") is \\\"%s\\\"; ",
dir[i], basename(dir[i]));
printf("expected \\\"`basename \"%s\"`\\\" or \\\".\\\"\"\n", dir[i]);
printf("fi\n\n");
printf("if [ `dirname \"%s\"` != \"%s\" ]; then\n",
dir[i], dirname(dir[i]));
printf(" echo \"dirname(\\\"%s\\\") is \\\"%s\\\"; ",
dir[i], dirname(dir[i]));
printf("expected \\\"`dirname \"%s\"`\"\\\"\n", dir[i]);
printf("fi\n\n");
exit(0);
}

View file

@ -1,4 +1,4 @@
#!/usr/bin/ksh
#!/usr/bin/env ksh
if [ `basename "/foo/bar/baz"` != "baz" ]; then
echo "basename(\"/foo/bar/baz\") is \"baz\"; expected \"`basename "/foo/bar/baz"`"\"
@ -152,8 +152,8 @@ if [ `dirname "/////"` != "/" ]; then
echo "dirname(\"/////\") is \"/\"; expected \"`dirname "/////"`"\"
fi
if [ `basename ""` != "." ]; then
echo "basename(\"\") is \".\"; expected \"`basename ""`"\"
if [ "`basename ""`" != "." -a "." != "." ]; then
echo "basename(\"\") is \".\"; expected \"`basename ""`\" or \".\""
fi
if [ `dirname ""` != "." ]; then

View file

@ -27,6 +27,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
#pragma D option quiet
#pragma D option dynvarsize=2m
BEGIN
{

View file

@ -31,11 +31,12 @@ fi
dtrace=$1
$dtrace -ln 'syscall::*$1:entry' read | awk '{print $(NF-1),$NF}' | sort
$dtrace -ln 'syscall::$1*:entry' read | awk '{print $(NF-1),$NF}' | sort
$dtrace -ln 'syscall::re$1*:entry' ad | awk '{print $(NF-1),$NF}' | sort
$dtrace -ln 'syscall::$1l*:entry' read | awk '{print $(NF-1),$NF}' | sort
$dtrace -ln 'syscall::p$1[0-9][0-9]:entry' read | awk '{print $(NF-1),$NF}' | \
sort
$dtrace -ln 'syscall:freebsd:*$1:entry' read | \
awk '{print $(NF-1),$NF}' | grep -v -E 'compat.\.' | sort
$dtrace -ln 'syscall:freebsd:$1*:entry' read | awk '{print $(NF-1),$NF}' | sort
$dtrace -ln 'syscall:freebsd:re$1*:entry' ad | awk '{print $(NF-1),$NF}' | sort
$dtrace -ln 'syscall:freebsd:$1l*:entry' read | awk '{print $(NF-1),$NF}' | sort
$dtrace -ln 'syscall:freebsd:w$1[0-9]:entry' ait | \
awk '{print $(NF-1),$NF}' | sort
exit $status

View file

@ -1,15 +1,22 @@
FUNCTION NAME
aio_read entry
obs_vread entry
pread entry
read entry
rtprio_thread entry
FUNCTION NAME
read entry
readlink entry
readlinkat entry
readv entry
FUNCTION NAME
read entry
readlink entry
readlinkat entry
readv entry
FUNCTION NAME
readlink entry
readlinkat entry
FUNCTION NAME
pread64 entry
wait4 entry
wait6 entry

View file

@ -0,0 +1,47 @@
/*
* 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 2017 Li-Wen Hsu <lwhsu@FreeBSD.org>
*/
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
int
main(void)
{
sigset_t set;
siginfo_t info;
struct timespec timeout;
(void)sigemptyset(&set);
(void)sigaddset(&set, SIGHUP);
timeout.tv_sec = 1;
timeout.tv_nsec = 0;
for (;;)
(void)sigtimedwait(&set, &info, &timeout);
return (0);
}

View file

@ -45,6 +45,7 @@ BEGIN
}
syscall::*wait*:entry
/pid == $1/
{
exit(0);
}

View file

@ -39,6 +39,7 @@
BEGIN
{
i = 0;
notused = $1;
}
syscall::open:entry

View file

@ -0,0 +1,30 @@
#!/usr/bin/env ksh
#
# 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 2017 Li-Wen Hsu <lwhsu@FreeBSD.org>
while true
do
sleep 0.1
cat /etc/motd > /dev/null
done

View file

@ -48,7 +48,6 @@
#include <kstat.h>
#else
#include <sys/elf.h>
#include <sys/ksyms.h>
#include <sys/param.h>
#include <sys/module.h>
#include <sys/linker.h>
@ -175,10 +174,6 @@ symtab_init(void)
int fd;
int i;
int strindex = -1;
#ifndef illumos
void *ksyms;
size_t sz;
#endif
#ifndef illumos
if ((fd = open("/dev/ksyms", O_RDONLY)) == -1) {
@ -194,33 +189,9 @@ symtab_init(void)
return (-1);
#endif
#ifdef illumos
(void) elf_version(EV_CURRENT);
elf = elf_begin(fd, ELF_C_READ, NULL);
#else
/*
* XXX - libelf needs to be fixed so it will work with
* non 'ordinary' files like /dev/ksyms. The following
* is a work around for now.
*/
if (elf_version(EV_CURRENT) == EV_NONE) {
close(fd);
return (-1);
}
if (ioctl(fd, KIOCGSIZE, &sz) < 0) {
close(fd);
return (-1);
}
if (ioctl(fd, KIOCGADDR, &ksyms) < 0) {
close(fd);
return (-1);
}
if ((elf = elf_memory(ksyms, sz)) == NULL) {
close(fd);
return (-1);
}
#endif
for (cnt = 1; (scn = elf_nextscn(elf, scn)) != NULL; cnt++) {
Shdr *shdr = elf_getshdr(scn);

View file

@ -1838,7 +1838,6 @@ ztest_get_data(void *arg, lr_write_t *lr, char *buf, zio_t *zio)
uint64_t object = lr->lr_foid;
uint64_t offset = lr->lr_offset;
uint64_t size = lr->lr_length;
blkptr_t *bp = &lr->lr_blkptr;
uint64_t txg = lr->lr_common.lrc_txg;
uint64_t crtxg;
dmu_object_info_t doi;
@ -1892,11 +1891,7 @@ ztest_get_data(void *arg, lr_write_t *lr, char *buf, zio_t *zio)
DMU_READ_NO_PREFETCH);
if (error == 0) {
blkptr_t *obp = dmu_buf_get_blkptr(db);
if (obp) {
ASSERT(BP_IS_HOLE(bp));
*bp = *obp;
}
blkptr_t *bp = &lr->lr_blkptr;
zgd->zgd_db = db;
zgd->zgd_bp = bp;

View file

@ -250,7 +250,7 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
dofr[j].dofr_offset + 4;
rel->r_info = ELF32_R_INFO(count + dep->de_global,
R_PPC_REL32);
#elif defined(__riscv__)
#elif defined(__riscv)
/* XXX */
printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__);
#else
@ -430,7 +430,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, dof_elf64_t *dep)
dofr[j].dofr_offset;
rel->r_info = ELF64_R_INFO(count + dep->de_global,
R_PPC64_REL64);
#elif defined(__riscv__)
#elif defined(__riscv)
/* XXX */
#elif defined(__i386) || defined(__amd64)
rel->r_offset = s->dofs_offset +
@ -904,7 +904,7 @@ dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela,
return (0);
}
#elif defined(__riscv__)
#elif defined(__riscv)
/* XXX */
static int
dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela,

View file

@ -311,7 +311,7 @@ pfprint_fp(dtrace_hdl_t *dtp, FILE *fp, const char *format,
return (dt_printf(dtp, fp, format,
*((double *)addr) / n));
#if !defined(__arm__) && !defined(__powerpc__) && \
!defined(__mips__) && !defined(__riscv__)
!defined(__mips__) && !defined(__riscv)
case sizeof (long double):
return (dt_printf(dtp, fp, format,
*((long double *)addr) / ldn));

View file

@ -74,6 +74,9 @@ zcmd_ioctl(int fd, int request, zfs_cmd_t *zc)
if (zfs_ioctl_version >= ZFS_IOCVER_DEADMAN) {
switch (zfs_ioctl_version) {
case ZFS_IOCVER_INLANES:
cflag = ZFS_CMD_COMPAT_INLANES;
break;
case ZFS_IOCVER_RESUME:
cflag = ZFS_CMD_COMPAT_RESUME;
break;

View file

@ -103,7 +103,6 @@ zfs_validate_name(libzfs_handle_t *hdl, const char *path, int type,
namecheck_err_t why;
char what;
(void) zfs_prop_get_table();
if (entity_namecheck(path, &why, &what) != 0) {
if (hdl != NULL) {
switch (why) {
@ -3958,14 +3957,19 @@ zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap, boolean_t force)
}
/*
* We rely on zfs_iter_children() to verify that there are no
* newer snapshots for the given dataset. Therefore, we can
* simply pass the name on to the ioctl() call. There is still
* an unlikely race condition where the user has taken a
* snapshot since we verified that this was the most recent.
* Pass both the filesystem and the wanted snapshot names,
* we would get an error back if the snapshot is destroyed or
* a new snapshot is created before this request is processed.
*/
err = lzc_rollback(zhp->zfs_name, NULL, 0);
if (err != 0) {
err = lzc_rollback_to(zhp->zfs_name, snap->zfs_name);
if (err == EXDEV) {
zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN,
"'%s' is not the latest snapshot"), snap->zfs_name);
(void) zfs_error_fmt(zhp->zfs_hdl, EZFS_BUSY,
dgettext(TEXT_DOMAIN, "cannot rollback '%s'"),
zhp->zfs_name);
return (err);
} else if (err != 0) {
(void) zfs_standard_error_fmt(zhp->zfs_hdl, errno,
dgettext(TEXT_DOMAIN, "cannot rollback '%s'"),
zhp->zfs_name);

View file

@ -765,6 +765,9 @@ lzc_receive_with_header(const char *snapname, nvlist_t *props,
* Roll back this filesystem or volume to its most recent snapshot.
* If snapnamebuf is not NULL, it will be filled in with the name
* of the most recent snapshot.
* Note that the latest snapshot may change if a new one is concurrently
* created or the current one is destroyed. lzc_rollback_to can be used
* to roll back to a specific latest snapshot.
*
* Return 0 on success or an errno on failure.
*/
@ -787,6 +790,27 @@ lzc_rollback(const char *fsname, char *snapnamebuf, int snapnamelen)
return (err);
}
/*
* Roll back this filesystem or volume to the specified snapshot,
* if possible.
*
* Return 0 on success or an errno on failure.
*/
int
lzc_rollback_to(const char *fsname, const char *snapname)
{
nvlist_t *args;
nvlist_t *result;
int err;
args = fnvlist_alloc();
fnvlist_add_string(args, "target", snapname);
err = lzc_ioctl(ZFS_IOC_ROLLBACK, fsname, args, &result);
nvlist_free(args);
nvlist_free(result);
return (err);
}
/*
* Creates bookmarks.
*

View file

@ -84,6 +84,7 @@ int lzc_receive_with_header(const char *, nvlist_t *, const char *, boolean_t,
boolean_t lzc_exists(const char *);
int lzc_rollback(const char *, char *, int);
int lzc_rollback_to(const char *, const char *);
#ifdef __cplusplus
}

View file

@ -12,11 +12,8 @@ SUBDIR= ${_drti} \
${_libzfs_core} \
${_libzfs} \
${_libzpool} \
${_tests}
.if ${MK_TESTS} != "no"
_tests= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.if ${MK_ZFS} != "no"
_libzfs_core= libzfs_core

View file

@ -2,11 +2,9 @@
.include <src.opts.mk>
SUBDIR= ${_tests} ${_zfs} ${_zpool}
SUBDIR= ${_zfs} ${_zpool}
.if ${MK_TESTS} != "no"
_tests= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.if ${MK_ZFS} != "no"
_zfs= zfs

View file

@ -6,15 +6,12 @@ SUBDIR= \
ctfconvert \
ctfdump \
ctfmerge \
${_tests} \
${_zinject} \
${_zlook} \
${_zstreamdump} \
${_ztest}
.if ${MK_TESTS} != "no"
_tests= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.if ${MK_ZFS} != "no"
_zinject= zinject

View file

@ -5,14 +5,11 @@
SUBDIR= ${_dtrace} \
${_lockstat} \
${_plockstat} \
${_tests} \
${_zdb} \
${_zfsd} \
${_zhack}
.if ${MK_TESTS} != "no"
_tests= tests
.endif
SUBDIR.${MK_TESTS}+= tests
.if ${MK_ZFS} != "no"
.if ${MK_LIBTHR} != "no"

View file

@ -32,6 +32,7 @@ TESTEXES= \
CFILES= \
tst.probestar.c \

View file

@ -68,6 +68,7 @@ ${PACKAGE}FILES= \
tst.zerosize.d \
TESTEXES= \
tst.NoSpecBuffer.exe \
CFILES= \

View file

@ -1,3 +1,5 @@
#!/bin/sh
# $FreeBSD$
usage()
@ -84,6 +86,12 @@ runtest()
;;
esac
if [ $retval -eq 0 ] && \
head -n 1 $STDOUT | grep -q -E '^#!/.*ksh$'; then
ksh $STDOUT
retval=$?
fi
return $retval
}

View file

@ -1,3 +1,10 @@
2017-07-20 Simon J. Gerraty <sjg@bad.crufty.net>
* Makefile (_MAKE_VERSION): 20170720
Merge with NetBSD make, pick up
o compat.c: pass SIGINT etc onto child and wait for it to exit
before we self-terminate.
2017-07-11 Simon J. Gerraty <sjg@bad.crufty.net>
* Makefile (_MAKE_VERSION): 20170711

View file

@ -1,7 +1,7 @@
# $Id: Makefile,v 1.94 2017/07/15 18:22:14 sjg Exp $
# $Id: Makefile,v 1.95 2017/07/20 19:36:13 sjg Exp $
# Base version on src date
_MAKE_VERSION= 20170711
_MAKE_VERSION= 20170720
PROG= bmake

View file

@ -1,4 +1,4 @@
/* $NetBSD: compat.c,v 1.106 2016/08/26 23:28:39 dholland Exp $ */
/* $NetBSD: compat.c,v 1.107 2017/07/20 19:29:54 sjg Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@ -70,14 +70,14 @@
*/
#ifndef MAKE_NATIVE
static char rcsid[] = "$NetBSD: compat.c,v 1.106 2016/08/26 23:28:39 dholland Exp $";
static char rcsid[] = "$NetBSD: compat.c,v 1.107 2017/07/20 19:29:54 sjg Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)compat.c 8.2 (Berkeley) 3/19/94";
#else
__RCSID("$NetBSD: compat.c,v 1.106 2016/08/26 23:28:39 dholland Exp $");
__RCSID("$NetBSD: compat.c,v 1.107 2017/07/20 19:29:54 sjg Exp $");
#endif
#endif /* not lint */
#endif
@ -118,6 +118,8 @@ __RCSID("$NetBSD: compat.c,v 1.106 2016/08/26 23:28:39 dholland Exp $");
static GNode *curTarg = NULL;
static GNode *ENDNode;
static void CompatInterrupt(int);
static pid_t compatChild;
static int compatSigno;
/*
* CompatDeleteTarget -- delete a failed, interrupted, or otherwise
@ -176,8 +178,17 @@ CompatInterrupt(int signo)
}
if (signo == SIGQUIT)
_exit(signo);
/*
* If there is a child running, pass the signal on
* we will exist after it has exited.
*/
compatSigno = signo;
if (compatChild > 0) {
KILLPG(compatChild, signo);
} else {
bmake_signal(signo, SIG_DFL);
kill(myPid, signo);
}
}
/*-
@ -370,7 +381,7 @@ CompatRunCommand(void *cmdp, void *gnp)
/*
* Fork and execute the single command. If the fork fails, we abort.
*/
cpid = vFork();
compatChild = cpid = vFork();
if (cpid < 0) {
Fatal("Could not fork");
}
@ -483,6 +494,11 @@ CompatRunCommand(void *cmdp, void *gnp)
}
}
free(cmdStart);
compatChild = 0;
if (compatSigno) {
bmake_signal(compatSigno, SIG_DFL);
kill(myPid, compatSigno);
}
return (status);
}

View file

@ -1,4 +1,4 @@
/* $NetBSD: job.c,v 1.190 2017/04/16 21:23:43 riastradh Exp $ */
/* $NetBSD: job.c,v 1.191 2017/07/20 19:29:54 sjg Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@ -70,14 +70,14 @@
*/
#ifndef MAKE_NATIVE
static char rcsid[] = "$NetBSD: job.c,v 1.190 2017/04/16 21:23:43 riastradh Exp $";
static char rcsid[] = "$NetBSD: job.c,v 1.191 2017/07/20 19:29:54 sjg Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)job.c 8.2 (Berkeley) 3/19/94";
#else
__RCSID("$NetBSD: job.c,v 1.190 2017/04/16 21:23:43 riastradh Exp $");
__RCSID("$NetBSD: job.c,v 1.191 2017/07/20 19:29:54 sjg Exp $");
#endif
#endif /* not lint */
#endif
@ -364,11 +364,6 @@ static Job childExitJob; /* child exit pseudo-job */
(void)fprintf(fp, TARG_FMT, targPrefix, gn->name)
static sigset_t caught_signals; /* Set of signals we handle */
#if defined(SYSV)
#define KILLPG(pid, sig) kill(-(pid), (sig))
#else
#define KILLPG(pid, sig) killpg((pid), (sig))
#endif
static void JobChildSig(int);
static void JobContinueSig(int);

View file

@ -1,4 +1,4 @@
/* $NetBSD: make.h,v 1.102 2016/12/07 15:00:46 christos Exp $ */
/* $NetBSD: make.h,v 1.103 2017/07/20 19:29:54 sjg Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@ -543,4 +543,10 @@ int cached_stat(const char *, void *);
#define PATH_MAX MAXPATHLEN
#endif
#if defined(SYSV)
#define KILLPG(pid, sig) kill(-(pid), (sig))
#else
#define KILLPG(pid, sig) killpg((pid), (sig))
#endif
#endif /* _MAKE_H_ */

View file

@ -143,6 +143,11 @@ int Str_Match(const char *, const char *);
char *Str_SYSVMatch(const char *, const char *, int *len);
void Str_SYSVSubst(Buffer *, char *, char *, int);
#ifndef HAVE_STRLCPY
/* strlcpy.c */
size_t strlcpy(char *, const char *, size_t);
#endif
/* suff.c */
void Suff_ClearSuffixes(void);
Boolean Suff_IsTransform(char *);

View file

@ -92,7 +92,7 @@
* does not have dedicated bit counting instructions.
*/
#if defined(__FreeBSD__) && (defined(__sparc64__) || \
defined(__mips_n64) || defined(__mips_o64) || defined(__riscv__))
defined(__mips_n64) || defined(__mips_o64) || defined(__riscv))
si_int __clzsi2(si_int);
si_int __ctzsi2(si_int);
#define __builtin_clz __clzsi2

View file

@ -83,7 +83,7 @@ namespace __sanitizer {
#elif defined(__powerpc64__)
const unsigned struct_kernel_stat_sz = 144;
const unsigned struct_kernel_stat64_sz = 104;
#elif defined(__riscv__)
#elif defined(__riscv)
/* RISCVTODO: check that these values are correct */
const unsigned struct_kernel_stat_sz = 128;
const unsigned struct_kernel_stat64_sz = 128;
@ -126,7 +126,7 @@ namespace __sanitizer {
#if SANITIZER_LINUX || SANITIZER_FREEBSD
#if defined(__powerpc64__) || defined(__riscv__) || defined(__s390__)
#if defined(__powerpc64__) || defined(__riscv) || defined(__s390__)
const unsigned struct___old_kernel_stat_sz = 0;
#elif !defined(__sparc__)
const unsigned struct___old_kernel_stat_sz = 32;
@ -554,7 +554,7 @@ namespace __sanitizer {
typedef long __sanitizer___kernel_off_t;
#endif
#if defined(__powerpc__) || defined(__mips__) || defined(__riscv__)
#if defined(__powerpc__) || defined(__mips__) || defined(__riscv)
typedef unsigned int __sanitizer___kernel_old_uid_t;
typedef unsigned int __sanitizer___kernel_old_gid_t;
#else

View file

@ -97,7 +97,7 @@
#define LIBELF_BYTEORDER ELFDATA2MSB
#define LIBELF_CLASS ELFCLASS32
#elif defined(__riscv64)
#elif defined(__riscv) && (__riscv_xlen == 64)
#define LIBELF_ARCH EM_RISCV
#define LIBELF_BYTEORDER ELFDATA2LSB

View file

@ -0,0 +1,79 @@
#!/bin/sh
#
# If transparent VF is enabled, don't do anything.
#
sysctl -n hw.hn.vf_transparent > /dev/null 2>&1
if [ $? -ne 0 ]
then
# Old kernel; no transparent VF.
vf_transparent=0
else
vf_transparent=`sysctl -n hw.hn.vf_transparent`
fi
if [ $vf_transparent -ne 0 ]
then
# Transparent VF; done!
exit 0
fi
iface=$1
delay=$2
if [ $delay -gt 0 ]
then
#
# Delayed VF up.
#
sleep $delay
ifconfig $iface up
# Done!
exit $?
fi
#
# Check to see whether $iface is a VF or not.
# If $iface is a VF, bring it up now.
#
# for hyperv_vf_delay
. /etc/rc.conf
sysctl -n hw.hn.vflist > /dev/null 2>&1
if [ $? -ne 0 ]
then
# Old kernel; nothing could be done properly.
exit 0
fi
vf_list=`sysctl -n hw.hn.vflist`
for vf in $vf_list
do
if [ $vf = $iface ]
then
#
# Linger a little bit (at least 2 seconds) mainly to
# make sure that $iface is fully attached.
#
# NOTE:
# In Azure hyperv_vf_delay should be configured to a
# large value, e.g. 120 seconds, to avoid racing cloud
# agent goofs.
#
test $hyperv_vf_delay -ge 2 > /dev/null 2>&1
if [ $? -ne 0 ]
then
hyperv_vf_delay=2
fi
#
# NOTE:
# "(sleep ..; ifconfig .. up) > /dev/null 2>&1 &"
# does _not_ work.
#
daemon -f /usr/libexec/hyperv/hyperv_vfattach \
$iface $hyperv_vf_delay
break
fi
done

View file

@ -0,0 +1,119 @@
#!/bin/sh
. /etc/rc.subr
. /etc/network.subr
load_rc_config netif
#
# Customized per-interface setup, e.g. hyperv_vfup.hn1
#
# NOTE-CUSTOMIZE:
# Comment this out, if this script is used as template
# for the customized per-interface setup.
#
if [ -f /usr/libexec/hyperv/hyperv_vfup.$1 ]
then
/usr/libexec/hyperv/hyperv_vfup.$1
exit $?
fi
# NOTE-CUSTOMIZE:
#hn=${0##*.}
hn=$1
hn_unit=`echo $hn | sed 's/[^0-9]*//g'`
vf=`sysctl -n dev.hn.$hn_unit.vf`
if [ ! $vf ]
then
# Race happened; VF was removed, before we ran.
echo "$hn: VF was detached"
exit 0
fi
#
# Create laggX for hnX.
# Add VF and hnX to laggX.
#
lagg=lagg$hn_unit
ifconfig $lagg > /dev/null 2>&1
if [ $? -ne 0 ]
then
#
# No laggX, create it now.
#
ifconfig $lagg create > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "$lagg creation failed"
exit 1
fi
#
# Configure laggX (failover), add hnX and VF to it.
#
ifconfig $lagg laggproto failover laggport $hn laggport $vf
ifconfig $lagg inet6 no_dad
#
# Stop dhclient on hnX, if any.
#
pidfile=/var/run/dhclient.$hn.pid
if [ -f $pidfile ]
then
kill -TERM `cat $pidfile`
fi
#
# Remove all configured IPv4 addresses on hnX, e.g.
# configured by dhclient. laggX will take over the
# network operations.
#
while true
do
ifconfig $hn -alias > /dev/null 2>&1
if [ $? -ne 0 ]
then
break
fi
done
# TODO: Remove IPv6 addresses on hnX
#
# Use hnX's configuration for laggX
#
# NOTE-CUSTOMIZE:
# If this script is used as template for the customized
# per-interface setup, replace this with whatever you
# want to do with the laggX.
#
if dhcpif $hn;
then
ifconfig $lagg up
if syncdhcpif $hn;
then
dhclient $lagg
else
dhclient -b $lagg
fi
else
ifconfig_args=`ifconfig_getargs $hn`
if [ -n "$ifconfig_args" ]
then
ifconfig $lagg $ifconfig_args
fi
fi
else
#
# laggX exists. Check whether VF was there or not.
# If VF was not added to laggX, add it now.
#
ifconfig $lagg | grep "laggport: $vf" > /dev/null 2>&1
if [ $? -ne 0 ]
then
ifconfig $lagg laggport $vf
fi
fi

View file

@ -109,9 +109,9 @@ arc4_randomstir (void)
/*
* Throw away the first N words of output, as suggested in the
* paper "Weaknesses in the Key Scheduling Algorithm of RC4"
* by Fluher, Mantin, and Shamir. (N = 256 in our case.)
* by Fluher, Mantin, and Shamir. (N = 768 in our case.)
*/
for (n = 0; n < 256*4; n++)
for (n = 0; n < 768*4; n++)
arc4_randbyte();
MUTEX_EXIT(&arc4_mtx);
}

View file

@ -77,7 +77,7 @@ usage(prog)
fprintf(stderr, "Usage:\t%s\n", prog);
fprintf(stderr, "\t-a [-dnv] -m <name> [-o <role>] [-t type] [-T ttl] -i <ipaddr>[/netmask]\n");
fprintf(stderr, "\t-A [-dnv] [-m <name>] [-o <role>] [-S <seed>] [-t <type>]\n");
fprintf(stderr, "\t-f <file> [-dnuv]\n");
fprintf(stderr, "\t-f <file> [-dnuvR]\n");
fprintf(stderr, "\t-F [-dv] [-o <role>] [-t <type>]\n");
fprintf(stderr, "\t-l [-dv] [-m <name>] [-t <type>] [-o <role>] [-M <core>] [-N <namelist>]\n");
fprintf(stderr, "\t-r [-dnv] [-m <name>] [-o <role>] [-t type] -i <ipaddr>[/netmask]\n");

View file

@ -88,7 +88,7 @@ typedef int malloc_cpuid_t;
# ifdef __powerpc__
# define LG_QUANTUM 4
# endif
# ifdef __riscv__
# ifdef __riscv
# define LG_QUANTUM 4
# endif
# ifdef __s390__

View file

@ -1,19 +1,13 @@
#ifndef JEMALLOC_INTERNAL_SPIN_H
#define JEMALLOC_INTERNAL_SPIN_H
#ifdef JEMALLOC_SPIN_C_
# define SPIN_INLINE extern inline
#else
# define SPIN_INLINE inline
#endif
#define SPIN_INITIALIZER {0U}
typedef struct {
unsigned iteration;
} spin_t;
SPIN_INLINE void
static inline void
spin_adaptive(spin_t *spin) {
volatile uint32_t i;

View file

@ -67,7 +67,7 @@
# define LG_VADDR 32
# define LG_SIZEOF_PTR 2
#endif
#ifdef __riscv__
#ifdef __riscv
# define LG_VADDR 64
# define LG_SIZEOF_PTR 3
#endif

View file

@ -1,4 +0,0 @@
#define JEMALLOC_SPIN_C_
#include "jemalloc/internal/jemalloc_preamble.h"
#include "jemalloc/internal/spin.h"

View file

@ -64,7 +64,7 @@ typedef struct {
} archive_crypto_ctx;
#elif defined(_WIN32) && !defined(__CYGWIN__) && defined(HAVE_BCRYPT_H)
#include <Bcrypt.h>
#include <bcrypt.h>
/* Common in other bcrypt implementations, but missing from VS2008. */
#ifndef BCRYPT_SUCCESS

View file

@ -374,13 +374,14 @@ archive_write_ar_data(struct archive_write *a, const void *buff, size_t s)
return (ARCHIVE_WARN);
}
ar->strtab = (char *)malloc(s);
ar->strtab = (char *)malloc(s + 1);
if (ar->strtab == NULL) {
archive_set_error(&a->archive, ENOMEM,
"Can't allocate strtab buffer");
return (ARCHIVE_FATAL);
}
strncpy(ar->strtab, buff, s);
memcpy(ar->strtab, buff, s);
ar->strtab[s] = '\0';
ar->has_strtab = 1;
}

View file

@ -15,6 +15,10 @@
#ifndef _LIBCPP_BSD_LOCALE_DEFAULTS_H
#define _LIBCPP_BSD_LOCALE_DEFAULTS_H
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
#endif
#define __libcpp_mb_cur_max_l(loc) MB_CUR_MAX_L(loc)
#define __libcpp_btowc_l(ch, loc) btowc_l(ch, loc)
#define __libcpp_wctob_l(wch, loc) wctob_l(wch, loc)

View file

@ -18,6 +18,10 @@
#include <stdarg.h>
#include <memory>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
#endif
_LIBCPP_BEGIN_NAMESPACE_STD
inline _LIBCPP_ALWAYS_INLINE

View file

@ -34,7 +34,7 @@
# include <support/solaris/xlocale.h>
#elif defined(_NEWLIB_VERSION)
# include <support/newlib/xlocale.h>
#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) \
#elif (defined(__APPLE__) || defined(__FreeBSD__) \
|| defined(__EMSCRIPTEN__) || defined(__IBMCPP__))
# include <xlocale.h>
#elif defined(__Fuchsia__)

View file

@ -116,7 +116,7 @@ public:
using mutex_type = Mutex; // If MutexTypes... consists of the single type Mutex
explicit scoped_lock(MutexTypes&... m);
scoped_lock(MutexTypes&... m, adopt_lock_t);
scoped_lock(adopt_lock_t, MutexTypes&... m);
~scoped_lock();
scoped_lock(scoped_lock const&) = delete;
scoped_lock& operator=(scoped_lock const&) = delete;
@ -500,7 +500,7 @@ public:
~scoped_lock() _LIBCPP_THREAD_SAFETY_ANNOTATION(release_capability()) {__m_.unlock();}
_LIBCPP_INLINE_VISIBILITY
explicit scoped_lock(mutex_type& __m, adopt_lock_t) _LIBCPP_THREAD_SAFETY_ANNOTATION(requires_capability(__m))
explicit scoped_lock(adopt_lock_t, mutex_type& __m) _LIBCPP_THREAD_SAFETY_ANNOTATION(requires_capability(__m))
: __m_(__m) {}
scoped_lock(scoped_lock const&) = delete;
@ -522,7 +522,7 @@ public:
}
_LIBCPP_INLINE_VISIBILITY
scoped_lock(_MArgs&... __margs, adopt_lock_t)
scoped_lock(adopt_lock_t, _MArgs&... __margs)
: __t_(__margs...)
{
}

View file

@ -249,7 +249,8 @@ basic_stringbuf<_CharT, _Traits, _Allocator>::basic_stringbuf(ios_base::openmode
template <class _CharT, class _Traits, class _Allocator>
basic_stringbuf<_CharT, _Traits, _Allocator>::basic_stringbuf(const string_type& __s,
ios_base::openmode __wch)
: __hm_(0),
: __str_(__s.get_allocator()),
__hm_(0),
__mode_(__wch)
{
str(__s);

View file

@ -38,7 +38,14 @@ GH_PAGES_DIR = gh-pages/
GH_PAGES_DIR_VER = gh-pages/${PACKAGE_VERSION}
PACKAGE_FILE = ${PACKAGE_TARNAME}-${PACKAGE_VERSION}.tar.gz
upload: dist upload-docs
XOHTML_FILES = \
${top_srcdir}/xohtml/xohtml.css \
${top_srcdir}/xohtml/xohtml.js \
${top_srcdir}/xohtml/external/jquery.js \
${top_srcdir}/xohtml/external/jquery.qtip.css \
${top_srcdir}/xohtml/external/jquery.qtip.js
upload: dist upload-docs upload-xohtml-files
@echo "Remember to run:"
@echo " gt tag ${PACKAGE_VERSION}"
@ -56,6 +63,18 @@ upload-docs: docs
libxo-manual.html ${PACKAGE_VERSION} \
&& git push origin gh-pages ) ; true
upload-xohtml-files:
@echo "Uploading xohtml files ... "
@-[ -d ${GH_PAGES_DIR} ] \
&& echo "Updating xohtml files on gh-pages ..." \
&& mkdir -p ${GH_PAGES_DIR_VER}/xohtml \
&& cp ${XOHTML_FILES} ${GH_PAGES_DIR_VER}/xohtml \
&& (cd ${GH_PAGES_DIR} \
&& git add ${PACKAGE_VERSION}/xohtml \
&& git commit -m 'new xohtml files' \
${PACKAGE_VERSION}/xohtml \
&& git push origin gh-pages ) ; true
pkgconfigdir=$(libdir)/pkgconfig
pkgconfig_DATA = packaging/${PACKAGE_NAME}.pc

View file

@ -12,7 +12,7 @@
#
AC_PREREQ(2.2)
AC_INIT([libxo], [0.8.1], [phil@juniper.net])
AC_INIT([libxo], [0.8.4], [phil@juniper.net])
AM_INIT_AUTOMAKE([-Wall -Werror foreign -Wno-portability])
# Support silent build rules. Requires at least automake-1.11.

View file

@ -515,7 +515,7 @@ li.indline1 {
}
@top-right {
content: "June 2017";
content: "August 2017";
}
@top-center {
@ -22011,7 +22011,7 @@ jQuery(function ($) {
</tr>
<tr>
<td class="header left"></td>
<td class="header right">June 14, 2017</td>
<td class="header right">August 3, 2017</td>
</tr>
</table></div>
<p id="title" class="title">libxo: The Easy Way to Generate text, XML, JSON, and HTML output<br><span class="filename">libxo-manual</span></p>

View file

@ -311,3 +311,13 @@ to use an alternative set of low-level output functions.
.Xr xo_set_style 3 ,
.Xr xo_set_writer 3 ,
.Xr xo_format 5
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -137,7 +137,7 @@ static const char xo_default_format[] = "%s";
#define XO_INDENT_BY 2 /* Amount to indent when pretty printing */
#define XO_DEPTH 128 /* Default stack depth */
#define XO_MAX_ANCHOR_WIDTH (8*1024) /* Anything wider is just sillyb */
#define XO_MAX_ANCHOR_WIDTH (8*1024) /* Anything wider is just silly */
#define XO_FAILURE_NAME "failure"
@ -5071,16 +5071,60 @@ xo_find_width (xo_handle_t *xop, xo_field_info_t *xfip,
bp[vlen] = '\0';
width = strtol(bp, &cp, 0);
if (width == LONG_MIN || width == LONG_MAX
|| bp == cp || *cp != '\0' ) {
if (width == LONG_MIN || width == LONG_MAX || bp == cp || *cp != '\0') {
width = 0;
xo_failure(xop, "invalid width for anchor: '%s'", bp);
}
} else if (flen) {
if (flen != 2 || strncmp("%d", fmt, flen) != 0)
xo_failure(xop, "invalid width format: '%*.*s'", flen, flen, fmt);
/*
* We really expect the format for width to be "{:/%d}" or
* "{:/%u}", so if that's the case, we just grab our width off
* the argument list. But we need to avoid optimized logic if
* there's a custom formatter.
*/
if (xop->xo_formatter == NULL && flen == 2
&& strncmp("%d", fmt, flen) == 0) {
if (!XOF_ISSET(xop, XOF_NO_VA_ARG))
width = va_arg(xop->xo_vap, int);
} else if (xop->xo_formatter == NULL && flen == 2
&& strncmp("%u", fmt, flen) == 0) {
if (!XOF_ISSET(xop, XOF_NO_VA_ARG))
width = va_arg(xop->xo_vap, unsigned);
} else {
/*
* So we have a format and it's not a simple one like
* "{:/%d}". That means we need to format the field,
* extract the value from the formatted output, and then
* discard that output.
*/
int anchor_was_set = FALSE;
xo_buffer_t *xbp = &xop->xo_data;
ssize_t start_offset = xo_buf_offset(xbp);
bp = xo_buf_cur(xbp); /* Save start of the string */
cp = NULL;
if (XOIF_ISSET(xop, XOIF_ANCHOR)) {
XOIF_CLEAR(xop, XOIF_ANCHOR);
anchor_was_set = TRUE;
}
ssize_t rc = xo_do_format_field(xop, xbp, fmt, flen, 0);
if (rc >= 0) {
xo_buf_append(xbp, "", 1); /* Append a NUL */
width = strtol(bp, &cp, 0);
if (width == LONG_MIN || width == LONG_MAX
|| bp == cp || *cp != '\0') {
width = 0;
xo_failure(xop, "invalid width for anchor: '%s'", bp);
}
}
/* Reset the cur pointer to where we found it */
xbp->xb_curp = xbp->xb_bufp + start_offset;
if (anchor_was_set)
XOIF_SET(xop, XOIF_ANCHOR);
}
}
return width;
@ -5107,9 +5151,6 @@ static void
xo_anchor_start (xo_handle_t *xop, xo_field_info_t *xfip,
const char *value, ssize_t vlen)
{
if (xo_style(xop) != XO_STYLE_TEXT && xo_style(xop) != XO_STYLE_HTML)
return;
if (XOIF_ISSET(xop, XOIF_ANCHOR))
xo_failure(xop, "the anchor already recording is discarded");
@ -5129,9 +5170,6 @@ static void
xo_anchor_stop (xo_handle_t *xop, xo_field_info_t *xfip,
const char *value, ssize_t vlen)
{
if (xo_style(xop) != XO_STYLE_TEXT && xo_style(xop) != XO_STYLE_HTML)
return;
if (!XOIF_ISSET(xop, XOIF_ANCHOR)) {
xo_failure(xop, "no start anchor");
return;

View file

@ -58,3 +58,13 @@ already emitted in other form.
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -65,3 +65,13 @@ resources associated with the default handle.
.Xr xo_emit 3 ,
.Xr xo_set_options 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -102,3 +102,13 @@ then the number of display columns consumed by the output will be returned.
.Xr xo_open_list 3 ,
.Xr xo_format 5 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -70,3 +70,13 @@ parameter.
.Xr xo_format 5 ,
.Xr xo_err 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -109,3 +109,13 @@ for details.
.Xr xo_open_list 3 ,
.Xr xo_format 5 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -72,3 +72,13 @@ parameter.
.Xr xo_emit 3 ,
.Xr xo_emit_err 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -39,3 +39,13 @@ calls.
.Xr printf 3 ,
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -37,3 +37,13 @@ especially for the non-TEXT output styles.
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -33,3 +33,13 @@ function is used for this.
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -965,3 +965,13 @@ names to make that difference more obvious.
.Xr libxo 3 ,
.Xr xolint 1 ,
.Xr xo_emit 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -66,3 +66,13 @@ and
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -41,3 +41,13 @@ function.
.Xr xo_open_list 3 ,
.Xr xo_format 5 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -186,3 +186,13 @@ and the name recorded do not match.
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -156,3 +156,13 @@ are rendered as multiple leaf elements.
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -103,3 +103,13 @@ properly.
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -145,3 +145,12 @@ The following are three example invocations of
.Sh SEE ALSO
.Xr libxo 3 ,
.Xr xo_format 5
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -150,3 +150,13 @@ must be maintained by the caller.
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -52,3 +52,13 @@ functions are used.
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -137,3 +137,13 @@ handle.
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

View file

@ -100,3 +100,13 @@ and "data-help" attributes:
.Sh SEE ALSO
.Xr xo_emit 3 ,
.Xr libxo 3
.Sh HISTORY
The
.Nm libxo
library first appeared in
.Fx 11.0 .
.Sh AUTHORS
.Nm libxo
was written by
.An Phil Shafer Aq Mt phil@freebsd.org .

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