svn commit: r335853 - in projects/krb5: . bin/csh bin/dd bin/echo bin/sh bin/sleep bin/uuidgen contrib/amd/amq contrib/compiler-rt/lib/sanitizer_common contrib/dma contrib/file/magic/Magdir contrib...

Cy Schubert cy at FreeBSD.org
Sun Jul 1 20:52:52 UTC 2018


Author: cy
Date: Sun Jul  1 20:52:50 2018
New Revision: 335853
URL: https://svnweb.freebsd.org/changeset/base/335853

Log:
  MFH to r335851, bringing in llvm 6.0.1.

Added:
  projects/krb5/lib/geom/
     - copied from r335778, head/lib/geom/
  projects/krb5/lib/libcasper/libcasper/libcasper_service.3
     - copied unchanged from r335778, head/lib/libcasper/libcasper/libcasper_service.3
  projects/krb5/lib/libnv/tests/nvlist_append_test.c
     - copied unchanged from r335778, head/lib/libnv/tests/nvlist_append_test.c
  projects/krb5/lib/libveriexec/
     - copied from r335778, head/lib/libveriexec/
  projects/krb5/sys/arm/broadcom/bcm2835/bcm2835_sdhost.c
     - copied unchanged from r335808, head/sys/arm/broadcom/bcm2835/bcm2835_sdhost.c
  projects/krb5/sys/arm64/linux/linux_locore.s
     - copied unchanged from r335778, head/sys/arm64/linux/linux_locore.s
  projects/krb5/sys/arm64/linux/linux_machdep.c
     - copied unchanged from r335778, head/sys/arm64/linux/linux_machdep.c
  projects/krb5/sys/arm64/linux/linux_ptrace.c
     - copied unchanged from r335778, head/sys/arm64/linux/linux_ptrace.c
  projects/krb5/sys/arm64/linux/linux_support.s
     - copied unchanged from r335778, head/sys/arm64/linux/linux_support.s
  projects/krb5/sys/arm64/linux/linux_sysvec.c
     - copied unchanged from r335778, head/sys/arm64/linux/linux_sysvec.c
  projects/krb5/sys/arm64/linux/linux_vdso.lds.s
     - copied unchanged from r335778, head/sys/arm64/linux/linux_vdso.lds.s
  projects/krb5/sys/dev/ixl/ixl_debug.h
     - copied unchanged from r335778, head/sys/dev/ixl/ixl_debug.h
  projects/krb5/sys/dev/veriexec/
     - copied from r335778, head/sys/dev/veriexec/
  projects/krb5/sys/dts/arm/overlays/spigen-rpi-b.dtso
     - copied unchanged from r335778, head/sys/dts/arm/overlays/spigen-rpi-b.dtso
  projects/krb5/sys/dts/arm/overlays/spigen-rpi2.dtso
     - copied unchanged from r335778, head/sys/dts/arm/overlays/spigen-rpi2.dtso
  projects/krb5/sys/modules/mac_veriexec/
     - copied from r335778, head/sys/modules/mac_veriexec/
  projects/krb5/sys/modules/mac_veriexec_rmd160/
     - copied from r335778, head/sys/modules/mac_veriexec_rmd160/
  projects/krb5/sys/modules/mac_veriexec_sha1/
     - copied from r335778, head/sys/modules/mac_veriexec_sha1/
  projects/krb5/sys/modules/mac_veriexec_sha256/
     - copied from r335778, head/sys/modules/mac_veriexec_sha256/
  projects/krb5/sys/modules/mac_veriexec_sha384/
     - copied from r335778, head/sys/modules/mac_veriexec_sha384/
  projects/krb5/sys/modules/mac_veriexec_sha512/
     - copied from r335778, head/sys/modules/mac_veriexec_sha512/
  projects/krb5/sys/modules/veriexec/
     - copied from r335778, head/sys/modules/veriexec/
  projects/krb5/sys/powerpc/cpufreq/pmcr.c
     - copied unchanged from r335778, head/sys/powerpc/cpufreq/pmcr.c
  projects/krb5/sys/security/mac_veriexec/
     - copied from r335778, head/sys/security/mac_veriexec/
  projects/krb5/tests/sys/audit/ioctl.c
     - copied unchanged from r335778, head/tests/sys/audit/ioctl.c
  projects/krb5/tests/sys/audit/process-control.c
     - copied, changed from r335778, head/tests/sys/audit/process-control.c
  projects/krb5/tools/build/options/WITHOUT_LLVM_TARGET_AARCH64
     - copied unchanged from r335778, head/tools/build/options/WITHOUT_LLVM_TARGET_AARCH64
  projects/krb5/tools/build/options/WITHOUT_LLVM_TARGET_ALL
     - copied unchanged from r335778, head/tools/build/options/WITHOUT_LLVM_TARGET_ALL
  projects/krb5/tools/build/options/WITHOUT_LLVM_TARGET_ARM
     - copied unchanged from r335778, head/tools/build/options/WITHOUT_LLVM_TARGET_ARM
  projects/krb5/tools/build/options/WITHOUT_LLVM_TARGET_MIPS
     - copied unchanged from r335778, head/tools/build/options/WITHOUT_LLVM_TARGET_MIPS
  projects/krb5/tools/build/options/WITHOUT_LLVM_TARGET_POWERPC
     - copied unchanged from r335778, head/tools/build/options/WITHOUT_LLVM_TARGET_POWERPC
  projects/krb5/tools/build/options/WITHOUT_LLVM_TARGET_SPARC
     - copied unchanged from r335778, head/tools/build/options/WITHOUT_LLVM_TARGET_SPARC
  projects/krb5/tools/build/options/WITHOUT_LLVM_TARGET_X86
     - copied unchanged from r335778, head/tools/build/options/WITHOUT_LLVM_TARGET_X86
  projects/krb5/tools/build/options/WITHOUT_SYSTEM_LINKER
     - copied unchanged from r335778, head/tools/build/options/WITHOUT_SYSTEM_LINKER
  projects/krb5/tools/build/options/WITH_LLVM_TARGET_AARCH64
     - copied unchanged from r335778, head/tools/build/options/WITH_LLVM_TARGET_AARCH64
  projects/krb5/tools/build/options/WITH_LLVM_TARGET_ALL
     - copied unchanged from r335778, head/tools/build/options/WITH_LLVM_TARGET_ALL
  projects/krb5/tools/build/options/WITH_LLVM_TARGET_ARM
     - copied unchanged from r335778, head/tools/build/options/WITH_LLVM_TARGET_ARM
  projects/krb5/tools/build/options/WITH_LLVM_TARGET_MIPS
     - copied unchanged from r335778, head/tools/build/options/WITH_LLVM_TARGET_MIPS
  projects/krb5/tools/build/options/WITH_LLVM_TARGET_POWERPC
     - copied unchanged from r335778, head/tools/build/options/WITH_LLVM_TARGET_POWERPC
  projects/krb5/tools/build/options/WITH_LLVM_TARGET_SPARC
     - copied unchanged from r335778, head/tools/build/options/WITH_LLVM_TARGET_SPARC
  projects/krb5/tools/build/options/WITH_LLVM_TARGET_X86
     - copied unchanged from r335778, head/tools/build/options/WITH_LLVM_TARGET_X86
  projects/krb5/tools/build/options/WITH_SYSTEM_LINKER
     - copied unchanged from r335778, head/tools/build/options/WITH_SYSTEM_LINKER
  projects/krb5/tools/tools/git/git-svn-rebase
     - copied unchanged from r335778, head/tools/tools/git/git-svn-rebase
  projects/krb5/usr.bin/objcopy/
     - copied from r335778, head/usr.bin/objcopy/
  projects/krb5/usr.bin/sort/tests/
     - copied from r335778, head/usr.bin/sort/tests/
  projects/krb5/usr.sbin/spi/
     - copied from r335778, head/usr.sbin/spi/
Deleted:
  projects/krb5/sbin/geom/Makefile.inc
  projects/krb5/sbin/geom/class/
  projects/krb5/sbin/geom/core/Makefile
  projects/krb5/stand/geli/
  projects/krb5/usr.bin/elfcopy/
Modified:
  projects/krb5/.gitignore
  projects/krb5/Makefile
  projects/krb5/Makefile.inc1
  projects/krb5/Makefile.libcompat
  projects/krb5/ObsoleteFiles.inc
  projects/krb5/UPDATING
  projects/krb5/bin/csh/Makefile
  projects/krb5/bin/dd/dd.c
  projects/krb5/bin/echo/echo.c
  projects/krb5/bin/sh/Makefile
  projects/krb5/bin/sleep/sleep.c
  projects/krb5/bin/uuidgen/uuidgen.c
  projects/krb5/contrib/amd/amq/amq.c
  projects/krb5/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
  projects/krb5/contrib/dma/dma-mbox-create.c
  projects/krb5/contrib/file/magic/Magdir/dump
  projects/krb5/contrib/gcc/cppdefault.c
  projects/krb5/contrib/libc++/include/list
  projects/krb5/contrib/libc++/src/support/runtime/exception_libcxxabi.ipp
  projects/krb5/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h
  projects/krb5/contrib/llvm/include/llvm/IR/IntrinsicsPowerPC.td
  projects/krb5/contrib/llvm/lib/Analysis/GlobalsModRef.cpp
  projects/krb5/contrib/llvm/lib/Analysis/MemorySSA.cpp
  projects/krb5/contrib/llvm/lib/CodeGen/IfConversion.cpp
  projects/krb5/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp
  projects/krb5/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp
  projects/krb5/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp
  projects/krb5/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp
  projects/krb5/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
  projects/krb5/contrib/llvm/lib/IR/Core.cpp
  projects/krb5/contrib/llvm/lib/MC/MCObjectFileInfo.cpp
  projects/krb5/contrib/llvm/lib/Support/Host.cpp
  projects/krb5/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
  projects/krb5/contrib/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
  projects/krb5/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
  projects/krb5/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  projects/krb5/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td
  projects/krb5/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
  projects/krb5/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
  projects/krb5/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td
  projects/krb5/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
  projects/krb5/contrib/llvm/lib/Target/ARM/ARMComputeBlockSize.cpp
  projects/krb5/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
  projects/krb5/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
  projects/krb5/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td
  projects/krb5/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td
  projects/krb5/contrib/llvm/lib/Target/Mips/Mips.td
  projects/krb5/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td
  projects/krb5/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td
  projects/krb5/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td
  projects/krb5/contrib/llvm/lib/Target/Mips/MipsDSPInstrFormats.td
  projects/krb5/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp
  projects/krb5/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
  projects/krb5/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td
  projects/krb5/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp
  projects/krb5/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td
  projects/krb5/contrib/llvm/lib/Target/Mips/MipsLongBranch.cpp
  projects/krb5/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp
  projects/krb5/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp
  projects/krb5/contrib/llvm/lib/Target/Mips/MipsSubtarget.h
  projects/krb5/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
  projects/krb5/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
  projects/krb5/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
  projects/krb5/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp
  projects/krb5/contrib/llvm/lib/Target/X86/X86FastISel.cpp
  projects/krb5/contrib/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp
  projects/krb5/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td
  projects/krb5/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
  projects/krb5/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
  projects/krb5/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp
  projects/krb5/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp
  projects/krb5/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
  projects/krb5/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp
  projects/krb5/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp
  projects/krb5/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp
  projects/krb5/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp
  projects/krb5/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp
  projects/krb5/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S
  projects/krb5/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S
  projects/krb5/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td
  projects/krb5/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
  projects/krb5/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td
  projects/krb5/contrib/llvm/tools/clang/include/clang/Driver/Options.td
  projects/krb5/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h
  projects/krb5/contrib/llvm/tools/clang/lib/Basic/Version.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.h
  projects/krb5/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp
  projects/krb5/contrib/llvm/tools/clang/lib/Headers/avx512vlbitalgintrin.h
  projects/krb5/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h
  projects/krb5/contrib/llvm/tools/clang/lib/Headers/avx512vlvnniintrin.h
  projects/krb5/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp
  projects/krb5/contrib/llvm/tools/clang/tools/driver/driver.cpp
  projects/krb5/contrib/llvm/tools/lld/COFF/Config.h
  projects/krb5/contrib/llvm/tools/lld/COFF/Driver.cpp
  projects/krb5/contrib/llvm/tools/lld/COFF/DriverUtils.cpp
  projects/krb5/contrib/llvm/tools/lld/COFF/Options.td
  projects/krb5/contrib/llvm/tools/lld/ELF/Arch/Mips.cpp
  projects/krb5/contrib/llvm/tools/lld/ELF/Config.h
  projects/krb5/contrib/llvm/tools/lld/ELF/Driver.cpp
  projects/krb5/contrib/smbfs/lib/smb/ctx.c
  projects/krb5/contrib/smbfs/lib/smb/nbns_rq.c
  projects/krb5/etc/Makefile
  projects/krb5/etc/defaults/rc.conf
  projects/krb5/etc/devd/devmatch.conf
  projects/krb5/etc/mtree/BSD.debug.dist
  projects/krb5/etc/mtree/BSD.lib32.dist
  projects/krb5/etc/mtree/BSD.usr.dist
  projects/krb5/etc/ntp.conf
  projects/krb5/etc/rc.d/geli
  projects/krb5/etc/rc.d/nfsd
  projects/krb5/etc/rc.d/ntpd
  projects/krb5/gnu/usr.bin/binutils/ld/Makefile
  projects/krb5/gnu/usr.bin/cc/Makefile.inc
  projects/krb5/gnu/usr.bin/cc/cc1/Makefile
  projects/krb5/gnu/usr.bin/cc/cc1plus/Makefile
  projects/krb5/gnu/usr.bin/cc/cc_tools/Makefile
  projects/krb5/gnu/usr.bin/cc/cc_tools/freebsd-native.h
  projects/krb5/lib/Makefile
  projects/krb5/lib/clang/freebsd_cc_version.h
  projects/krb5/lib/clang/headers/Makefile
  projects/krb5/lib/clang/include/clang/Basic/Version.inc
  projects/krb5/lib/clang/include/clang/Config/config.h
  projects/krb5/lib/clang/include/lld/Common/Version.inc
  projects/krb5/lib/clang/include/llvm/Config/AsmParsers.def
  projects/krb5/lib/clang/include/llvm/Config/AsmPrinters.def
  projects/krb5/lib/clang/include/llvm/Config/Disassemblers.def
  projects/krb5/lib/clang/include/llvm/Config/Targets.def
  projects/krb5/lib/clang/include/llvm/Config/config.h
  projects/krb5/lib/clang/include/llvm/Config/llvm-config.h
  projects/krb5/lib/clang/include/llvm/Support/VCSRevision.h
  projects/krb5/lib/clang/libllvm/Makefile
  projects/krb5/lib/clang/llvm.build.mk
  projects/krb5/lib/libc/sys/rename.2
  projects/krb5/lib/libc/sys/sigaction.2
  projects/krb5/lib/libc/tests/ssp/Makefile
  projects/krb5/lib/libcapsicum/capsicum_helpers.h
  projects/krb5/lib/libcasper/libcasper/Makefile
  projects/krb5/lib/libcasper/libcasper/libcasper.3
  projects/krb5/lib/libcasper/libcasper/libcasper.h
  projects/krb5/lib/libcasper/services/cap_pwd/cap_pwd.3
  projects/krb5/lib/libcasper/services/cap_pwd/cap_pwd.c
  projects/krb5/lib/libclang_rt/Makefile.inc
  projects/krb5/lib/libmagic/Makefile
  projects/krb5/lib/libnv/tests/Makefile
  projects/krb5/lib/libnv/tests/cnv_tests.cc
  projects/krb5/lib/libnv/tests/nv_array_tests.cc
  projects/krb5/lib/libpam/static_libpam/Makefile
  projects/krb5/lib/libusb/libusb20.c
  projects/krb5/lib/ncurses/ncurses/Makefile
  projects/krb5/release/packages/generate-ucl.sh
  projects/krb5/release/packages/runtime.ucl
  projects/krb5/sbin/Makefile
  projects/krb5/sbin/decryptcore/decryptcore.c
  projects/krb5/sbin/devd/devd.cc
  projects/krb5/sbin/devd/devd.hh
  projects/krb5/sbin/dhclient/Makefile
  projects/krb5/sbin/dhclient/bpf.c
  projects/krb5/sbin/dhclient/clparse.c
  projects/krb5/sbin/dhclient/conflex.c
  projects/krb5/sbin/dhclient/dhclient.c
  projects/krb5/sbin/dhclient/dhcpd.h
  projects/krb5/sbin/dhclient/dispatch.c
  projects/krb5/sbin/dhclient/options.c
  projects/krb5/sbin/dhclient/privsep.c
  projects/krb5/sbin/dhclient/privsep.h
  projects/krb5/sbin/dumpon/dumpon.c
  projects/krb5/sbin/fsck_msdosfs/boot.c
  projects/krb5/sbin/geom/Makefile
  projects/krb5/sbin/ifconfig/ifconfig.8
  projects/krb5/sbin/ifconfig/ifieee80211.c
  projects/krb5/sbin/ipfw/ipfw.8
  projects/krb5/sbin/md5/md5.c
  projects/krb5/sbin/newfs/newfs.c
  projects/krb5/sbin/pfctl/parse.y
  projects/krb5/sbin/pfctl/pfctl_altq.c
  projects/krb5/share/examples/Makefile
  projects/krb5/share/examples/bhyve/vmrun.sh
  projects/krb5/share/man/man4/carp.4
  projects/krb5/share/man/man4/ddb.4
  projects/krb5/share/man/man4/pf.4
  projects/krb5/share/man/man4/vt.4
  projects/krb5/share/man/man5/dir.5
  projects/krb5/share/man/man5/pf.conf.5
  projects/krb5/share/man/man5/rc.conf.5
  projects/krb5/share/man/man5/src.conf.5
  projects/krb5/share/man/man7/development.7
  projects/krb5/share/man/man8/rc.subr.8
  projects/krb5/share/man/man9/Makefile
  projects/krb5/share/man/man9/OF_getprop.9
  projects/krb5/share/man/man9/cnv.9
  projects/krb5/share/man/man9/epoch.9
  projects/krb5/share/man/man9/fdt_pinctrl.9
  projects/krb5/share/man/man9/nv.9
  projects/krb5/share/misc/bsd-family-tree
  projects/krb5/share/misc/committers-src.dot
  projects/krb5/share/misc/organization.dot
  projects/krb5/share/mk/bsd.README
  projects/krb5/share/mk/bsd.compiler.mk
  projects/krb5/share/mk/bsd.cpu.mk
  projects/krb5/share/mk/bsd.endian.mk
  projects/krb5/share/mk/bsd.init.mk
  projects/krb5/share/mk/bsd.lib.mk
  projects/krb5/share/mk/bsd.linker.mk
  projects/krb5/share/mk/bsd.man.mk
  projects/krb5/share/mk/bsd.own.mk
  projects/krb5/share/mk/bsd.prog.mk
  projects/krb5/share/mk/bsd.suffixes.mk
  projects/krb5/share/mk/local.meta.sys.mk
  projects/krb5/share/mk/src.opts.mk
  projects/krb5/share/mk/src.sys.obj.mk
  projects/krb5/share/mk/sys.mk
  projects/krb5/share/syscons/scrnmaps/Makefile
  projects/krb5/share/termcap/Makefile
  projects/krb5/stand/efi/boot1/boot_module.h
  projects/krb5/stand/forth/check-password.4th.8
  projects/krb5/stand/i386/gptboot/gptboot.c
  projects/krb5/stand/i386/zfsboot/zfsboot.c
  projects/krb5/stand/libsa/Makefile
  projects/krb5/stand/lua/config.lua
  projects/krb5/stand/mips/beri/boot2/Makefile
  projects/krb5/sys/amd64/amd64/pmap.c
  projects/krb5/sys/amd64/conf/GENERIC
  projects/krb5/sys/amd64/conf/NOTES
  projects/krb5/sys/amd64/include/asmacros.h
  projects/krb5/sys/amd64/linux/linux_sysvec.c
  projects/krb5/sys/amd64/linux32/linux32_sysvec.c
  projects/krb5/sys/arm/allwinner/aw_mmc.c
  projects/krb5/sys/arm/allwinner/clkng/aw_clk_nkmp.c
  projects/krb5/sys/arm/allwinner/clkng/aw_clk_nm.c
  projects/krb5/sys/arm/allwinner/files.allwinner
  projects/krb5/sys/arm/arm/generic_timer.c
  projects/krb5/sys/arm/arm/gic.h
  projects/krb5/sys/arm/arm/gic_common.h
  projects/krb5/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c
  projects/krb5/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
  projects/krb5/sys/arm/broadcom/bcm2835/bcm2835_spi.c
  projects/krb5/sys/arm/broadcom/bcm2835/files.bcm283x
  projects/krb5/sys/arm64/arm64/gic_v3_reg.h
  projects/krb5/sys/arm64/arm64/pmap.c
  projects/krb5/sys/arm64/arm64/vm_machdep.c
  projects/krb5/sys/arm64/include/pmap.h
  projects/krb5/sys/arm64/rockchip/if_dwc_rk.c
  projects/krb5/sys/arm64/rockchip/rk_gpio.c
  projects/krb5/sys/cam/mmc/mmc.h
  projects/krb5/sys/cam/mmc/mmc_da.c
  projects/krb5/sys/cam/mmc/mmc_xpt.c
  projects/krb5/sys/compat/linprocfs/linprocfs.c
  projects/krb5/sys/compat/linux/linux_fork.c
  projects/krb5/sys/compat/linux/linux_mib.c
  projects/krb5/sys/compat/linux/linux_misc.c
  projects/krb5/sys/compat/linux/linux_sysctl.c
  projects/krb5/sys/conf/NOTES
  projects/krb5/sys/conf/files
  projects/krb5/sys/conf/files.amd64
  projects/krb5/sys/conf/files.arm64
  projects/krb5/sys/conf/files.powerpc
  projects/krb5/sys/conf/newvers.sh
  projects/krb5/sys/conf/options
  projects/krb5/sys/contrib/dev/acpica/changes.txt
  projects/krb5/sys/contrib/dev/acpica/common/dmextern.c
  projects/krb5/sys/contrib/dev/acpica/compiler/aslglobal.h
  projects/krb5/sys/contrib/dev/acpica/compiler/aslhelpers.y
  projects/krb5/sys/contrib/dev/acpica/compiler/aslload.c
  projects/krb5/sys/contrib/dev/acpica/compiler/aslmain.c
  projects/krb5/sys/contrib/dev/acpica/compiler/aslmessages.c
  projects/krb5/sys/contrib/dev/acpica/compiler/aslmessages.h
  projects/krb5/sys/contrib/dev/acpica/compiler/asloptions.c
  projects/krb5/sys/contrib/dev/acpica/compiler/aslparser.y
  projects/krb5/sys/contrib/dev/acpica/compiler/aslprimaries.y
  projects/krb5/sys/contrib/dev/acpica/compiler/asltransform.c
  projects/krb5/sys/contrib/dev/acpica/compiler/asltypes.y
  projects/krb5/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c
  projects/krb5/sys/contrib/dev/acpica/components/namespace/nsaccess.c
  projects/krb5/sys/contrib/dev/acpica/components/namespace/nseval.c
  projects/krb5/sys/contrib/dev/acpica/components/namespace/nssearch.c
  projects/krb5/sys/contrib/dev/acpica/include/aclocal.h
  projects/krb5/sys/contrib/dev/acpica/include/acpixf.h
  projects/krb5/sys/contrib/libnv/cnvlist.c
  projects/krb5/sys/contrib/libnv/nv_impl.h
  projects/krb5/sys/contrib/libnv/nvlist.c
  projects/krb5/sys/contrib/libnv/nvpair.c
  projects/krb5/sys/crypto/aesni/aesni.c
  projects/krb5/sys/dev/bktr/bktr_core.c
  projects/krb5/sys/dev/bktr/bktr_os.c
  projects/krb5/sys/dev/bktr/bktr_reg.h
  projects/krb5/sys/dev/cxgbe/adapter.h
  projects/krb5/sys/dev/cxgbe/common/t4_hw.c
  projects/krb5/sys/dev/cxgbe/cxgbei/cxgbei.c
  projects/krb5/sys/dev/cxgbe/t4_filter.c
  projects/krb5/sys/dev/cxgbe/t4_main.c
  projects/krb5/sys/dev/efidev/efirtc.c
  projects/krb5/sys/dev/iwn/if_iwn.c
  projects/krb5/sys/dev/iwn/if_iwn_chip_cfg.h
  projects/krb5/sys/dev/iwn/if_iwn_devid.h
  projects/krb5/sys/dev/ixl/i40e_adminq.c
  projects/krb5/sys/dev/ixl/i40e_adminq.h
  projects/krb5/sys/dev/ixl/i40e_adminq_cmd.h
  projects/krb5/sys/dev/ixl/i40e_alloc.h
  projects/krb5/sys/dev/ixl/i40e_common.c
  projects/krb5/sys/dev/ixl/i40e_dcb.c
  projects/krb5/sys/dev/ixl/i40e_dcb.h
  projects/krb5/sys/dev/ixl/i40e_devids.h
  projects/krb5/sys/dev/ixl/i40e_hmc.c
  projects/krb5/sys/dev/ixl/i40e_hmc.h
  projects/krb5/sys/dev/ixl/i40e_lan_hmc.c
  projects/krb5/sys/dev/ixl/i40e_lan_hmc.h
  projects/krb5/sys/dev/ixl/i40e_nvm.c
  projects/krb5/sys/dev/ixl/i40e_osdep.c
  projects/krb5/sys/dev/ixl/i40e_osdep.h
  projects/krb5/sys/dev/ixl/i40e_prototype.h
  projects/krb5/sys/dev/ixl/i40e_register.h
  projects/krb5/sys/dev/ixl/i40e_status.h
  projects/krb5/sys/dev/ixl/i40e_type.h
  projects/krb5/sys/dev/ixl/if_ixl.c
  projects/krb5/sys/dev/ixl/if_ixlv.c
  projects/krb5/sys/dev/ixl/ixl.h
  projects/krb5/sys/dev/ixl/ixl_iw.c
  projects/krb5/sys/dev/ixl/ixl_iw.h
  projects/krb5/sys/dev/ixl/ixl_iw_int.h
  projects/krb5/sys/dev/ixl/ixl_pf.h
  projects/krb5/sys/dev/ixl/ixl_pf_i2c.c
  projects/krb5/sys/dev/ixl/ixl_pf_iov.c
  projects/krb5/sys/dev/ixl/ixl_pf_iov.h
  projects/krb5/sys/dev/ixl/ixl_pf_main.c
  projects/krb5/sys/dev/ixl/ixl_pf_qmgr.c
  projects/krb5/sys/dev/ixl/ixl_pf_qmgr.h
  projects/krb5/sys/dev/ixl/ixl_txrx.c
  projects/krb5/sys/dev/ixl/ixlv.h
  projects/krb5/sys/dev/ixl/ixlv_vc_mgr.h
  projects/krb5/sys/dev/ixl/ixlvc.c
  projects/krb5/sys/dev/ixl/virtchnl.h
  projects/krb5/sys/dev/ofw/ofw_cpu.c
  projects/krb5/sys/dev/pccard/pccard.c
  projects/krb5/sys/dev/psci/smccc.c
  projects/krb5/sys/dev/psci/smccc.h
  projects/krb5/sys/dev/rtwn/rtl8812a/r12a_reg.h
  projects/krb5/sys/dev/rtwn/rtl8812a/usb/r12au.h
  projects/krb5/sys/dev/rtwn/rtl8812a/usb/r12au_init.c
  projects/krb5/sys/dev/rtwn/rtl8821a/usb/r21au.h
  projects/krb5/sys/dev/rtwn/rtl8821a/usb/r21au_attach.c
  projects/krb5/sys/dev/rtwn/rtl8821a/usb/r21au_init.c
  projects/krb5/sys/dev/spibus/spibus.c
  projects/krb5/sys/dev/spibus/spigen.c
  projects/krb5/sys/dev/usb/usb_request.c
  projects/krb5/sys/dev/vt/hw/vga/vt_vga.c
  projects/krb5/sys/dev/xen/grant_table/grant_table.c
  projects/krb5/sys/dev/xen/netback/netback.c
  projects/krb5/sys/fs/nfs/nfs.h
  projects/krb5/sys/fs/nfs/nfs_commonkrpc.c
  projects/krb5/sys/fs/nfs/nfs_commonsubs.c
  projects/krb5/sys/fs/nfs/nfs_var.h
  projects/krb5/sys/fs/nfsclient/nfs_clrpcops.c
  projects/krb5/sys/fs/nfsclient/nfs_clstate.c
  projects/krb5/sys/fs/nfsserver/nfs_nfsdport.c
  projects/krb5/sys/fs/nfsserver/nfs_nfsdstate.c
  projects/krb5/sys/i386/linux/linux_sysvec.c
  projects/krb5/sys/kern/init_main.c
  projects/krb5/sys/kern/kern_cpu.c
  projects/krb5/sys/kern/kern_environment.c
  projects/krb5/sys/kern/kern_fork.c
  projects/krb5/sys/kern/kern_jail.c
  projects/krb5/sys/kern/kern_proc.c
  projects/krb5/sys/kern/kern_sig.c
  projects/krb5/sys/kern/kern_sysctl.c
  projects/krb5/sys/kern/kern_time.c
  projects/krb5/sys/kern/subr_bus.c
  projects/krb5/sys/kern/subr_counter.c
  projects/krb5/sys/kern/subr_devmap.c
  projects/krb5/sys/kern/subr_epoch.c
  projects/krb5/sys/kern/subr_hints.c
  projects/krb5/sys/kern/subr_kdb.c
  projects/krb5/sys/kern/subr_witness.c
  projects/krb5/sys/kern/sys_process.c
  projects/krb5/sys/kern/vfs_cache.c
  projects/krb5/sys/libkern/strlcpy.c
  projects/krb5/sys/mips/malta/malta_machdep.c
  projects/krb5/sys/modules/Makefile
  projects/krb5/sys/modules/dtb/rpi/Makefile
  projects/krb5/sys/modules/ixl/Makefile
  projects/krb5/sys/modules/ixlv/Makefile
  projects/krb5/sys/modules/linux64/Makefile
  projects/krb5/sys/modules/pflog/Makefile
  projects/krb5/sys/modules/pfsync/Makefile
  projects/krb5/sys/net/bpf.c
  projects/krb5/sys/net/bpfdesc.h
  projects/krb5/sys/net/if_me.c
  projects/krb5/sys/net/pfvar.h
  projects/krb5/sys/netinet/in_gif.c
  projects/krb5/sys/netinet/in_pcb.c
  projects/krb5/sys/netinet/in_pcb.h
  projects/krb5/sys/netinet/ip.h
  projects/krb5/sys/netinet/ip6.h
  projects/krb5/sys/netinet/ip_carp.c
  projects/krb5/sys/netinet/ip_gre.c
  projects/krb5/sys/netinet/raw_ip.c
  projects/krb5/sys/netinet/tcp_fastopen.c
  projects/krb5/sys/netinet/tcp_fsm.h
  projects/krb5/sys/netinet/tcp_hpts.c
  projects/krb5/sys/netinet/tcp_input.c
  projects/krb5/sys/netinet/tcp_offload.c
  projects/krb5/sys/netinet/tcp_output.c
  projects/krb5/sys/netinet/tcp_stacks/rack.c
  projects/krb5/sys/netinet/tcp_subr.c
  projects/krb5/sys/netinet/tcp_timewait.c
  projects/krb5/sys/netinet/udp_usrreq.c
  projects/krb5/sys/netinet6/in6_gif.c
  projects/krb5/sys/netinet6/in6_pcb.c
  projects/krb5/sys/netinet6/ip6_gre.c
  projects/krb5/sys/netipsec/key_debug.c
  projects/krb5/sys/netpfil/pf/if_pfsync.c
  projects/krb5/sys/netpfil/pf/pf.c
  projects/krb5/sys/netpfil/pf/pf_ioctl.c
  projects/krb5/sys/powerpc/aim/trap_subr64.S
  projects/krb5/sys/powerpc/include/kdb.h
  projects/krb5/sys/powerpc/include/smp.h
  projects/krb5/sys/powerpc/include/spr.h
  projects/krb5/sys/powerpc/powernv/opal_console.c
  projects/krb5/sys/riscv/conf/GENERIC
  projects/krb5/sys/riscv/riscv/plic.c
  projects/krb5/sys/sys/bus.h
  projects/krb5/sys/sys/cnv.h
  projects/krb5/sys/sys/cpu.h
  projects/krb5/sys/sys/dirent.h
  projects/krb5/sys/sys/epoch.h
  projects/krb5/sys/sys/event.h
  projects/krb5/sys/sys/nv.h
  projects/krb5/sys/sys/proc.h
  projects/krb5/sys/sys/syscallsubr.h
  projects/krb5/sys/sys/systm.h
  projects/krb5/sys/ufs/ffs/ffs_alloc.c
  projects/krb5/sys/ufs/ffs/ffs_suspend.c
  projects/krb5/sys/ufs/ffs/ffs_vfsops.c
  projects/krb5/sys/ufs/ufs/ufsmount.h
  projects/krb5/sys/vm/uma_core.c
  projects/krb5/sys/vm/uma_int.h
  projects/krb5/sys/vm/vm_page.c
  projects/krb5/sys/vm/vm_phys.c
  projects/krb5/sys/vm/vm_phys.h
  projects/krb5/sys/vm/vm_radix.c
  projects/krb5/sys/vm/vm_unix.c
  projects/krb5/sys/x86/include/x86_var.h
  projects/krb5/sys/x86/isa/atrtc.c
  projects/krb5/sys/x86/x86/cpu_machdep.c
  projects/krb5/sys/x86/x86/tsc.c
  projects/krb5/sys/x86/xen/hvm.c
  projects/krb5/targets/pseudo/userland/Makefile.depend
  projects/krb5/targets/pseudo/userland/lib/Makefile.depend
  projects/krb5/tests/sys/audit/Makefile
  projects/krb5/tests/sys/audit/administrative.c
  projects/krb5/tests/sys/audit/file-attribute-access.c
  projects/krb5/tests/sys/audit/file-attribute-modify.c
  projects/krb5/tests/sys/audit/inter-process.c
  projects/krb5/tests/sys/audit/network.c
  projects/krb5/tools/boot/rootgen.sh
  projects/krb5/tools/build/beinstall.sh
  projects/krb5/tools/build/mk/OptionalObsoleteFiles.inc
  projects/krb5/tools/tools/git/HOWTO
  projects/krb5/usr.bin/Makefile
  projects/krb5/usr.bin/ar/acplex.l
  projects/krb5/usr.bin/ar/acpyacc.y
  projects/krb5/usr.bin/ar/ar.c
  projects/krb5/usr.bin/ar/ar.h
  projects/krb5/usr.bin/ar/read.c
  projects/krb5/usr.bin/ar/util.c
  projects/krb5/usr.bin/ar/write.c
  projects/krb5/usr.bin/basename/basename.c
  projects/krb5/usr.bin/clang/lld/Makefile
  projects/krb5/usr.bin/cmp/cmp.c
  projects/krb5/usr.bin/col/col.c
  projects/krb5/usr.bin/diff/diffreg.c
  projects/krb5/usr.bin/diff3/diff3.c
  projects/krb5/usr.bin/dirname/dirname.c
  projects/krb5/usr.bin/elfdump/elfdump.c
  projects/krb5/usr.bin/find/find.c
  projects/krb5/usr.bin/find/function.c
  projects/krb5/usr.bin/find/getdate.y
  projects/krb5/usr.bin/find/ls.c
  projects/krb5/usr.bin/find/main.c
  projects/krb5/usr.bin/find/misc.c
  projects/krb5/usr.bin/find/operator.c
  projects/krb5/usr.bin/find/option.c
  projects/krb5/usr.bin/getopt/getopt.c
  projects/krb5/usr.bin/hexdump/display.c
  projects/krb5/usr.bin/iconv/iconv.c
  projects/krb5/usr.bin/ident/ident.c
  projects/krb5/usr.bin/indent/indent.c
  projects/krb5/usr.bin/jot/jot.c
  projects/krb5/usr.bin/kdump/kdump.c
  projects/krb5/usr.bin/ktrdump/ktrdump.c
  projects/krb5/usr.bin/lam/lam.c
  projects/krb5/usr.bin/last/last.c
  projects/krb5/usr.bin/locate/bigram/locate.bigram.c
  projects/krb5/usr.bin/logname/logname.c
  projects/krb5/usr.bin/ministat/ministat.c
  projects/krb5/usr.bin/pom/pom.c
  projects/krb5/usr.bin/primes/primes.c
  projects/krb5/usr.bin/printenv/printenv.c
  projects/krb5/usr.bin/rup/Makefile
  projects/krb5/usr.bin/rup/rup.c
  projects/krb5/usr.bin/rusers/rusers.c
  projects/krb5/usr.bin/rwho/rwho.c
  projects/krb5/usr.bin/sort/Makefile
  projects/krb5/usr.bin/sort/file.c
  projects/krb5/usr.bin/sort/file.h
  projects/krb5/usr.bin/sort/sort.c
  projects/krb5/usr.bin/su/Makefile
  projects/krb5/usr.bin/systat/cmds.c
  projects/krb5/usr.bin/tee/tee.c
  projects/krb5/usr.bin/top/Makefile
  projects/krb5/usr.bin/top/commands.c
  projects/krb5/usr.bin/top/display.c
  projects/krb5/usr.bin/top/machine.c
  projects/krb5/usr.bin/top/machine.h
  projects/krb5/usr.bin/top/screen.c
  projects/krb5/usr.bin/top/screen.h
  projects/krb5/usr.bin/top/top.c
  projects/krb5/usr.bin/top/top.h
  projects/krb5/usr.bin/top/utils.c
  projects/krb5/usr.bin/top/utils.h
  projects/krb5/usr.bin/tr/tr.c
  projects/krb5/usr.bin/uniq/uniq.c
  projects/krb5/usr.bin/units/units.c
  projects/krb5/usr.bin/users/users.cc
  projects/krb5/usr.bin/vgrind/Makefile
  projects/krb5/usr.bin/vi/catalog/Makefile
  projects/krb5/usr.bin/write/write.c
  projects/krb5/usr.bin/yes/yes.c
  projects/krb5/usr.sbin/Makefile
  projects/krb5/usr.sbin/acpi/acpidump/acpidump.8
  projects/krb5/usr.sbin/bhyve/bhyverun.c
  projects/krb5/usr.sbin/config/config.5
  projects/krb5/usr.sbin/config/config.h
  projects/krb5/usr.sbin/config/config.y
  projects/krb5/usr.sbin/config/lang.l
  projects/krb5/usr.sbin/config/main.c
  projects/krb5/usr.sbin/config/mkmakefile.c
  projects/krb5/usr.sbin/cxgbetool/cxgbetool.c
  projects/krb5/usr.sbin/nfsd/nfsd.c
  projects/krb5/usr.sbin/pnfsdsfile/pnfsdsfile.8
  projects/krb5/usr.sbin/pnfsdsfile/pnfsdsfile.c
  projects/krb5/usr.sbin/portsnap/portsnap/portsnap.8
  projects/krb5/usr.sbin/powerd/powerd.c
  projects/krb5/usr.sbin/rmt/Makefile
  projects/krb5/usr.sbin/rwhod/rwhod.c
  projects/krb5/usr.sbin/syslogd/syslogd.c
Directory Properties:
  projects/krb5/   (props changed)
  projects/krb5/contrib/amd/   (props changed)
  projects/krb5/contrib/compiler-rt/   (props changed)
  projects/krb5/contrib/dma/   (props changed)
  projects/krb5/contrib/file/   (props changed)
  projects/krb5/contrib/gcc/   (props changed)
  projects/krb5/contrib/libc++/   (props changed)
  projects/krb5/contrib/llvm/   (props changed)
  projects/krb5/contrib/llvm/projects/libunwind/   (props changed)
  projects/krb5/contrib/llvm/tools/clang/   (props changed)
  projects/krb5/contrib/llvm/tools/lld/   (props changed)
  projects/krb5/contrib/llvm/tools/lldb/   (props changed)
  projects/krb5/contrib/pf/   (props changed)
  projects/krb5/contrib/wpa/   (props changed)
  projects/krb5/gnu/usr.bin/binutils/   (props changed)
  projects/krb5/gnu/usr.bin/cc/cc_tools/   (props changed)
  projects/krb5/sys/contrib/dev/acpica/   (props changed)

Modified: projects/krb5/.gitignore
==============================================================================
--- projects/krb5/.gitignore	Sun Jul  1 20:09:56 2018	(r335852)
+++ projects/krb5/.gitignore	Sun Jul  1 20:52:50 2018	(r335853)
@@ -1,4 +1,5 @@
 _.tinderbox.*
+_.universe-toolchain
 _.amd64.*
 _.arm.*
 _.arm64.*

Modified: projects/krb5/Makefile
==============================================================================
--- projects/krb5/Makefile	Sun Jul  1 20:09:56 2018	(r335852)
+++ projects/krb5/Makefile	Sun Jul  1 20:52:50 2018	(r335853)
@@ -143,7 +143,7 @@ TGTS=	all all-man buildenv buildenvvars buildkernel bu
 	stage-packages \
 	create-packages-world create-packages-kernel create-packages \
 	packages installconfig real-packages sign-packages package-pkg \
-	print-dir test-system-compiler
+	print-dir test-system-compiler test-system-linker
 
 # These targets require a TARGET and TARGET_ARCH be defined.
 XTGTS=	native-xtools native-xtools-install xdev xdev-build xdev-install \
@@ -168,8 +168,8 @@ META_TGT_WHITELIST+= \
 	_* build32 buildfiles buildincludes buildkernel buildsoft \
 	buildworld everything kernel-toolchain kernel-toolchains kernel \
 	kernels libraries native-xtools showconfig test-system-compiler \
-	tinderbox toolchain \
-	toolchains universe world worlds xdev xdev-build
+	test-system-linker tinderbox toolchain \
+	toolchains universe universe-toolchain world worlds xdev xdev-build
 
 .ORDER: buildworld installworld
 .ORDER: buildworld distrib-dirs
@@ -205,7 +205,7 @@ _MAKEOBJDIRPREFIX!= /usr/bin/env -i PATH=${PATH} ${MAK
 # We often need to use the tree's version of make to build it.
 # Choices add to complexity though.
 # We cannot blindly use a make which may not be the one we want
-# so be exlicit - until all choice is removed.
+# so be explicit - until all choice is removed.
 WANT_MAKE=	bmake
 .if !empty(.MAKE.MODE:Mmeta)
 # 20160604 - support missing-meta,missing-filemon and performance improvements
@@ -480,7 +480,8 @@ worlds: .PHONY
 # with a reasonable chance of success, regardless of how old your
 # existing system is.
 #
-.if make(universe) || make(universe_kernels) || make(tinderbox) || make(targets)
+.if make(universe) || make(universe_kernels) || make(tinderbox) || \
+    make(targets) || make(universe-toolchain)
 TARGETS?=amd64 arm arm64 i386 mips powerpc riscv sparc64
 _UNIVERSE_TARGETS=	${TARGETS}
 TARGET_ARCHES_arm?=	arm armeb armv6 armv7
@@ -542,6 +543,36 @@ universe_prologue: .PHONY
 .if defined(DOING_TINDERBOX)
 	@rm -f ${FAILFILE}
 .endif
+
+universe-toolchain: .PHONY universe_prologue
+	@echo "--------------------------------------------------------------"
+	@echo "> Toolchain bootstrap started on `LC_ALL=C date`"
+	@echo "--------------------------------------------------------------"
+	${_+_}@cd ${.CURDIR}; \
+	    env PATH=${PATH} ${SUB_MAKE} ${JFLAG} kernel-toolchain \
+	    TARGET=${MACHINE} TARGET_ARCH=${MACHINE_ARCH} \
+	    OBJTOP="${HOST_OBJTOP}" \
+	    WITHOUT_SYSTEM_COMPILER=yes \
+	    WITHOUT_SYSTEM_LINKER=yes \
+	    TOOLS_PREFIX_UNDEF= \
+	    kernel-toolchain \
+	    MK_LLVM_TARGET_ALL=yes \
+	    > _.${.TARGET} 2>&1 || \
+	    (echo "${.TARGET} failed," \
+	    "check _.${.TARGET} for details" | \
+	    ${MAKEFAIL}; false)
+	@if [ ! -e "${HOST_OBJTOP}/tmp/usr/bin/cc" ]; then \
+	    echo "Missing host compiler at ${HOST_OBJTOP}/tmp/usr/bin/cc?" >&2; \
+	    false; \
+	fi
+	@if [ ! -e "${HOST_OBJTOP}/tmp/usr/bin/ld" ]; then \
+	    echo "Missing host linker at ${HOST_OBJTOP}/tmp/usr/bin/cc?" >&2; \
+	    false; \
+	fi
+	@echo "--------------------------------------------------------------"
+	@echo "> Toolchain bootstrap completed on `LC_ALL=C date`"
+	@echo "--------------------------------------------------------------"
+
 .for target in ${_UNIVERSE_TARGETS}
 universe: universe_${target}
 universe_epilogue: universe_${target}
@@ -550,10 +581,58 @@ universe_${target}_prologue: universe_prologue .PHONY
 	@echo ">> ${target} started on `LC_ALL=C date`"
 universe_${target}_worlds: .PHONY
 
+.if !make(targets) && !make(universe-toolchain)
+.for target_arch in ${TARGET_ARCHES_${target}}
+.if !defined(_need_clang_${target}_${target_arch})
+_need_clang_${target}_${target_arch} != \
+	env TARGET=${target} TARGET_ARCH=${target_arch} \
+	${SUB_MAKE} -C ${.CURDIR} -f Makefile.inc1 test-system-compiler \
+	    ${MAKE_PARAMS_${target}} -V MK_CLANG_BOOTSTRAP 2>/dev/null || \
+	    echo unknown
+.export _need_clang_${target}_${target_arch}
+.endif
+.if !defined(_need_lld_${target}_${target_arch})
+_need_lld_${target}_${target_arch} != \
+	env TARGET=${target} TARGET_ARCH=${target_arch} \
+	${SUB_MAKE} -C ${.CURDIR} -f Makefile.inc1 test-system-linker \
+	    ${MAKE_PARAMS_${target}} -V MK_LLD_BOOTSTRAP 2>/dev/null || \
+	    echo unknown
+.export _need_lld_${target}_${target_arch}
+.endif
+# Setup env for each arch to use the one clang.
+.if defined(_need_clang_${target}_${target_arch}) && \
+    ${_need_clang_${target}_${target_arch}} == "yes"
+# No check on existing XCC or CROSS_BINUTILS_PREFIX, etc, is needed since
+# we use the test-system-compiler logic to determine if clang needs to be
+# built.  It will be no from that logic if already using an external
+# toolchain or /usr/bin/cc.
+# XXX: Passing HOST_OBJTOP into the PATH would allow skipping legacy,
+#      bootstrap-tools, and cross-tools.  Need to ensure each tool actually
+#      supports all TARGETS though.
+MAKE_PARAMS_${target}+= \
+	XCC="${HOST_OBJTOP}/tmp/usr/bin/cc" \
+	XCXX="${HOST_OBJTOP}/tmp/usr/bin/c++" \
+	XCPP="${HOST_OBJTOP}/tmp/usr/bin/cpp"
+.endif
+.if defined(_need_lld_${target}_${target_arch}) && \
+    ${_need_lld_${target}_${target_arch}} == "yes"
+MAKE_PARAMS_${target}+= \
+	XLD="${HOST_OBJTOP}/tmp/usr/bin/ld"
+.endif
+.endfor
+.endif	# !make(targets)
+
 .if !defined(MAKE_JUST_KERNELS)
 universe_${target}_done: universe_${target}_worlds .PHONY
 .for target_arch in ${TARGET_ARCHES_${target}}
 universe_${target}_worlds: universe_${target}_${target_arch} .PHONY
+.if (defined(_need_clang_${target}_${target_arch}) && \
+    ${_need_clang_${target}_${target_arch}} == "yes") || \
+    (defined(_need_lld_${target}_${target_arch}) && \
+    ${_need_lld_${target}_${target_arch}} == "yes")
+universe_${target}_${target_arch}: universe-toolchain
+universe_${target}_prologue: universe-toolchain
+.endif
 universe_${target}_${target_arch}: universe_${target}_prologue .MAKE .PHONY
 	@echo ">> ${target}.${target_arch} ${UNIVERSE_TARGET} started on `LC_ALL=C date`"
 	@(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
@@ -573,13 +652,13 @@ universe_${target}_${target_arch}: universe_${target}_
 universe_${target}_done: universe_${target}_kernels .PHONY
 universe_${target}_kernels: universe_${target}_worlds .PHONY
 universe_${target}_kernels: universe_${target}_prologue .MAKE .PHONY
-.if exists(${KERNSRCDIR}/${target}/conf/NOTES)
-	@(cd ${KERNSRCDIR}/${target}/conf && env __MAKE_CONF=/dev/null \
+	@if [ -e "${KERNSRCDIR}/${target}/conf/NOTES" ]; then \
+	  (cd ${KERNSRCDIR}/${target}/conf && env __MAKE_CONF=/dev/null \
 	    ${SUB_MAKE} LINT \
 	    > ${.CURDIR}/_.${target}.makeLINT 2>&1 || \
 	    (echo "${target} 'make LINT' failed," \
-	    "check _.${target}.makeLINT for details"| ${MAKEFAIL}))
-.endif
+	    "check _.${target}.makeLINT for details"| ${MAKEFAIL})); \
+	fi
 	@cd ${.CURDIR}; ${SUB_MAKE} ${.MAKEFLAGS} TARGET=${target} \
 	    universe_kernels
 .endif # !MAKE_JUST_WORLDS
@@ -590,10 +669,13 @@ universe_${target}_done:
 	@echo ">> ${target} completed on `LC_ALL=C date`"
 .endfor
 .if make(universe_kernconfs) || make(universe_kernels)
-universe_kernels: universe_kernconfs .PHONY
 .if !defined(TARGET)
 TARGET!=	uname -m
 .endif
+universe_kernels_prologue: .PHONY
+	@echo ">> ${TARGET} kernels started on `LC_ALL=C date`"
+universe_kernels: universe_kernconfs .PHONY
+	@echo ">> ${TARGET} kernels completed on `LC_ALL=C date`"
 .if defined(MAKE_ALL_KERNELS)
 _THINNER=cat
 .elif defined(MAKE_LINT_KERNELS)
@@ -606,7 +688,7 @@ KERNCONFS!=	cd ${KERNSRCDIR}/${TARGET}/conf && \
 		-type f -maxdepth 0 \
 		! -name DEFAULTS ! -name NOTES | \
 		${_THINNER}
-universe_kernconfs: .PHONY
+universe_kernconfs: universe_kernels_prologue .PHONY
 .for kernel in ${KERNCONFS}
 TARGET_ARCH_${kernel}!=	cd ${KERNSRCDIR}/${TARGET}/conf && \
 	config -m ${KERNSRCDIR}/${TARGET}/conf/${kernel} 2> /dev/null | \
@@ -616,6 +698,7 @@ TARGET_ARCH_${kernel}!=	cd ${KERNSRCDIR}/${TARGET}/con
 .endif
 universe_kernconfs: universe_kernconf_${TARGET}_${kernel}
 universe_kernconf_${TARGET}_${kernel}: .MAKE
+	@echo ">> ${TARGET}.${TARGET_ARCH_${kernel}} ${kernel} kernel started on `LC_ALL=C date`"
 	@(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
 	    ${SUB_MAKE} ${JFLAG} buildkernel \
 	    TARGET=${TARGET} \
@@ -625,6 +708,7 @@ universe_kernconf_${TARGET}_${kernel}: .MAKE
 	    > _.${TARGET}.${kernel} 2>&1 || \
 	    (echo "${TARGET} ${kernel} kernel failed," \
 	    "check _.${TARGET}.${kernel} for details"| ${MAKEFAIL}))
+	@echo ">> ${TARGET}.${TARGET_ARCH_${kernel}} ${kernel} kernel completed on `LC_ALL=C date`"
 .endfor
 .endif	# make(universe_kernels)
 universe: universe_epilogue

Modified: projects/krb5/Makefile.inc1
==============================================================================
--- projects/krb5/Makefile.inc1	Sun Jul  1 20:09:56 2018	(r335852)
+++ projects/krb5/Makefile.inc1	Sun Jul  1 20:52:50 2018	(r335853)
@@ -50,6 +50,10 @@
 .error "Both TARGET and TARGET_ARCH must be defined."
 .endif
 
+.if make(showconfig) || make(test-system-*)
+_MKSHOWCONFIG=	t
+.endif
+
 SRCDIR?=	${.CURDIR}
 LOCALBASE?=	/usr/local
 
@@ -88,8 +92,8 @@ MK_GCC_BOOTSTRAP=	no
 # running CC from bsd.compiler.mk.
 .if make(installworld) || make(install) || make(distributeworld) || \
     make(stageworld)
-.-include "${OBJTOP}/compiler-metadata.mk"
-.if !defined(_LOADED_COMPILER_METADATA)
+.-include "${OBJTOP}/toolchain-metadata.mk"
+.if !defined(_LOADED_TOOLCHAIN_METADATA)
 .error A build is required first.  You may have the wrong MAKEOBJDIRPREFIX set.
 .endif
 .endif
@@ -97,9 +101,117 @@ MK_GCC_BOOTSTRAP=	no
 # Pull in COMPILER_TYPE and COMPILER_FREEBSD_VERSION early. Pull it from the
 # tree to be friendlier to foreign OS builds. It's safe to do so unconditionally
 # here since we will always have the right make, unlike in src/Makefile
+# Don't include bsd.linker.mk yet until XBINUTILS is handled (after src.opts.mk)
+_NO_INCLUDE_LINKERMK=	t
 .include "share/mk/bsd.compiler.mk"
+.undef _NO_INCLUDE_LINKERMK
+# src.opts.mk depends on COMPILER_FEATURES
 .include "share/mk/src.opts.mk"
 
+.if ${TARGET} == ${MACHINE}
+TARGET_CPUTYPE?=${CPUTYPE}
+.else
+TARGET_CPUTYPE?=
+.endif
+.if !empty(TARGET_CPUTYPE)
+_TARGET_CPUTYPE=${TARGET_CPUTYPE}
+.else
+_TARGET_CPUTYPE=dummy
+.endif
+.if ${TARGET} == "arm"
+.if ${TARGET_ARCH:Marmv[67]*} != "" && ${TARGET_CPUTYPE:M*soft*} == ""
+TARGET_ABI=	gnueabihf
+.else
+TARGET_ABI=	gnueabi
+.endif
+.endif
+MACHINE_ABI?=	unknown
+MACHINE_TRIPLE?=${MACHINE_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}-${MACHINE_ABI}-freebsd12.0
+TARGET_ABI?=	unknown
+TARGET_TRIPLE?=	${TARGET_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}-${TARGET_ABI}-freebsd12.0
+KNOWN_ARCHES?=	aarch64/arm64 \
+		amd64 \
+		arm \
+		armeb/arm \
+		armv6/arm \
+		armv7/arm \
+		i386 \
+		mips \
+		mipsel/mips \
+		mips64el/mips \
+		mipsn32el/mips \
+		mips64/mips \
+		mipsn32/mips \
+		mipshf/mips \
+		mipselhf/mips \
+		mips64elhf/mips \
+		mips64hf/mips \
+		powerpc \
+		powerpc64/powerpc \
+		powerpcspe/powerpc \
+		riscv64/riscv \
+		riscv64sf/riscv \
+		sparc64
+
+.if ${TARGET} == ${TARGET_ARCH}
+_t=		${TARGET}
+.else
+_t=		${TARGET_ARCH}/${TARGET}
+.endif
+.for _t in ${_t}
+.if empty(KNOWN_ARCHES:M${_t})
+.error Unknown target ${TARGET_ARCH}:${TARGET}.
+.endif
+.endfor
+
+# If all targets are disabled for system llvm then don't expect it to work
+# for cross-builds.
+.if !defined(TOOLS_PREFIX) && ${MK_LLVM_TARGET_ALL} == "no" && \
+    ${MACHINE} != ${TARGET} && ${MACHINE_ARCH} != ${TARGET_ARCH} && \
+    !make(showconfig)
+MK_SYSTEM_COMPILER=	no
+MK_SYSTEM_LINKER=	no
+.endif
+
+# Handle external binutils.
+.if defined(CROSS_TOOLCHAIN_PREFIX)
+CROSS_BINUTILS_PREFIX?=${CROSS_TOOLCHAIN_PREFIX}
+.endif
+# If we do not have a bootstrap binutils (because the in-tree one does not
+# support the target architecture), provide a default cross-binutils prefix.
+# This allows riscv64 builds, for example, to automatically use the
+# riscv64-binutils port or package.
+.if !make(showconfig)
+.if !empty(BROKEN_OPTIONS:MBINUTILS_BOOTSTRAP) && \
+    ${MK_LLD_BOOTSTRAP} == "no" && \
+    !defined(CROSS_BINUTILS_PREFIX)
+CROSS_BINUTILS_PREFIX=/usr/local/${TARGET_TRIPLE}/bin/
+.if !exists(${CROSS_BINUTILS_PREFIX})
+.error In-tree binutils does not support the ${TARGET_ARCH} architecture. Install the ${TARGET_ARCH}-binutils port or package or set CROSS_BINUTILS_PREFIX.
+.endif
+.endif
+.endif
+XBINUTILS=	AS AR LD NM OBJCOPY RANLIB SIZE STRINGS
+.for BINUTIL in ${XBINUTILS}
+.if defined(CROSS_BINUTILS_PREFIX) && \
+    exists(${CROSS_BINUTILS_PREFIX}/${${BINUTIL}})
+X${BINUTIL}?=	${CROSS_BINUTILS_PREFIX:C,/*$,,}/${${BINUTIL}}
+.else
+X${BINUTIL}?=	${${BINUTIL}}
+.endif
+.endfor
+
+# If a full path to an external linker is given, don't build lld.
+.if ${XLD:M/*}
+MK_LLD_BOOTSTRAP=	no
+.endif
+
+.include "share/mk/bsd.linker.mk"
+
+# Begin WITH_SYSTEM_COMPILER / WITH_SYSTEM_LD
+
+# WITH_SYSTEM_COMPILER - Pull in needed values and make a decision.
+
 # Check if there is a local compiler that can satisfy as an external compiler.
 # Which compiler is expected to be used?
 .if ${MK_CLANG_BOOTSTRAP} == "yes"
@@ -109,7 +221,9 @@ WANT_COMPILER_TYPE=	gcc
 .else
 WANT_COMPILER_TYPE=
 .endif
-.if !defined(WANT_COMPILER_FREEBSD_VERSION)
+
+.if !defined(WANT_COMPILER_FREEBSD_VERSION) && !make(showconfig) && \
+    !make(test-system-linker)
 .if ${WANT_COMPILER_TYPE} == "clang"
 WANT_COMPILER_FREEBSD_VERSION_FILE= lib/clang/freebsd_cc_version.h
 WANT_COMPILER_FREEBSD_VERSION!= \
@@ -131,23 +245,72 @@ WANT_COMPILER_VERSION!= \
 .endif
 .export WANT_COMPILER_FREEBSD_VERSION WANT_COMPILER_VERSION
 .endif	# !defined(WANT_COMPILER_FREEBSD_VERSION)
+
 # It needs to be the same revision as we would build for the bootstrap.
 # If the expected vs CC is different then we can't skip.
 # GCC cannot be used for cross-arch yet.  For clang we pass -target later if
 # TARGET_ARCH!=MACHINE_ARCH.
 .if ${MK_SYSTEM_COMPILER} == "yes" && \
+    defined(WANT_COMPILER_FREEBSD_VERSION) && \
     (${MK_CLANG_BOOTSTRAP} == "yes" || ${MK_GCC_BOOTSTRAP} == "yes") && \
-    !make(showconfig) && !make(xdev*) && \
-    ${WANT_COMPILER_TYPE} == ${COMPILER_TYPE} && \
-    (${COMPILER_TYPE} == "clang" || ${TARGET_ARCH} == ${MACHINE_ARCH}) && \
-    ${COMPILER_VERSION} == ${WANT_COMPILER_VERSION} && \
-    ${COMPILER_FREEBSD_VERSION} == ${WANT_COMPILER_FREEBSD_VERSION}
+    !make(xdev*) && \
+    ${X_COMPILER_TYPE} == ${WANT_COMPILER_TYPE} && \
+    (${X_COMPILER_TYPE} == "clang" || ${TARGET_ARCH} == ${MACHINE_ARCH}) && \
+    ${X_COMPILER_VERSION} == ${WANT_COMPILER_VERSION} && \
+    ${X_COMPILER_FREEBSD_VERSION} == ${WANT_COMPILER_FREEBSD_VERSION}
 # Everything matches, disable the bootstrap compiler.
 MK_CLANG_BOOTSTRAP=	no
 MK_GCC_BOOTSTRAP=	no
 USING_SYSTEM_COMPILER=	yes
 .endif	# ${WANT_COMPILER_TYPE} == ${COMPILER_TYPE}
+
+# WITH_SYSTEM_LD - Pull in needed values and make a decision.
+
+# Check if there is a local linker that can satisfy as an external linker.
+# Which linker is expected to be used?
+.if ${MK_LLD_BOOTSTRAP} == "yes"
+WANT_LINKER_TYPE=		lld
+.elif ${MK_BINUTILS_BOOTSTRAP} == "yes"
+# Note that there's no support for bfd in WITH_SYSTEM_LINKER.
+WANT_LINKER_TYPE=	bfd
+.else
+WANT_LINKER_TYPE=
+.endif
+
+.if !defined(WANT_LINKER_FREEBSD_VERSION) && !make(showconfig) && \
+    !make(test-system-compiler)
+.if ${WANT_LINKER_TYPE} == "lld"
+WANT_LINKER_FREEBSD_VERSION_FILE= lib/clang/include/lld/Common/Version.inc
+WANT_LINKER_FREEBSD_VERSION!= \
+	awk '$$2 == "LLD_REVISION_STRING" {gsub(/"/, "", $$3); print $$3}' \
+	${SRCDIR}/${WANT_LINKER_FREEBSD_VERSION_FILE} || echo unknown
+WANT_LINKER_VERSION_FILE= lib/clang/include/lld/Common/Version.inc
+WANT_LINKER_VERSION!= \
+	awk '$$2 == "LLD_VERSION" {split($$3, a, "."); print a[1] * 10000 + a[2] * 100 + a[3]}' \
+	${SRCDIR}/${WANT_LINKER_VERSION_FILE} || echo unknown
+.else
+WANT_LINKER_FREEBSD_VERSION_FILE=
+WANT_LINKER_FREEBSD_VERSION=
+.endif
+.export WANT_LINKER_FREEBSD_VERSION WANT_LINKER_VERSION
+.endif	# !defined(WANT_LINKER_FREEBSD_VERSION)
+
+.if ${MK_SYSTEM_LINKER} == "yes" && \
+    defined(WANT_LINKER_FREEBSD_VERSION) && \
+    (${MK_LLD_BOOTSTRAP} == "yes") && \
+    !make(xdev*) && \
+    ${X_LINKER_TYPE} == ${WANT_LINKER_TYPE} && \
+    ${X_LINKER_VERSION} == ${WANT_LINKER_VERSION} && \
+    ${X_LINKER_FREEBSD_VERSION} == ${WANT_LINKER_FREEBSD_VERSION}
+# Everything matches, disable the bootstrap linker.
+MK_LLD_BOOTSTRAP=	no
+USING_SYSTEM_LINKER=	yes
+.endif	# ${WANT_LINKER_TYPE} == ${LINKER_TYPE}
+
+# WITH_SYSTEM_COMPILER / WITH_SYSTEM_LINKER - Handle defaults and debug.
 USING_SYSTEM_COMPILER?=	no
+USING_SYSTEM_LINKER?=	no
+
 TEST_SYSTEM_COMPILER_VARS= \
 	USING_SYSTEM_COMPILER MK_SYSTEM_COMPILER \
 	MK_CROSS_COMPILER MK_CLANG_BOOTSTRAP MK_GCC_BOOTSTRAP \
@@ -155,84 +318,63 @@ TEST_SYSTEM_COMPILER_VARS= \
 	WANT_COMPILER_FREEBSD_VERSION WANT_COMPILER_FREEBSD_VERSION_FILE \
 	CC COMPILER_TYPE COMPILER_FEATURES COMPILER_VERSION \
 	COMPILER_FREEBSD_VERSION \
-	X_COMPILER_TYPE X_COMPILER_FEATURES X_COMPILER_VERSION \
-	X_COMPILER_FREEBSD_VERSION \
-	LINKER_TYPE LINKER_FEATURES LINKER_VERSION \
-	X_LINKER_TYPE X_LINKER_FEATURES X_LINKER_VERSION
-test-system-compiler: .PHONY
-.for v in ${TEST_SYSTEM_COMPILER_VARS}
+	XCC X_COMPILER_TYPE X_COMPILER_FEATURES X_COMPILER_VERSION \
+	X_COMPILER_FREEBSD_VERSION
+TEST_SYSTEM_LINKER_VARS= \
+	USING_SYSTEM_LINKER MK_SYSTEM_LINKER \
+	MK_LLD_BOOTSTRAP MK_BINUTILS_BOOTSTRAP \
+	WANT_LINKER_TYPE WANT_LINKER_VERSION WANT_LINKER_VERSION_FILE \
+	WANT_LINKER_FREEBSD_VERSION WANT_LINKER_FREEBSD_VERSION_FILE \
+	LD LINKER_TYPE LINKER_FEATURES LINKER_VERSION \
+	LINKER_FREEBSD_VERSION \
+	XLD X_LINKER_TYPE X_LINKER_FEATURES X_LINKER_VERSION \
+	X_LINKER_FREEBSD_VERSION
+
+.for _t in compiler linker
+test-system-${_t}: .PHONY
+.for v in ${TEST_SYSTEM_${_t:tu}_VARS}
 	${_+_}@printf "%-35s= %s\n" "${v}" "${${v}}"
 .endfor
-.if ${USING_SYSTEM_COMPILER} == "yes" && \
-    (make(buildworld) || make(buildkernel) || make(kernel-toolchain) || \
+.endfor
+.if (make(buildworld) || make(buildkernel) || make(kernel-toolchain) || \
     make(toolchain) || make(_cross-tools))
+.if ${USING_SYSTEM_COMPILER} == "yes"
 .info SYSTEM_COMPILER: Determined that CC=${CC} matches the source tree.  Not bootstrapping a cross-compiler.
+.elif ${MK_CLANG_BOOTSTRAP} == "yes"
+.info SYSTEM_COMPILER: libclang will be built for bootstrapping a cross-compiler.
 .endif
-
-# For installworld need to ensure that the looked-up compiler metadata is
-# passed along rather than trying to run cc from the restricted
-# STRICTTMPPATH.
-.if ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no"
-.if !defined(X_COMPILER_TYPE)
-CROSSENV+=	COMPILER_VERSION=${COMPILER_VERSION} \
-		COMPILER_TYPE=${COMPILER_TYPE} \
-		COMPILER_FEATURES="${COMPILER_FEATURES}" \
-		COMPILER_FREEBSD_VERSION=${COMPILER_FREEBSD_VERSION}
-.else
-CROSSENV+=	COMPILER_VERSION=${X_COMPILER_VERSION} \
-		COMPILER_FEATURES="${X_COMPILER_FEATURES}" \
-		COMPILER_TYPE=${X_COMPILER_TYPE} \
-		COMPILER_FREEBSD_VERSION=${X_COMPILER_FREEBSD_VERSION}
+.if ${USING_SYSTEM_LINKER} == "yes"
+.info SYSTEM_LINKER: Determined that LD=${LD} matches the source tree.  Not bootstrapping a cross-linker.
+.elif ${MK_LLD_BOOTSTRAP} == "yes"
+.info SYSTEM_LINKER: libclang will be built for bootstrapping a cross-linker.
 .endif
 .endif
+
+# End WITH_SYSTEM_COMPILER / WITH_SYSTEM_LD
+
 # Store some compiler metadata for use in installworld where we don't
 # want to invoke CC at all.
-_COMPILER_METADATA_VARS=	COMPILER_VERSION \
+_TOOLCHAIN_METADATA_VARS=	COMPILER_VERSION \
 				COMPILER_TYPE \
 				COMPILER_FEATURES \
 				COMPILER_FREEBSD_VERSION \
 				LINKER_VERSION \
 				LINKER_FEATURES \
-				LINKER_TYPE
-compiler-metadata.mk: .PHONY .META
+				LINKER_TYPE \
+				LINKER_FREEBSD_VERSION
+toolchain-metadata.mk: .PHONY .META
 	@: > ${.TARGET}
-	@echo ".info Using cached compiler metadata from build at $$(hostname) on $$(date)" \
+	@echo ".info Using cached toolchain metadata from build at $$(hostname) on $$(date)" \
 	    > ${.TARGET}
-	@echo "_LOADED_COMPILER_METADATA=t" >> ${.TARGET}
-.for v in ${_COMPILER_METADATA_VARS}
+	@echo "_LOADED_TOOLCHAIN_METADATA=t" >> ${.TARGET}
+.for v in ${_TOOLCHAIN_METADATA_VARS}
 	@echo "${v}=${${v}}" >> ${.TARGET}
+	@echo "X_${v}=${X_${v}}" >> ${.TARGET}
 .endfor
-	@echo ".export ${_COMPILER_METADATA_VARS}" >> ${.TARGET}
+	@echo ".export ${_TOOLCHAIN_METADATA_VARS}" >> ${.TARGET}
+	@echo ".export ${_TOOLCHAIN_METADATA_VARS:C,^,X_,}" >> ${.TARGET}
 
-# Handle external binutils.
-.if defined(CROSS_TOOLCHAIN_PREFIX)
-CROSS_BINUTILS_PREFIX?=${CROSS_TOOLCHAIN_PREFIX}
-.endif
-# If we do not have a bootstrap binutils (because the in-tree one does not
-# support the target architecture), provide a default cross-binutils prefix.
-# This allows riscv64 builds, for example, to automatically use the
-# riscv64-binutils port or package.
-.if !make(showconfig)
-.if !empty(BROKEN_OPTIONS:MBINUTILS_BOOTSTRAP) && \
-    ${MK_LLD_BOOTSTRAP} == "no" && \
-    !defined(CROSS_BINUTILS_PREFIX)
-CROSS_BINUTILS_PREFIX=/usr/local/${TARGET_ARCH}-freebsd/bin/
-.if !exists(${CROSS_BINUTILS_PREFIX})
-.error In-tree binutils does not support the ${TARGET_ARCH} architecture. Install the ${TARGET_ARCH}-binutils port or package or set CROSS_BINUTILS_PREFIX.
-.endif
-.endif
-.endif
-XBINUTILS=	AS AR LD NM OBJCOPY RANLIB SIZE STRINGS
-.for BINUTIL in ${XBINUTILS}
-.if defined(CROSS_BINUTILS_PREFIX) && \
-    exists(${CROSS_BINUTILS_PREFIX}${${BINUTIL}})
-X${BINUTIL}?=	${CROSS_BINUTILS_PREFIX}${${BINUTIL}}
-.else
-X${BINUTIL}?=	${${BINUTIL}}
-.endif
-.endfor
 
-
 # We must do lib/ and libexec/ before bin/ in case of a mid-install error to
 # keep the users system reasonably usable.  For static->dynamic root upgrades,
 # we don't want to install a dynamic binary without rtld and the needed
@@ -346,6 +488,7 @@ BUILDENV_SHELL?=${SHELL}
 BUILDENV_SHELL?=/bin/sh
 .endif
 
+.if !defined(_MKSHOWCONFIG)
 .if !defined(SVN_CMD) || empty(SVN_CMD)
 . for _P in /usr/bin /usr/local/bin
 .  for _S in svn svnlite
@@ -414,58 +557,15 @@ EXTRA_REVISION=	_${_BRANCH:C/.*-p([0-9]+$)/\1/}
 .endif
 PKG_VERSION=	${_REVISION}${EXTRA_REVISION}
 .endif
+.endif	# !defined(_MKSHOWCONFIG)
 
-KNOWN_ARCHES?=	aarch64/arm64 \
-		amd64 \
-		arm \
-		armeb/arm \
-		armv6/arm \
-		armv7/arm \
-		i386 \
-		mips \
-		mipsel/mips \
-		mips64el/mips \
-		mipsn32el/mips \
-		mips64/mips \
-		mipsn32/mips \
-		mipshf/mips \
-		mipselhf/mips \
-		mips64elhf/mips \
-		mips64hf/mips \
-		powerpc \
-		powerpc64/powerpc \
-		powerpcspe/powerpc \
-		riscv64/riscv \
-		riscv64sf/riscv \
-		sparc64
-
-.if ${TARGET} == ${TARGET_ARCH}
-_t=		${TARGET}
-.else
-_t=		${TARGET_ARCH}/${TARGET}
-.endif
-.for _t in ${_t}
-.if empty(KNOWN_ARCHES:M${_t})
-.error Unknown target ${TARGET_ARCH}:${TARGET}.
-.endif
-.endfor
-
-.if ${TARGET} == ${MACHINE}
-TARGET_CPUTYPE?=${CPUTYPE}
-.else
-TARGET_CPUTYPE?=
-.endif
-
-.if !empty(TARGET_CPUTYPE)
-_TARGET_CPUTYPE=${TARGET_CPUTYPE}
-.else
-_TARGET_CPUTYPE=dummy
-.endif
+.if !defined(_MKSHOWCONFIG)
 _CPUTYPE!=	MAKEFLAGS= CPUTYPE=${_TARGET_CPUTYPE} ${MAKE} -f /dev/null \
 		-m ${.CURDIR}/share/mk MK_AUTO_OBJ=no -V CPUTYPE
 .if ${_CPUTYPE} != ${_TARGET_CPUTYPE}
 .error CPUTYPE global should be set with ?=.
 .endif
+.endif
 .if make(buildworld)
 BUILD_ARCH!=	uname -p
 .if ${MACHINE_ARCH} != ${BUILD_ARCH}
@@ -544,7 +644,7 @@ CROSSENV+=	${TARGET_CFLAGS}
 
 # bootstrap-tools stage
 BMAKEENV=	INSTALL="sh ${.CURDIR}/tools/install.sh" \
-		TOOLS_PREFIX=${WORLDTMP} \
+		TOOLS_PREFIX=${TOOLS_PREFIX_UNDEF:U${WORLDTMP}} \
 		PATH=${BPATH}:${PATH} \
 		WORLDTMP=${WORLDTMP} \
 		MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}"
@@ -561,12 +661,14 @@ 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=		\
 		${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \
 		${BSARGS}
+.if empty(.MAKEOVERRIDES:MMK_LLVM_TARGET_ALL)
+BMAKE+=		MK_LLVM_TARGET_ALL=no
+.endif
 
 # build-tools stage
 TMAKE=		\
@@ -585,13 +687,14 @@ TMAKE=		\
 # TOOLS_PREFIX set in BMAKE
 XMAKE=		${BMAKE} \
 		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
-		MK_GDB=no MK_LLD_IS_LD=${MK_LLD_BOOTSTRAP} MK_TESTS=no
+		MK_GDB=no MK_TESTS=no
 
 # kernel-tools stage
 KTMAKEENV=	INSTALL="sh ${.CURDIR}/tools/install.sh" \
 		PATH=${BPATH}:${PATH} \
 		WORLDTMP=${WORLDTMP}
-KTMAKE=		TOOLS_PREFIX=${WORLDTMP} \
+KTMAKE=		\
+		TOOLS_PREFIX=${TOOLS_PREFIX_UNDEF:U${WORLDTMP}} \
 		${KTMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \
 		DESTDIR= \
 		OBJTOP='${WORLDTMP}/obj-kernel-tools' \
@@ -644,34 +747,10 @@ BFLAGS+=	-B${CROSS_BINUTILS_PREFIX}
 .if !defined(CROSS_BINUTILS_PREFIX) || !exists(${CROSS_BINUTILS_PREFIX})
 BFLAGS+=	-B${WORLDTMP}/usr/bin
 .endif
-.if ${TARGET} == "arm"
-.if ${TARGET_ARCH:Marmv[67]*} != "" && ${TARGET_CPUTYPE:M*soft*} == ""
-TARGET_ABI=	gnueabihf
-.else
-TARGET_ABI=	gnueabi
-.endif
-.endif
 .if ${WANT_COMPILER_TYPE} == gcc || \
     (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc)
-# GCC requires -isystem and -L when using a cross-compiler.  --sysroot
-# won't set header path and -L is used to ensure the base library path
-# is added before the port PREFIX library path.
-XCFLAGS+=	-isystem ${WORLDTMP}/usr/include -L${WORLDTMP}/usr/lib
-# GCC requires -B to find /usr/lib/crti.o when using a cross-compiler
-# combined with --sysroot.
-XCFLAGS+=	-B${WORLDTMP}/usr/lib
-# Force using libc++ for external GCC.
-.if defined(X_COMPILER_TYPE) && \
-    ${X_COMPILER_TYPE} == gcc && ${X_COMPILER_VERSION} >= 40800
-XCXXFLAGS+=	-isystem ${WORLDTMP}/usr/include/c++/v1 -std=c++11 \
-		-nostdinc++
-.endif
 .elif ${WANT_COMPILER_TYPE} == clang || \
     (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == clang)
-MACHINE_ABI?=	unknown
-MACHINE_TRIPLE?=${MACHINE_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}-${MACHINE_ABI}-freebsd12.0
-TARGET_ABI?=	unknown
-TARGET_TRIPLE?=	${TARGET_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}-${TARGET_ABI}-freebsd12.0
 XCFLAGS+=	-target ${TARGET_TRIPLE}
 .endif
 XCFLAGS+=	--sysroot=${WORLDTMP}
@@ -695,7 +774,7 @@ LIBCOMPAT= SOFT
 # to get updated host tools.
 .if ${MK_META_MODE} == "yes" && defined(NO_CLEAN) && \
     !defined(NO_META_IGNORE_HOST) && !defined(NO_META_IGNORE_HOST_HEADERS) && \
-    !make(showconfig)
+    !defined(_MKSHOWCONFIG)
 # r318736 - ino64 major ABI breakage
 META_MODE_BAD_ABI_VERS+=	1200031
 
@@ -773,6 +852,19 @@ IMAKE_INSTALL=	INSTALL="install ${INSTALLFLAGS}"
 IMAKE_MTREE=	MTREE_CMD="mtree ${MTREEFLAGS}"
 .endif
 
+DESTDIR_MTREEFLAGS=	-deU
+# When creating worldtmp we don't need to set the directories as owned by root
+# so we also pass -W
+WORLDTMP_MTREEFLAGS=	-deUW
+.if defined(NO_ROOT)
+# When building with -DNO_ROOT we shouldn't be changing the directories
+# that are created by mtree to be owned by root/wheel.
+DESTDIR_MTREEFLAGS+=	-W
+.endif
+MTREE?=	mtree
+WORLDTMP_MTREE=	${MTREE} ${WORLDTMP_MTREEFLAGS}
+DESTDIR_MTREE=	${MTREE} ${DESTDIR_MTREEFLAGS}
+
 # kernel stage
 KMAKEENV=	${WMAKEENV:NSYSROOT=*}
 KMAKE=		${KMAKEENV} ${MAKE} ${.MAKEFLAGS} ${KERNEL_FLAGS} KERNEL=${INSTKERNNAME}
@@ -813,37 +905,33 @@ _cleanobj_fast_depend_hack: .PHONY
 # 20180525  r334224  vadvise
 # 20180604  r334626  brk sbrk
 .for f in brk exect fstat fstatat fstatfs getdirentries getfsstat sbrk setlogin shmat sigreturn statfs vadvise
-.if exists(${OBJTOP}/lib/libc/.depend.${f}.o)
-	@if egrep -qw '${f}\.[sS]' \
-	    ${OBJTOP}/lib/libc/.depend.${f}.o; then \
-		echo Removing stale dependencies for ${f} syscall wrappers; \
+	@if [ -e "${OBJTOP}/lib/libc/.depend.${f}.o" ] && \
+	    egrep -qw '${f}\.[sS]' ${OBJTOP}/lib/libc/.depend.${f}.o; then \
+		echo "Removing stale dependencies for ${f} syscall wrappers"; \
 		rm -f ${OBJTOP}/lib/libc/.depend.${f}.* \
 		   ${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/lib/libc/.depend.${f}.*}; \
 	fi
-.endif
 .endfor
 # 20170607 remove stale dependencies for utimens* wrappers removed in r319663
 .for f in futimens utimensat
-.if exists(${OBJTOP}/lib/libc/.depend.${f}.o)
-	@if egrep -q '/${f}.c' \
-	    ${OBJTOP}/lib/libc/.depend.${f}.o; then \
-		echo Removing stale dependencies for ${f} syscall wrappers; \
+	@if [ -e "${OBJTOP}/lib/libc/.depend.${f}.o" ] && \
+	    egrep -q '/${f}.c' ${OBJTOP}/lib/libc/.depend.${f}.o; then \
+		echo "Removing stale dependencies for ${f} syscall wrappers"; \
 		rm -f ${OBJTOP}/lib/libc/.depend.${f}.* \
 		   ${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/lib/libc/.depend.${f}.*}; \
 	fi
-.endif
 .endfor
 # 20170523 remove stale generated asm files for functions which are no longer
 # syscalls after r302092 (pipe) and r318736 (others)
 .for f in getdents lstat mknod pipe stat
-.if exists(${OBJTOP}/lib/libc/${f}.s) || \
-    exists(${OBJTOP}/lib/libc/${f}.S)
-	@echo Removing stale generated ${f} syscall files
-	@rm -f ${OBJTOP}/lib/libc/${f}.* \
-	    ${OBJTOP}/lib/libc/.depend.${f}.* \
-	    ${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/lib/libc/${f}.*} \
-	    ${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/lib/libc/.depend.${f}.*}
-.endif
+	@if [ -e "${OBJTOP}/lib/libc/${f}.s" ] || \
+	    [ -e "${OBJTOP}/lib/libc/${f}.S" ] ; then \
+		echo "Removing stale generated ${f} syscall files"; \
+		rm -f ${OBJTOP}/lib/libc/${f}.* \
+		    ${OBJTOP}/lib/libc/.depend.${f}.* \
+		    ${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/lib/libc/${f}.*} \
+		    ${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/lib/libc/.depend.${f}.*}; \
+	fi
 .endfor
 
 _worldtmp: .PHONY
@@ -854,11 +942,11 @@ _worldtmp: .PHONY
 .if !defined(NO_CLEAN)
 	rm -rf ${WORLDTMP}
 .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 [ -e "${WORLDTMP}" ]; then \
+		echo ">>> Deleting stale files in build tree..."; \
+		cd ${.CURDIR}; ${WMAKE} -DBATCH_DELETE_OLD_FILES \
+		    delete-old delete-old-libs >/dev/null; \
+	fi
 	rm -rf ${WORLDTMP}/legacy/usr/include
 .if ${USING_SYSTEM_COMPILER} == "yes"
 .for cc in cc c++
@@ -868,31 +956,34 @@ _worldtmp: .PHONY
 	fi
 .endfor
 .endif	# ${USING_SYSTEM_COMPILER} == "yes"
+.if ${USING_SYSTEM_LINKER} == "yes"
+	@rm -f ${WORLDTMP}/usr/bin/ld ${WORLDTMP}/usr/bin/ld.lld
+.endif	# ${USING_SYSTEM_LINKER} == "yes"
 .endif	# !defined(NO_CLEAN)
 	@mkdir -p ${WORLDTMP}
 	@touch ${WORLDTMP}/${.TARGET}
 
 .for _dir in \
-    lib lib/casper usr legacy/bin legacy/usr
+    lib lib/casper lib/geom usr legacy/bin legacy/usr
 	mkdir -p ${WORLDTMP}/${_dir}
 .endfor
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
+	${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
 	    -p ${WORLDTMP}/legacy/usr >/dev/null
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
+	${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \
 	    -p ${WORLDTMP}/legacy/usr/include >/dev/null
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
+	${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
 	    -p ${WORLDTMP}/usr >/dev/null
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
+	${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \
 	    -p ${WORLDTMP}/usr/include >/dev/null
 	ln -sf ${.CURDIR}/sys ${WORLDTMP}
 .if ${MK_DEBUG_FILES} != "no"
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
+	${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
 	    -p ${WORLDTMP}/legacy/usr/lib >/dev/null
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
+	${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
 	    -p ${WORLDTMP}/usr/lib >/dev/null
 .endif
 .for _mtree in ${LOCAL_MTREE}
-	mtree -deU -f ${.CURDIR}/${_mtree} -p ${WORLDTMP} > /dev/null
+	${WORLDTMP_MTREE} -f ${.CURDIR}/${_mtree} -p ${WORLDTMP} > /dev/null
 .endfor
 _legacy:
 	@echo
@@ -936,7 +1027,7 @@ _cross-tools:
 	@echo "--------------------------------------------------------------"
 	@echo ">>> stage 3: cross tools"
 	@echo "--------------------------------------------------------------"
-	@rm -f ${OBJTOP}/compiler-metadata.mk
+	@rm -f ${OBJTOP}/toolchain-metadata.mk
 	${_+_}cd ${.CURDIR}; ${XMAKE} cross-tools
 	${_+_}cd ${.CURDIR}; ${XMAKE} kernel-tools
 _build-metadata:
@@ -944,7 +1035,7 @@ _build-metadata:
 	@echo "--------------------------------------------------------------"
 	@echo ">>> stage 3.1: recording build metadata"
 	@echo "--------------------------------------------------------------"
-	${_+_}cd ${.CURDIR}; ${WMAKE} compiler-metadata.mk
+	${_+_}cd ${.CURDIR}; ${WMAKE} toolchain-metadata.mk
 	${_+_}cd ${.CURDIR}; ${WMAKE} host-osreldate.h
 _includes:
 	@echo
@@ -1054,7 +1145,13 @@ kernel-toolchain: ${KERNEL_TOOLCHAIN_TGTS} .PHONY
 #
 installcheck: _installcheck_world _installcheck_kernel .PHONY
 _installcheck_world: .PHONY
+	@echo "--------------------------------------------------------------"
+	@echo ">>> Install check world"
+	@echo "--------------------------------------------------------------"
 _installcheck_kernel: .PHONY
+	@echo "--------------------------------------------------------------"
+	@echo ">>> Install check kernel"
+	@echo "--------------------------------------------------------------"
 
 #
 # Require DESTDIR to be set if installing for a different architecture or
@@ -1196,42 +1293,42 @@ distributeworld installworld stageworld: _installcheck
 .if make(distributeworld)
 .for dist in ${EXTRA_DISTRIBUTIONS}
 	-mkdir ${DESTDIR}/${DISTDIR}/${dist}
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.root.dist \
+	${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.root.dist \
 	    -p ${DESTDIR}/${DISTDIR}/${dist} >/dev/null
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
+	${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
 	    -p ${DESTDIR}/${DISTDIR}/${dist}/usr >/dev/null
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
+	${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \
 	    -p ${DESTDIR}/${DISTDIR}/${dist}/usr/include >/dev/null
 .if ${MK_DEBUG_FILES} != "no"
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
+	${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
 	    -p ${DESTDIR}/${DISTDIR}/${dist}/usr/lib >/dev/null
 .endif
 .if defined(LIBCOMPAT)
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \
+	${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \
 	    -p ${DESTDIR}/${DISTDIR}/${dist}/usr >/dev/null
 .if ${MK_DEBUG_FILES} != "no"
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \
+	${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \
 	    -p ${DESTDIR}/${DISTDIR}/${dist}/usr/lib/debug/usr >/dev/null
 .endif
 .endif
 .if ${MK_TESTS} != "no" && ${dist} == "tests"
 	-mkdir -p ${DESTDIR}/${DISTDIR}/${dist}${TESTSBASE}
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.tests.dist \
+	${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.tests.dist \
 	    -p ${DESTDIR}/${DISTDIR}/${dist}${TESTSBASE} >/dev/null
 .if ${MK_DEBUG_FILES} != "no"
-	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.tests.dist \
+	${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.tests.dist \
 	    -p ${DESTDIR}/${DISTDIR}/${dist}/usr/lib/debug/${TESTSBASE} >/dev/null
 .endif
 .endif
 .if defined(NO_ROOT)
-	${IMAKEENV} mtree -C -f ${.CURDIR}/etc/mtree/BSD.root.dist | \
+	${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.root.dist | \
 	    sed -e 's#^\./#./${dist}/#' >> ${METALOG}
-	${IMAKEENV} mtree -C -f ${.CURDIR}/etc/mtree/BSD.usr.dist | \
+	${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.usr.dist | \
 	    sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG}
-	${IMAKEENV} mtree -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \
+	${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \
 	    sed -e 's#^\./#./${dist}/usr/include/#' >> ${METALOG}
 .if defined(LIBCOMPAT)
-	${IMAKEENV} mtree -C -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist | \
+	${IMAKEENV} ${MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist | \
 	    sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG}
 .endif
 .endif
@@ -1321,12 +1418,15 @@ restage reinstall: .MAKE .PHONY
 .endif
 	@echo
 	@echo "--------------------------------------------------------------"
-	@echo ">>> Installing everything"
+	@echo ">>> Installing everything started on `LC_ALL=C date`"
 	@echo "--------------------------------------------------------------"
 	${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install
 .if defined(LIBCOMPAT)
 	${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install${libcompat}
 .endif
+	@echo "--------------------------------------------------------------"
+	@echo ">>> Installing everything completed on `LC_ALL=C date`"
+	@echo "--------------------------------------------------------------"
 
 redistribute: .MAKE .PHONY
 	@echo "--------------------------------------------------------------"
@@ -1389,7 +1489,7 @@ INSTALLKERNEL=
 BUILDKERNELS+= dummy
 .endif
 .for _kernel in ${KERNCONF}
-.if exists(${KERNCONFDIR}/${_kernel})
+.if !defined(_MKSHOWCONFIG) && exists(${KERNCONFDIR}/${_kernel})
 BUILDKERNELS+=	${_kernel}
 .if empty(INSTALLKERNEL) && !defined(NO_INSTALLKERNEL)
 INSTALLKERNEL= ${_kernel}
@@ -1403,11 +1503,11 @@ INSTALLKERNEL= ${_kernel}
 
 _cleankernobj_fast_depend_hack: .PHONY
 # 20180320 remove stale generated assym.s after renaming to .inc in r331254
-.if exists(${OBJTOP}/sys/${KERNCONF}/assym.s)
-	@echo Removing stale generated assym files
-	@rm -f ${OBJTOP}/sys/${KERNCONF}/assym.* \
-	    ${OBJTOP}/sys/${KERNCONF}/.depend.assym.*
-.endif
+	@if [ -e "${OBJTOP}/sys/${KERNCONF}/assym.s" ]; then \
+		echo "Removing stale generated assym files"; \
+		rm -f ${OBJTOP}/sys/${KERNCONF}/assym.* \
+		    ${OBJTOP}/sys/${KERNCONF}/.depend.assym.*; \
+	fi
 
 ${WMAKE_TGTS:N_worldtmp:Nbuild${libcompat}} ${.ALLTARGETS:M_*:N_worldtmp}: .MAKE .PHONY
 
@@ -1614,7 +1714,7 @@ PKGSIGNKEY?=	# empty
 .ORDER:		create-packages sign-packages
 
 _pkgbootstrap: .PHONY
-.if !exists(${LOCALBASE}/sbin/pkg)
+.if make(*package*) && !exists(${LOCALBASE}/sbin/pkg)
 	@env ASSUME_ALWAYS_YES=YES pkg bootstrap
 .endif
 
@@ -1700,7 +1800,7 @@ create-world-package-${pkgname}: .PHONY
 
 create-kernel-packages:	.PHONY
 _default_flavor=	-default
-.if exists(${KSTAGEDIR}/kernel.meta)
+.if make(*package*) && exists(${KSTAGEDIR}/kernel.meta)
 . if ${MK_DEBUG_FILES} != "no"
 _debug=-debug
 . endif
@@ -1711,15 +1811,11 @@ create-kernel-packages-flavor${flavor:C,^""$,${_defaul
 	env -i LC_COLLATE=C sort ${KSTAGEDIR}/kernel.meta | \
 	awk -f ${SRCDIR}/release/scripts/mtree-to-plist.awk \
 		-v kernel=yes -v _kernconf=${INSTALLKERNEL} ; \
-	cap_arg=`cd ${SRCDIR}/etc ; ${MAKE} -VCAP_MKDB_ENDIAN` ; \
-	pwd_arg=`cd ${SRCDIR}/etc ; ${MAKE} -VPWD_MKDB_ENDIAN` ; \
 	sed -e "s/%VERSION%/${PKG_VERSION}/" \
 		-e "s/%PKGNAME%/kernel-${INSTALLKERNEL:tl}${flavor}/" \

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-projects mailing list