Date: Fri, 12 Jan 2018 23:38:16 +0000 (UTC) From: Jeff Roberson <jeff@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327902 - in user/jeff/numa: . cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety cddl/contrib/opensolaris/lib/libdtrace/... Message-ID: <201801122338.w0CNcGkU004085@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jeff Date: Fri Jan 12 23:38:15 2018 New Revision: 327902 URL: https://svnweb.freebsd.org/changeset/base/327902 Log: Merge from head Added: user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh - copied unchanged from r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh.out - copied unchanged from r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh.out user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jailname.d - copied unchanged from r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jailname.d user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jid.d - copied unchanged from r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jid.d user/jeff/numa/sys/arm/arm/gic_acpi.c - copied unchanged from r327901, head/sys/arm/arm/gic_acpi.c user/jeff/numa/sys/arm64/arm64/gic_v3_acpi.c - copied unchanged from r327901, head/sys/arm64/arm64/gic_v3_acpi.c user/jeff/numa/sys/contrib/zstd/lib/freebsd/zstd_kfreebsd.c - copied unchanged from r327901, head/sys/contrib/zstd/lib/freebsd/zstd_kfreebsd.c user/jeff/numa/sys/dev/acpica/acpi_bus_if.m - copied unchanged from r327901, head/sys/dev/acpica/acpi_bus_if.m user/jeff/numa/sys/i386/i386/prof_machdep.c - copied unchanged from r327901, head/sys/i386/i386/prof_machdep.c user/jeff/numa/sys/powerpc/powernv/ - copied from r327901, head/sys/powerpc/powernv/ user/jeff/numa/tests/sys/geom/class/mirror/sync_error.sh - copied unchanged from r327901, head/tests/sys/geom/class/mirror/sync_error.sh user/jeff/numa/usr.bin/awk/tests/ - copied from r327901, head/usr.bin/awk/tests/ user/jeff/numa/usr.bin/clang/lld/ld.lld.1 - copied unchanged from r327901, head/usr.bin/clang/lld/ld.lld.1 user/jeff/numa/usr.bin/vmstat/tests/ - copied from r327901, head/usr.bin/vmstat/tests/ Deleted: user/jeff/numa/sys/i386/isa/ user/jeff/numa/sys/sys/_vm_domain.h user/jeff/numa/sys/sys/digiio.h user/jeff/numa/sys/vm/vm_domain.c user/jeff/numa/sys/vm/vm_domain.h user/jeff/numa/usr.sbin/digictl/ Modified: user/jeff/numa/Makefile.inc1 user/jeff/numa/Makefile.libcompat user/jeff/numa/ObsoleteFiles.inc user/jeff/numa/UPDATING user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_options.c user/jeff/numa/cddl/usr.sbin/dtrace/tests/common/env/Makefile user/jeff/numa/cddl/usr.sbin/dtrace/tests/common/safety/Makefile user/jeff/numa/contrib/gcc/unwind-dw2.c user/jeff/numa/contrib/llvm/lib/Support/Unix/Memory.inc user/jeff/numa/etc/mtree/BSD.tests.dist user/jeff/numa/include/stdlib.h user/jeff/numa/lib/libcasper/services/cap_dns/cap_dns.3 user/jeff/numa/sbin/camcontrol/camcontrol.c user/jeff/numa/sbin/dhclient/parse.c user/jeff/numa/share/man/man5/src.conf.5 user/jeff/numa/share/man/man9/Makefile user/jeff/numa/share/man/man9/malloc.9 user/jeff/numa/share/mk/src.opts.mk user/jeff/numa/share/mk/src.sys.obj.mk user/jeff/numa/stand/common/reloc_elf.c user/jeff/numa/stand/efi/boot1/Makefile user/jeff/numa/stand/efi/boot1/boot1.c user/jeff/numa/stand/efi/include/efi.h user/jeff/numa/stand/libsa/net.h user/jeff/numa/stand/libsa/stand.h user/jeff/numa/sys/amd64/amd64/cpu_switch.S user/jeff/numa/sys/amd64/amd64/exception.S user/jeff/numa/sys/amd64/amd64/genassym.c user/jeff/numa/sys/amd64/amd64/machdep.c user/jeff/numa/sys/amd64/amd64/mp_machdep.c user/jeff/numa/sys/amd64/amd64/support.S user/jeff/numa/sys/amd64/include/md_var.h user/jeff/numa/sys/arm/allwinner/a83t/a83t_padconf.c user/jeff/numa/sys/arm/allwinner/if_awg.c user/jeff/numa/sys/arm/arm/generic_timer.c user/jeff/numa/sys/arm/arm/gic.c user/jeff/numa/sys/arm64/arm64/cpu_errata.c user/jeff/numa/sys/arm64/arm64/gic_v3.c user/jeff/numa/sys/arm64/arm64/gic_v3_var.h user/jeff/numa/sys/arm64/arm64/gicv3_its.c user/jeff/numa/sys/arm64/arm64/locore.S user/jeff/numa/sys/arm64/arm64/nexus.c user/jeff/numa/sys/arm64/arm64/pmap.c user/jeff/numa/sys/arm64/arm64/trap.c user/jeff/numa/sys/arm64/include/pcpu.h user/jeff/numa/sys/cam/cam_periph.c user/jeff/numa/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c user/jeff/numa/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h user/jeff/numa/sys/compat/linuxkpi/common/include/linux/slab.h user/jeff/numa/sys/conf/files.arm64 user/jeff/numa/sys/conf/files.i386 user/jeff/numa/sys/conf/files.mips user/jeff/numa/sys/conf/files.powerpc user/jeff/numa/sys/conf/files.riscv user/jeff/numa/sys/conf/options.powerpc user/jeff/numa/sys/crypto/aesni/aesni.c user/jeff/numa/sys/dev/acpica/acpi.c user/jeff/numa/sys/dev/acpica/acpi_resource.c user/jeff/numa/sys/dev/acpica/acpivar.h user/jeff/numa/sys/dev/amdsbwd/amdsbwd.c user/jeff/numa/sys/dev/bhnd/bcma/bcma_erom.c user/jeff/numa/sys/dev/bhnd/nvram/bhnd_nvram_private.h user/jeff/numa/sys/dev/bhnd/siba/siba_erom.c user/jeff/numa/sys/dev/bxe/bxe.c user/jeff/numa/sys/dev/bxe/ecore_sp.h user/jeff/numa/sys/dev/cxgbe/t4_sge.c user/jeff/numa/sys/dev/e1000/e1000_82575.h user/jeff/numa/sys/dev/e1000/e1000_ich8lan.c user/jeff/numa/sys/dev/e1000/e1000_regs.h user/jeff/numa/sys/dev/e1000/if_em.c user/jeff/numa/sys/dev/iicbus/ds13rtc.c user/jeff/numa/sys/dev/ixl/if_ixlv.c user/jeff/numa/sys/dev/ixl/ixl_pf_iov.c user/jeff/numa/sys/dev/ixl/ixl_pf_main.c user/jeff/numa/sys/dev/md/md.c user/jeff/numa/sys/dev/mlx4/cq.h user/jeff/numa/sys/dev/mlx4/mlx4_core/mlx4_fw.c user/jeff/numa/sys/dev/mlx4/mlx4_core/mlx4_mcg.c user/jeff/numa/sys/dev/mlx4/mlx4_en/mlx4_en_tx.c user/jeff/numa/sys/dev/mlx4/mlx4_ib/mlx4_ib.h user/jeff/numa/sys/dev/mlx4/mlx4_ib/mlx4_ib_qp.c user/jeff/numa/sys/dev/mlx4/qp.h user/jeff/numa/sys/dev/mlx5/device.h user/jeff/numa/sys/dev/mlx5/qp.h user/jeff/numa/sys/fs/nullfs/null_vfsops.c user/jeff/numa/sys/geom/mirror/g_mirror.c user/jeff/numa/sys/geom/mirror/g_mirror.h user/jeff/numa/sys/i386/bios/apm.c user/jeff/numa/sys/i386/conf/GENERIC user/jeff/numa/sys/i386/conf/NOTES user/jeff/numa/sys/i386/i386/support.s user/jeff/numa/sys/kern/kern_malloc.c user/jeff/numa/sys/kern/kern_mutex.c user/jeff/numa/sys/kern/sys_socket.c user/jeff/numa/sys/kern/vfs_aio.c user/jeff/numa/sys/kern/vfs_subr.c user/jeff/numa/sys/mips/mips/exception.S user/jeff/numa/sys/mips/mips/locore.S user/jeff/numa/sys/mips/mips/swtch.S user/jeff/numa/sys/mips/mips/trap.c user/jeff/numa/sys/modules/bhnd/Makefile user/jeff/numa/sys/modules/dtrace/Makefile user/jeff/numa/sys/modules/sdhci_acpi/Makefile user/jeff/numa/sys/modules/sdhci_pci/Makefile user/jeff/numa/sys/modules/sgx/Makefile user/jeff/numa/sys/netinet/libalias/alias_mod.h user/jeff/numa/sys/netinet/libalias/alias_sctp.c user/jeff/numa/sys/netpfil/ipfw/dn_heap.c user/jeff/numa/sys/netpfil/ipfw/dn_sched_fq_codel.c user/jeff/numa/sys/netpfil/ipfw/dn_sched_fq_pie.c user/jeff/numa/sys/opencrypto/cryptodev.c user/jeff/numa/sys/opencrypto/cryptodev.h user/jeff/numa/sys/powerpc/conf/GENERIC64 user/jeff/numa/sys/powerpc/include/spr.h user/jeff/numa/sys/powerpc/powermac/uninorthpci.c user/jeff/numa/sys/powerpc/powermac/uninorthvar.h user/jeff/numa/sys/sys/malloc.h user/jeff/numa/sys/ufs/ffs/ffs_softdep.c user/jeff/numa/sys/ufs/ufs/ufs_dirhash.c user/jeff/numa/sys/vm/vm_glue.c user/jeff/numa/sys/vm/vm_unix.c user/jeff/numa/tests/sys/geom/class/mirror/Makefile user/jeff/numa/tools/tools/crypto/cryptotest.c user/jeff/numa/usr.bin/awk/Makefile user/jeff/numa/usr.bin/clang/lld/Makefile user/jeff/numa/usr.bin/patch/inp.c user/jeff/numa/usr.bin/vmstat/Makefile user/jeff/numa/usr.sbin/Makefile user/jeff/numa/usr.sbin/bsdinstall/partedit/gpart_ops.c user/jeff/numa/usr.sbin/efibootmgr/efibootmgr.c Directory Properties: user/jeff/numa/ (props changed) user/jeff/numa/cddl/ (props changed) user/jeff/numa/cddl/contrib/opensolaris/ (props changed) user/jeff/numa/contrib/gcc/ (props changed) user/jeff/numa/contrib/llvm/ (props changed) user/jeff/numa/sys/cddl/contrib/opensolaris/ (props changed) user/jeff/numa/sys/contrib/zstd/ (props changed) user/jeff/numa/tests/sys/geom/class/eli/attach_test.sh (props changed) user/jeff/numa/tests/sys/geom/class/eli/configure_test.sh (props changed) user/jeff/numa/tests/sys/geom/class/eli/detach_test.sh (props changed) user/jeff/numa/tests/sys/geom/class/eli/integrity_test.sh (props changed) user/jeff/numa/tests/sys/geom/class/mirror/10_test.sh (props changed) user/jeff/numa/tests/sys/geom/class/mirror/11_test.sh (props changed) user/jeff/numa/tests/sys/geom/class/mirror/12_test.sh (props changed) user/jeff/numa/tests/sys/geom/class/mirror/13_test.sh (props changed) Modified: user/jeff/numa/Makefile.inc1 ============================================================================== --- user/jeff/numa/Makefile.inc1 Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/Makefile.inc1 Fri Jan 12 23:38:15 2018 (r327902) @@ -144,7 +144,7 @@ TEST_SYSTEM_COMPILER_VARS= \ WANT_COMPILER_FREEBSD_VERSION WANT_COMPILER_FREEBSD_VERSION_FILE \ CC COMPILER_TYPE COMPILER_FEATURES COMPILER_VERSION \ COMPILER_FREEBSD_VERSION \ - LINKER_TYPE LINKER_VERSION + LINKER_TYPE LINKER_FEATURES LINKER_VERSION test-system-compiler: .PHONY .for v in ${TEST_SYSTEM_COMPILER_VARS} ${_+_}@printf "%-35s= %s\n" "${v}" "${${v}}" @@ -178,6 +178,7 @@ _COMPILER_METADATA_VARS= COMPILER_VERSION \ COMPILER_FEATURES \ COMPILER_FREEBSD_VERSION \ LINKER_VERSION \ + LINKER_FEATURES \ LINKER_TYPE compiler-metadata.mk: .PHONY .META @: > ${.TARGET} @@ -536,6 +537,7 @@ BSARGS= DESTDIR= \ -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no \ MK_CLANG_EXTRAS=no MK_CLANG_FULL=no \ MK_LLDB=no MK_TESTS=no \ + MK_LLD=${MK_LLD_BOOTSTRAP} \ MK_INCLUDES=yes BMAKE= \ Modified: user/jeff/numa/Makefile.libcompat ============================================================================== --- user/jeff/numa/Makefile.libcompat Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/Makefile.libcompat Fri Jan 12 23:38:15 2018 (r327902) @@ -35,10 +35,19 @@ LIB32WMAKEFLAGS= \ OBJCOPY="${XOBJCOPY}" .elif ${TARGET_ARCH:Mmips64*} != "" +.if ${WANT_COMPILER_TYPE} == clang || \ + (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == clang) +.if ${TARGET_ARCH:Mmips64el*} != "" +LIB32CPUFLAGS= -target mipsel-unknown-freebsd12.0 +.else +LIB32CPUFLAGS= -target mips-unknown-freebsd12.0 +.endif +.else .if empty(TARGET_CPUTYPE) LIB32CPUFLAGS= -march=mips3 .else LIB32CPUFLAGS= -march=${TARGET_CPUTYPE} +.endif .endif LIB32CPUFLAGS+= -mabi=32 LIB32WMAKEENV= MACHINE=mips MACHINE_ARCH=mips Modified: user/jeff/numa/ObsoleteFiles.inc ============================================================================== --- user/jeff/numa/ObsoleteFiles.inc Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/ObsoleteFiles.inc Fri Jan 12 23:38:15 2018 (r327902) @@ -38,6 +38,10 @@ # xargs -n1 | sort | uniq -d; # done +# 20180109: Remove vestiges of digi(4) driver +OLD_FILES+=usr/include/sys/digiio.h +OLD_FILES+=usr/sbin/digictl +OLD_FILES+=usr/share/man/man8/digictl.8.gz # 20180107: Convert remaining geli(8) tests to ATF OLD_FILES+=tests/sys/geom/class/eli/nokey_test.sh OLD_FILES+=tests/sys/geom/class/eli/readonly_test.sh Modified: user/jeff/numa/UPDATING ============================================================================== --- user/jeff/numa/UPDATING Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/UPDATING Fri Jan 12 23:38:15 2018 (r327902) @@ -51,6 +51,20 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: ****************************** SPECIAL WARNING: ****************************** +20180110: + LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. + This means it is used to link the kernel and userland libraries and + executables, but is not yet installed as /usr/bin/ld by default. + + To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set + WITHOUT_LLD_BOOTSTRAP=yes + +20180110: + On i386, pmtimer has been removed. Its functionality has been folded + into apm. It was a no-op on ACPI in current for a while now (but was still + needed on i386 in FreeBSD 11 and earlier). Users may need to remove it + from kernel config files. + 20180104: The use of RSS hash from the network card aka flowid has been disabled by default for lagg(4) as it's currently incompatible with @@ -195,7 +209,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: 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 + foreground 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. @@ -1855,7 +1869,7 @@ COMMON ITEMS: do an upgrade to the new branch. This is the best-tested upgrade path, and has the highest probability of being successful. Please try this approach if you encounter problems with a major version upgrade. Since - the stable 4.x branch point, one has generally been able to upgade from + the stable 4.x branch point, one has generally been able to upgrade from anywhere in the most recent stable branch to head / current (or even the last couple of stable branches). See the top of this file when there's an exception. @@ -1993,7 +2007,7 @@ COMMON ITEMS: for potential gotchas. The -U option is also useful to consider. See mergemaster(8) for more information. - [5] Usually this step is a noop. However, from time to time + [5] Usually this step is a no-op. However, from time to time you may need to do this if you get unknown user in the following step. It never hurts to do it all the time. You may need to install a new mergemaster (cd src/usr.sbin/mergemaster && make Copied: user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh (from r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh Fri Jan 12 23:38:15 2018 (r327902, copy of r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh) @@ -0,0 +1,34 @@ +# +# CDDL HEADER START +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# +# CDDL HEADER END +# + +# +# Copyright (c) 2012 by Delphix. All rights reserved. +# + +# +# Reset an environment variable we already know to be set. +# Regression test for FreeBSD r327794. +# + +if [ $# != 1 ]; then + echo expected one argument: '<'dtrace-path'>' + exit 2 +fi + +dtrace=$1 + +$dtrace -q -Z -n doogle -xsetenv=PATH=/foo -c '/usr/bin/printenv PATH' + +exit $? Copied: user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh.out (from r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh.out) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh.out Fri Jan 12 23:38:15 2018 (r327902, copy of r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv3.ksh.out) @@ -0,0 +1,2 @@ +/foo + Copied: user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jailname.d (from r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jailname.d) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jailname.d Fri Jan 12 23:38:15 2018 (r327902, copy of r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jailname.d) @@ -0,0 +1,44 @@ +/* + * This file and its contents are supplied under the terms of the + * Common Development and Distribution License ("CDDL"), version 1.0. + * You may only use this file in accordance with the terms version + * 1.0 of the CDDL. + * + * A full copy of the text of the CDDL should have accompanied this + * source. A copy of the CDDL is also available via the Internet at + * http://www.illumos.org/license/CDDL. + */ + +/* + * Copyright 2018 Domagoj Stolfa <domagoj.stolfa@cl.cam.ac.uk>. + * + * This software was developed by BAE Systems, the University of Cambridge + * Computer Laboratory, and Memorial University under DARPA/AFRL contract + * FA8650-15-C-7558 ("CADETS"), as part of the DARPA Transparent Computing + * (TC) research program. + * + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +/* + * ASSERTION: + * collect jailname at every fbt probe and at every firing of a + * high-frequency profile probe + */ + +fbt::: +{ + @a[jailname] = count(); +} + +profile-4999hz +{ + @a[jailname] = count(); +} + +tick-1sec +/n++ == 10/ +{ + exit(0); +} Copied: user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jid.d (from r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jid.d) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jid.d Fri Jan 12 23:38:15 2018 (r327902, copy of r327901, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/safety/tst.jid.d) @@ -0,0 +1,44 @@ +/* + * This file and its contents are supplied under the terms of the + * Common Development and Distribution License ("CDDL"), version 1.0. + * You may only use this file in accordance with the terms version + * 1.0 of the CDDL. + * + * A full copy of the text of the CDDL should have accompanied this + * source. A copy of the CDDL is also available via the Internet at + * http://www.illumos.org/license/CDDL. + */ + +/* + * Copyright 2018 Domagoj Stolfa <domagoj.stolfa@cl.cam.ac.uk>. + * + * This software was developed by BAE Systems, the University of Cambridge + * Computer Laboratory, and Memorial University under DARPA/AFRL contract + * FA8650-15-C-7558 ("CADETS"), as part of the DARPA Transparent Computing + * (TC) research program. + * + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +/* + * ASSERTION: + * collect jid at every fbt probe and at every firing of a + * high-frequency profile probe + */ + +fbt::: +{ + @a[jid] = count(); +} + +profile-4999hz +{ + @a[jid] = count(); +} + +tick-1sec +/n++ == 10/ +{ + exit(0); +} Modified: user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c ============================================================================== --- user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Fri Jan 12 23:38:15 2018 (r327902) @@ -313,6 +313,12 @@ static const dt_ident_t _dtrace_globals[] = { DT_VERS_1_5, &dt_idops_func, "string(int, void *)" }, { "ipl", DT_IDENT_SCALAR, 0, DIF_VAR_IPL, DT_ATTR_STABCMN, DT_VERS_1_0, &dt_idops_type, "uint_t" }, +#ifdef __FreeBSD__ +{ "jailname", DT_IDENT_SCALAR, 0, DIF_VAR_JAILNAME, + DT_ATTR_STABCMN, DT_VERS_1_13, &dt_idops_type, "string" }, +{ "jid", DT_IDENT_SCALAR, 0, DIF_VAR_JID, DT_ATTR_STABCMN, DT_VERS_1_13, + &dt_idops_type, "int" }, +#endif { "json", DT_IDENT_FUNC, 0, DIF_SUBR_JSON, DT_ATTR_STABCMN, DT_VERS_1_11, &dt_idops_func, "string(const char *, const char *)" }, { "jstack", DT_IDENT_ACTFUNC, 0, DT_ACT_JSTACK, DT_ATTR_STABCMN, DT_VERS_1_0, @@ -528,10 +534,8 @@ static const dt_ident_t _dtrace_globals[] = { { "walltimestamp", DT_IDENT_SCALAR, 0, DIF_VAR_WALLTIMESTAMP, DT_ATTR_STABCMN, DT_VERS_1_0, &dt_idops_type, "int64_t" }, -#ifdef illumos { "zonename", DT_IDENT_SCALAR, 0, DIF_VAR_ZONENAME, DT_ATTR_STABCMN, DT_VERS_1_0, &dt_idops_type, "string" }, -#endif #ifndef illumos { "cpu", DT_IDENT_SCALAR, 0, DIF_VAR_CPU, Modified: user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_options.c ============================================================================== --- user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_options.c Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_options.c Fri Jan 12 23:38:15 2018 (r327902) @@ -415,7 +415,7 @@ dt_opt_setenv(dtrace_hdl_t *dtp, const char *arg, uint { char **p; char *var; - int i; + int nvars; /* * We can't effectively set environment variables from #pragma lines @@ -430,7 +430,7 @@ dt_opt_setenv(dtrace_hdl_t *dtp, const char *arg, uint if (!option && strchr(arg, '=') != NULL) return (dt_set_errno(dtp, EDT_BADOPTVAL)); - for (i = 1, p = dtp->dt_proc_env; *p != NULL; i++, p++) + for (nvars = 0, p = dtp->dt_proc_env; *p != NULL; nvars++, p++) continue; for (p = dtp->dt_proc_env; *p != NULL; p++) { @@ -439,9 +439,9 @@ dt_opt_setenv(dtrace_hdl_t *dtp, const char *arg, uint var = *p + strlen(*p); if (strncmp(*p, arg, var - *p) == 0) { dt_free(dtp, *p); - *p = dtp->dt_proc_env[i - 1]; - dtp->dt_proc_env[i - 1] = NULL; - i--; + *p = dtp->dt_proc_env[nvars - 1]; + dtp->dt_proc_env[nvars - 1] = NULL; + nvars--; } } @@ -449,17 +449,18 @@ dt_opt_setenv(dtrace_hdl_t *dtp, const char *arg, uint if ((var = strdup(arg)) == NULL) return (dt_set_errno(dtp, EDT_NOMEM)); - if ((p = dt_alloc(dtp, sizeof (char *) * (i + 1))) == NULL) { + nvars++; + if ((p = dt_alloc(dtp, sizeof(char *) * (nvars + 1))) == NULL) { dt_free(dtp, var); return (dt_set_errno(dtp, EDT_NOMEM)); } - bcopy(dtp->dt_proc_env, p, sizeof (char *) * i); + bcopy(dtp->dt_proc_env, p, sizeof(char *) * nvars); dt_free(dtp, dtp->dt_proc_env); dtp->dt_proc_env = p; - dtp->dt_proc_env[i - 1] = var; - dtp->dt_proc_env[i] = NULL; + dtp->dt_proc_env[nvars - 1] = var; + dtp->dt_proc_env[nvars] = NULL; } return (0); Modified: user/jeff/numa/cddl/usr.sbin/dtrace/tests/common/env/Makefile ============================================================================== --- user/jeff/numa/cddl/usr.sbin/dtrace/tests/common/env/Makefile Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/cddl/usr.sbin/dtrace/tests/common/env/Makefile Fri Jan 12 23:38:15 2018 (r327902) @@ -15,6 +15,8 @@ ${PACKAGE}FILES= \ tst.setenv1.ksh.out \ tst.setenv2.ksh \ tst.setenv2.ksh.out \ + tst.setenv3.ksh \ + tst.setenv3.ksh.out \ tst.unsetenv1.ksh \ tst.unsetenv1.ksh.out \ tst.unsetenv2.ksh \ Modified: user/jeff/numa/cddl/usr.sbin/dtrace/tests/common/safety/Makefile ============================================================================== --- user/jeff/numa/cddl/usr.sbin/dtrace/tests/common/safety/Makefile Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/cddl/usr.sbin/dtrace/tests/common/safety/Makefile Fri Jan 12 23:38:15 2018 (r327902) @@ -19,6 +19,8 @@ ${PACKAGE}FILES= \ tst.gid.d \ tst.hton.d \ tst.index.d \ + tst.jailname.d \ + tst.jid.d \ tst.msgdsize.d \ tst.msgsize.d \ tst.null.d \ Modified: user/jeff/numa/contrib/gcc/unwind-dw2.c ============================================================================== --- user/jeff/numa/contrib/gcc/unwind-dw2.c Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/contrib/gcc/unwind-dw2.c Fri Jan 12 23:38:15 2018 (r327902) @@ -1393,16 +1393,7 @@ uw_advance_context (struct _Unwind_Context *context, _ static inline void init_dwarf_reg_size_table (void) { -/* - * ARM64TODO: http://llvm.org/pr22997 - * llvm 3.6 doesn't support __builtin_init_dwarf_reg_size_table on AArch64. - */ -#ifdef __aarch64__ - printf("Unimplemented: init_dwarf_reg_size_table\n"); - abort(); -#else __builtin_init_dwarf_reg_size_table (dwarf_reg_size_table); -#endif } static void Modified: user/jeff/numa/contrib/llvm/lib/Support/Unix/Memory.inc ============================================================================== --- user/jeff/numa/contrib/llvm/lib/Support/Unix/Memory.inc Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/contrib/llvm/lib/Support/Unix/Memory.inc Fri Jan 12 23:38:15 2018 (r327902) @@ -27,7 +27,7 @@ #if defined(__mips__) # if defined(__OpenBSD__) # include <mips64/sysarch.h> -# else +# elif !defined(__FreeBSD__) # include <sys/cachectl.h> # endif #endif Modified: user/jeff/numa/etc/mtree/BSD.tests.dist ============================================================================== --- user/jeff/numa/etc/mtree/BSD.tests.dist Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/etc/mtree/BSD.tests.dist Fri Jan 12 23:38:15 2018 (r327902) @@ -536,6 +536,8 @@ usr.bin apply .. + awk + .. basename .. bmake @@ -733,6 +735,8 @@ uuencode .. uniq + .. + vmstat .. xargs .. Modified: user/jeff/numa/include/stdlib.h ============================================================================== --- user/jeff/numa/include/stdlib.h Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/include/stdlib.h Fri Jan 12 23:38:15 2018 (r327902) @@ -304,7 +304,7 @@ int radixsort(const unsigned char **, int, const unsi unsigned); void *reallocarray(void *, size_t, size_t) __result_use_check __alloc_size(2) __alloc_size(3); -void *reallocf(void *, size_t) __alloc_size(2); +void *reallocf(void *, size_t) __result_use_check __alloc_size(2); int rpmatch(const char *); void setprogname(const char *); int sradixsort(const unsigned char **, int, const unsigned char *, Modified: user/jeff/numa/lib/libcasper/services/cap_dns/cap_dns.3 ============================================================================== --- user/jeff/numa/lib/libcasper/services/cap_dns/cap_dns.3 Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/lib/libcasper/services/cap_dns/cap_dns.3 Fri Jan 12 23:38:15 2018 (r327902) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 8, 2018 +.Dd January 10, 2018 .Dt CAP_DNS 3 .Os .Sh NAME @@ -59,7 +59,7 @@ The functions .Fn cap_gethostbyname2 , .Fn cep_gethostbyaddr and -.Xr cap_getnameinfo +.Fn cap_getnameinfo are respectively equivalent to .Xr gethostbyname 2 , .Xr gethostbyname2 2 , Modified: user/jeff/numa/sbin/camcontrol/camcontrol.c ============================================================================== --- user/jeff/numa/sbin/camcontrol/camcontrol.c Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/sbin/camcontrol/camcontrol.c Fri Jan 12 23:38:15 2018 (r327902) @@ -275,6 +275,12 @@ camcontrol_optret getoption(struct camcontrol_opts *ta static int getdevlist(struct cam_device *device); #endif /* MINIMALISTIC */ static int getdevtree(int argc, char **argv, char *combinedopt); +static int print_dev_scsi(struct device_match_result *dev_result, char *tmpstr); +static int print_dev_ata(struct device_match_result *dev_result, char *tmpstr); +static int print_dev_semb(struct device_match_result *dev_result, char *tmpstr); +static int print_dev_mmcsd(struct device_match_result *dev_result, + char *tmpstr); +static int print_dev_nvme(struct device_match_result *dev_result, char *tmpstr); #ifndef MINIMALISTIC static int testunitready(struct cam_device *device, int task_attr, int retry_count, int timeout, int quiet); @@ -554,8 +560,7 @@ getdevtree(int argc, char **argv, char *combinedopt) } case DEV_MATCH_DEVICE: { struct device_match_result *dev_result; - char vendor[16], product[48], revision[16]; - char fw[5], tmpstr[256]; + char tmpstr[256]; if (busonly == 1) break; @@ -572,57 +577,36 @@ getdevtree(int argc, char **argv, char *combinedopt) skip_device = 0; if (dev_result->protocol == PROTO_SCSI) { - cam_strvis(vendor, dev_result->inq_data.vendor, - sizeof(dev_result->inq_data.vendor), - sizeof(vendor)); - cam_strvis(product, - dev_result->inq_data.product, - sizeof(dev_result->inq_data.product), - sizeof(product)); - cam_strvis(revision, - dev_result->inq_data.revision, - sizeof(dev_result->inq_data.revision), - sizeof(revision)); - sprintf(tmpstr, "<%s %s %s>", vendor, product, - revision); + if (print_dev_scsi(dev_result, + &tmpstr[0]) != 0) { + skip_device = 1; + break; + } } else if (dev_result->protocol == PROTO_ATA || dev_result->protocol == PROTO_SATAPM) { - cam_strvis(product, - dev_result->ident_data.model, - sizeof(dev_result->ident_data.model), - sizeof(product)); - cam_strvis(revision, - dev_result->ident_data.revision, - sizeof(dev_result->ident_data.revision), - sizeof(revision)); - sprintf(tmpstr, "<%s %s>", product, - revision); - } else if (dev_result->protocol == PROTO_MMCSD) { - if (strlen(dev_result->mmc_ident_data.model) > 0) { - sprintf(tmpstr, "<%s>", dev_result->mmc_ident_data.model); - } else { - sprintf(tmpstr, "<%s card>", - dev_result->mmc_ident_data.card_features & CARD_FEATURE_SDIO ? "SDIO" : "unknown"); + if (print_dev_ata(dev_result, + &tmpstr[0]) != 0) { + skip_device = 1; + break; } + } else if (dev_result->protocol == PROTO_MMCSD){ + if (print_dev_mmcsd(dev_result, + &tmpstr[0]) != 0) { + skip_device = 1; + break; + } } else if (dev_result->protocol == PROTO_SEMB) { - struct sep_identify_data *sid; - - sid = (struct sep_identify_data *) - &dev_result->ident_data; - cam_strvis(vendor, sid->vendor_id, - sizeof(sid->vendor_id), - sizeof(vendor)); - cam_strvis(product, sid->product_id, - sizeof(sid->product_id), - sizeof(product)); - cam_strvis(revision, sid->product_rev, - sizeof(sid->product_rev), - sizeof(revision)); - cam_strvis(fw, sid->firmware_rev, - sizeof(sid->firmware_rev), - sizeof(fw)); - sprintf(tmpstr, "<%s %s %s %s>", - vendor, product, revision, fw); + if (print_dev_semb(dev_result, + &tmpstr[0]) != 0) { + skip_device = 1; + break; + } + } else if (dev_result->protocol == PROTO_NVME) { + if (print_dev_nvme(dev_result, + &tmpstr[0]) != 0) { + skip_device = 1; + break; + } } else { sprintf(tmpstr, "<>"); } @@ -676,6 +660,122 @@ getdevtree(int argc, char **argv, char *combinedopt) close(fd); return (error); +} + +static int +print_dev_scsi(struct device_match_result *dev_result, char *tmpstr) +{ + char vendor[16], product[48], revision[16]; + + cam_strvis(vendor, dev_result->inq_data.vendor, + sizeof(dev_result->inq_data.vendor), sizeof(vendor)); + cam_strvis(product, dev_result->inq_data.product, + sizeof(dev_result->inq_data.product), sizeof(product)); + cam_strvis(revision, dev_result->inq_data.revision, + sizeof(dev_result->inq_data.revision), sizeof(revision)); + sprintf(tmpstr, "<%s %s %s>", vendor, product, revision); + + return (0); +} + +static int +print_dev_ata(struct device_match_result *dev_result, char *tmpstr) +{ + char product[48], revision[16]; + + cam_strvis(product, dev_result->ident_data.model, + sizeof(dev_result->ident_data.model), sizeof(product)); + cam_strvis(revision, dev_result->ident_data.revision, + sizeof(dev_result->ident_data.revision), sizeof(revision)); + sprintf(tmpstr, "<%s %s>", product, revision); + + return (0); +} + +static int +print_dev_semb(struct device_match_result *dev_result, char *tmpstr) +{ + struct sep_identify_data *sid; + char vendor[16], product[48], revision[16], fw[5]; + + sid = (struct sep_identify_data *)&dev_result->ident_data; + cam_strvis(vendor, sid->vendor_id, + sizeof(sid->vendor_id), sizeof(vendor)); + cam_strvis(product, sid->product_id, + sizeof(sid->product_id), sizeof(product)); + cam_strvis(revision, sid->product_rev, + sizeof(sid->product_rev), sizeof(revision)); + cam_strvis(fw, sid->firmware_rev, + sizeof(sid->firmware_rev), sizeof(fw)); + sprintf(tmpstr, "<%s %s %s %s>", vendor, product, revision, fw); + + return (0); +} + +static int +print_dev_mmcsd(struct device_match_result *dev_result, char *tmpstr) +{ + + if (strlen(dev_result->mmc_ident_data.model) > 0) { + sprintf(tmpstr, "<%s>", dev_result->mmc_ident_data.model); + } else { + sprintf(tmpstr, "<%s card>", + dev_result->mmc_ident_data.card_features & + CARD_FEATURE_SDIO ? "SDIO" : "unknown"); + } + return (0); +} + +static int +print_dev_nvme(struct device_match_result *dev_result, char *tmpstr) +{ + union ccb *ccb; + struct ccb_dev_advinfo *advi; + struct cam_device *dev; + struct nvme_controller_data cdata; + char vendor[64], product[64]; + + dev = cam_open_btl(dev_result->path_id, dev_result->target_id, + dev_result->target_lun, O_RDWR, NULL); + if (dev == NULL) { + warnx("%s", cam_errbuf); + return (1); + } + + ccb = cam_getccb(dev); + if (ccb == NULL) { + warnx("couldn't allocate CCB"); + cam_close_device(dev); + return (1); + } + + advi = &ccb->cdai; + advi->ccb_h.flags = CAM_DIR_IN; + advi->ccb_h.func_code = XPT_DEV_ADVINFO; + advi->flags = CDAI_FLAG_NONE; + advi->buftype = CDAI_TYPE_NVME_CNTRL; + advi->bufsiz = sizeof(struct nvme_controller_data); + advi->buf = (uint8_t *)&cdata; + + if (cam_send_ccb(dev, ccb) < 0) { + warn("error sending CAMIOCOMMAND ioctl"); + cam_freeccb(ccb); + cam_close_device(dev); + return(1); + } + if (advi->ccb_h.status != CAM_REQ_CMP) { + warnx("got CAM error %#x", advi->ccb_h.status); + cam_freeccb(ccb); + cam_close_device(dev); + return(1); + } + cam_strvis(vendor, cdata.mn, sizeof(cdata.mn), sizeof(vendor)); + cam_strvis(product, cdata.fr, sizeof(cdata.fr), sizeof(product)); + sprintf(tmpstr, "<%s %s>", vendor, product); + + cam_freeccb(ccb); + cam_close_device(dev); + return (0); } #ifndef MINIMALISTIC Modified: user/jeff/numa/sbin/dhclient/parse.c ============================================================================== --- user/jeff/numa/sbin/dhclient/parse.c Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/sbin/dhclient/parse.c Fri Jan 12 23:38:15 2018 (r327902) @@ -45,6 +45,8 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include <stdbool.h> + #include "dhcpd.h" #include "dhctoken.h" Modified: user/jeff/numa/share/man/man5/src.conf.5 ============================================================================== --- user/jeff/numa/share/man/man5/src.conf.5 Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/share/man/man5/src.conf.5 Fri Jan 12 23:38:15 2018 (r327902) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd November 2, 2017 +.Dd January 11, 2018 .Dt SRC.CONF 5 .Os .Sh NAME @@ -970,12 +970,12 @@ To be able to build the system, either Binutils or LLD enabled unless an alternate linker is provided via XLD. .Pp This is a default setting on -amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm/armv7, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. +arm/arm, arm/armeb, arm/armv6, arm/armv7, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_LLD_BOOTSTRAP Set to build the LLD linker during the bootstrap phase of the build. .Pp This is a default setting on -arm64/aarch64. +amd64/amd64, arm64/aarch64 and i386/i386. .It Va WITHOUT_LLD_IS_LD Set to use GNU binutils ld as the system linker, instead of LLVM's LLD. .Pp @@ -996,6 +996,11 @@ Set to use LLVM's libunwind stack unwinder (instead of .Pp This is a default setting on amd64/amd64, arm64/aarch64, i386/i386, riscv/riscv64 and riscv/riscv64sf. +.It Va WITH_LOADER_FIREWIRE +Enable firewire support in /boot/loader and /boot/zfsloader on x86. +This option is a nop on all other platforms. +.It Va WITHOUT_LOADER_GELI +Disable inclusion of GELI crypto support in the boot chain binaries. .It Va WITHOUT_LOCALES Set to not build localization files; see .Xr locale 1 . Modified: user/jeff/numa/share/man/man9/Makefile ============================================================================== --- user/jeff/numa/share/man/man9/Makefile Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/share/man/man9/Makefile Fri Jan 12 23:38:15 2018 (r327902) @@ -1262,6 +1262,7 @@ MLINKS+=make_dev.9 destroy_dev.9 \ make_dev.9 make_dev_p.9 \ make_dev.9 make_dev_s.9 MLINKS+=malloc.9 free.9 \ + malloc.9 mallocarray.9 \ malloc.9 MALLOC_DECLARE.9 \ malloc.9 MALLOC_DEFINE.9 \ malloc.9 realloc.9 \ Modified: user/jeff/numa/share/man/man9/malloc.9 ============================================================================== --- user/jeff/numa/share/man/man9/malloc.9 Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/share/man/man9/malloc.9 Fri Jan 12 23:38:15 2018 (r327902) @@ -29,7 +29,7 @@ .\" $NetBSD: malloc.9,v 1.3 1996/11/11 00:05:11 lukem Exp $ .\" $FreeBSD$ .\" -.Dd November 19, 2015 +.Dd January 10, 2018 .Dt MALLOC 9 .Os .Sh NAME @@ -154,6 +154,7 @@ If the request cannot be immediately fulfilled, the cu to sleep to wait for resources to be released by other processes. The .Fn malloc , +.Fn mallocarray , .Fn realloc , and .Fn reallocf @@ -162,15 +163,13 @@ functions cannot return if .Dv M_WAITOK is specified. -The -.Fn mallocarray -function can return -.Dv NULL -if the multiplication of +If the multiplication of .Fa nmemb and .Fa size -would cause an integer overflow. +would cause an integer overflow, the +.Fn mallocarray +function induces a panic. .It Dv M_USE_RESERVE Indicates that the system can use its reserve of memory to satisfy the request. Modified: user/jeff/numa/share/mk/src.opts.mk ============================================================================== --- user/jeff/numa/share/mk/src.opts.mk Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/share/mk/src.opts.mk Fri Jan 12 23:38:15 2018 (r327902) @@ -253,6 +253,9 @@ __DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND .endif .if ${__T} == "aarch64" __DEFAULT_YES_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD +.elif ${__T} == "amd64" || ${__T} == "i386" +__DEFAULT_YES_OPTIONS+=LLD_BOOTSTRAP +__DEFAULT_NO_OPTIONS+=LLD_IS_LD .else __DEFAULT_NO_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD .endif Modified: user/jeff/numa/share/mk/src.sys.obj.mk ============================================================================== --- user/jeff/numa/share/mk/src.sys.obj.mk Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/share/mk/src.sys.obj.mk Fri Jan 12 23:38:15 2018 (r327902) @@ -132,7 +132,8 @@ __objdir:= ${MAKEOBJDIR} .if ${.MAKE.LEVEL} == 0 && \ ${MK_AUTO_OBJ} == "no" && empty(.MAKEOVERRIDES:MMK_AUTO_OBJ) && \ !defined(WITHOUT_AUTO_OBJ) && !make(showconfig) && !make(print-dir) && \ - !defined(NO_OBJ) + !defined(NO_OBJ) && \ + empty(RELDIR:Msys/*/compile/*) # Find the last existing directory component and check if we can write to it. # If the last component is a symlink then recurse on the new path. CheckAutoObj= \ Modified: user/jeff/numa/stand/common/reloc_elf.c ============================================================================== --- user/jeff/numa/stand/common/reloc_elf.c Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/stand/common/reloc_elf.c Fri Jan 12 23:38:15 2018 (r327902) @@ -115,6 +115,7 @@ __elfN(reloc)(struct elf_file *ef, symaddr_fn *symaddr /* XXX, definitions not available on i386. */ #define R_X86_64_64 1 #define R_X86_64_RELATIVE 8 +#define R_X86_64_IRELATIVE 37 switch (rtype) { case R_X86_64_64: /* S + A */ @@ -129,6 +130,9 @@ __elfN(reloc)(struct elf_file *ef, symaddr_fn *symaddr val = addr; *where = val; break; + case R_X86_64_IRELATIVE: + /* leave it to kernel */ + break; default: printf("\nunhandled relocation type %u\n", (u_int)rtype); return (EFTYPE); @@ -173,6 +177,7 @@ __elfN(reloc)(struct elf_file *ef, symaddr_fn *symaddr #define R_386_32 1 /* Add symbol value. */ #define R_386_GLOB_DAT 6 /* Set GOT entry to data address. */ #define R_386_RELATIVE 8 /* Add load address of shared object. */ +#define R_386_IRELATIVE 42 switch (rtype) { case R_386_RELATIVE: @@ -185,6 +190,9 @@ __elfN(reloc)(struct elf_file *ef, symaddr_fn *symaddr return (ESRCH); val = addr + addend; *where = val; + break; + case R_386_IRELATIVE: + /* leave it to kernel */ break; default: printf("\nunhandled relocation type %u\n", (u_int)rtype); Modified: user/jeff/numa/stand/efi/boot1/Makefile ============================================================================== --- user/jeff/numa/stand/efi/boot1/Makefile Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/stand/efi/boot1/Makefile Fri Jan 12 23:38:15 2018 (r327902) @@ -110,7 +110,7 @@ boot1.efi: ${PROG} # The following inserts our objects into a template FAT file system # created by generate-fat.sh -.include "${.CURDIR}/Makefile.fat" +.include "Makefile.fat" boot1.efifat: boot1.efi @set -- `ls -l ${.ALLSRC}`; \ @@ -120,7 +120,7 @@ boot1.efifat: boot1.efi exit 1; \ fi echo ${.OBJDIR} - xz -d -c ${.CURDIR}/fat-${MACHINE}.tmpl.xz > ${.TARGET} + xz -d -c ${BOOTSRC}/efi/boot1/fat-${MACHINE}.tmpl.xz > ${.TARGET} ${DD} if=${.ALLSRC} of=${.TARGET} seek=${BOOT1_OFFSET} conv=notrunc CLEANFILES+= boot1.efi boot1.efifat Modified: user/jeff/numa/stand/efi/boot1/boot1.c ============================================================================== --- user/jeff/numa/stand/efi/boot1/boot1.c Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/stand/efi/boot1/boot1.c Fri Jan 12 23:38:15 2018 (r327902) @@ -55,6 +55,7 @@ static EFI_GUID DevicePathGUID = DEVICE_PATH_PROTOCOL; static EFI_GUID LoadedImageGUID = LOADED_IMAGE_PROTOCOL; static EFI_GUID ConsoleControlGUID = EFI_CONSOLE_CONTROL_PROTOCOL_GUID; static EFI_GUID FreeBSDBootVarGUID = FREEBSD_BOOT_VAR_GUID; +static EFI_GUID GlobalBootVarGUID = UEFI_BOOT_VAR_GUID; /* * Provide Malloc / Free backed by EFIs AllocatePool / FreePool which ensures @@ -80,6 +81,25 @@ Free(void *buf, const char *file __unused, int line __ } static EFI_STATUS +efi_getenv(EFI_GUID *g, const char *v, void *data, size_t *len) +{ + size_t ul; + CHAR16 *uv; + UINT32 attr; + UINTN dl; + EFI_STATUS rv; + + utf8_to_ucs2(v, &uv, &ul); + if (uv == NULL) + return (EFI_OUT_OF_RESOURCES); + dl = *len; + rv = RS->GetVariable(uv, g, &attr, &dl, data); + if (rv == EFI_SUCCESS) + *len = dl; + return (rv); +} + +static EFI_STATUS efi_setenv_freebsd_wcs(const char *varname, CHAR16 *valstr) { CHAR16 *var = NULL; @@ -411,6 +431,9 @@ efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE *Xsystab) SIMPLE_TEXT_OUTPUT_INTERFACE *conout = NULL; UINTN i, max_dim, best_mode, cols, rows, hsize, nhandles; CHAR16 *text; + UINT16 boot_current; + size_t sz; + UINT16 boot_order[100]; /* Basic initialization*/ ST = Xsystab; @@ -480,12 +503,32 @@ efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE *Xsystab) } } + boot_current = 0; + sz = sizeof(boot_current); + efi_getenv(&GlobalBootVarGUID, "BootCurrent", &boot_current, &sz); + printf(" BootCurrent: %04x\n", boot_current); + + sz = sizeof(boot_order); + efi_getenv(&GlobalBootVarGUID, "BootOrder", &boot_order, &sz); + printf(" BootOrder:"); + for (i = 0; i < sz / sizeof(boot_order[0]); i++) + printf(" %04x", boot_order[i]); + printf("\n"); + +#ifdef TEST_FAILURE + /* + * For testing failover scenarios, it's nice to be able to fail fast. + * Define TEST_FAILURE to create a boot1.efi that always fails after + * reporting the boot manager protocol details. + */ + BS->Exit(IH, EFI_OUT_OF_RESOURCES, 0, NULL); +#endif + /* Get all the device handles */ hsize = (UINTN)NUM_HANDLES_INIT * sizeof(EFI_HANDLE); handles = malloc(hsize); - if (handles == NULL) { + if (handles == NULL) printf("Failed to allocate %d handles\n", NUM_HANDLES_INIT); - } status = BS->LocateHandle(ByProtocol, &BlockIoProtocolGUID, NULL, &hsize, handles); Modified: user/jeff/numa/stand/efi/include/efi.h ============================================================================== --- user/jeff/numa/stand/efi/include/efi.h Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/stand/efi/include/efi.h Fri Jan 12 23:38:15 2018 (r327902) @@ -59,5 +59,7 @@ Revision History */ #define FREEBSD_BOOT_VAR_GUID \ { 0xCFEE69AD, 0xA0DE, 0x47A9, {0x93, 0xA8, 0xF6, 0x31, 0x06, 0xF8, 0xAE, 0x99} } +#define UEFI_BOOT_VAR_GUID \ + { 0x8be4df61, 0x93ca, 0x11d2, {0xaa, 0x0d, 0x00, 0xe0, 0x98, 0x03, 0x2b, 0x8c} } #endif Modified: user/jeff/numa/stand/libsa/net.h ============================================================================== --- user/jeff/numa/stand/libsa/net.h Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/stand/libsa/net.h Fri Jan 12 23:38:15 2018 (r327902) @@ -128,6 +128,4 @@ char *inet_ntoa(struct in_addr); char *intoa(n_long); /* similar to inet_ntoa */ n_long inet_addr(char *); -/* Machine-dependent functions: */ -time_t getsecs(void); #endif /* ! _STAND_NET_H */ Modified: user/jeff/numa/stand/libsa/stand.h ============================================================================== --- user/jeff/numa/stand/libsa/stand.h Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/stand/libsa/stand.h Fri Jan 12 23:38:15 2018 (r327902) @@ -394,6 +394,7 @@ extern void putchar(int); extern int devopen(struct open_file *, const char *, const char **); extern int devclose(struct open_file *f); extern void panic(const char *, ...) __dead2 __printflike(1, 2); +extern time_t getsecs(void); extern struct fs_ops *file_system[]; extern struct fs_ops *exclusive_file_system; extern struct devsw *devsw[]; Modified: user/jeff/numa/sys/amd64/amd64/cpu_switch.S ============================================================================== --- user/jeff/numa/sys/amd64/amd64/cpu_switch.S Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/sys/amd64/amd64/cpu_switch.S Fri Jan 12 23:38:15 2018 (r327902) @@ -215,7 +215,7 @@ done_tss: movq %r8,PCPU(RSP0) movq %r8,PCPU(CURPCB) /* Update the TSS_RSP0 pointer for the next interrupt */ - movq %r8,COMMON_TSS_RSP0(%rdx) + movq %r8,TSS_RSP0(%rdx) movq %r12,PCPU(CURTHREAD) /* into next thread */ /* Test if debug registers should be restored. */ Modified: user/jeff/numa/sys/amd64/amd64/exception.S ============================================================================== --- user/jeff/numa/sys/amd64/amd64/exception.S Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/sys/amd64/amd64/exception.S Fri Jan 12 23:38:15 2018 (r327902) @@ -410,7 +410,6 @@ IDTVEC(fast_syscall) movq %r14,TF_R14(%rsp) /* C preserved */ movq %r15,TF_R15(%rsp) /* C preserved */ movl $TF_HASSEGS,TF_FLAGS(%rsp) - cld FAKE_MCOUNT(TF_RIP(%rsp)) movq PCPU(CURTHREAD),%rdi movq %rsp,TD_FRAME(%rdi) Modified: user/jeff/numa/sys/amd64/amd64/genassym.c ============================================================================== --- user/jeff/numa/sys/amd64/amd64/genassym.c Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/sys/amd64/amd64/genassym.c Fri Jan 12 23:38:15 2018 (r327902) @@ -153,7 +153,7 @@ ASSYM(PCB_FULL_IRET, PCB_FULL_IRET); ASSYM(PCB_DBREGS, PCB_DBREGS); ASSYM(PCB_32BIT, PCB_32BIT); -ASSYM(COMMON_TSS_RSP0, offsetof(struct amd64tss, tss_rsp0)); +ASSYM(TSS_RSP0, offsetof(struct amd64tss, tss_rsp0)); ASSYM(TF_R15, offsetof(struct trapframe, tf_r15)); ASSYM(TF_R14, offsetof(struct trapframe, tf_r14)); Modified: user/jeff/numa/sys/amd64/amd64/machdep.c ============================================================================== --- user/jeff/numa/sys/amd64/amd64/machdep.c Fri Jan 12 23:34:16 2018 (r327901) +++ user/jeff/numa/sys/amd64/amd64/machdep.c Fri Jan 12 23:38:15 2018 (r327902) @@ -1512,6 +1512,22 @@ amd64_kdb_init(void) #endif } +/* Set up the fast syscall stuff */ +void +amd64_conf_fast_syscall(void) +{ + uint64_t msr; + + msr = rdmsr(MSR_EFER) | EFER_SCE; + wrmsr(MSR_EFER, msr); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801122338.w0CNcGkU004085>