svn commit: r308147 - in projects/clang390-import: . cddl/contrib/opensolaris/lib/libzfs/common contrib/binutils/bfd contrib/bsnmp/lib contrib/elftoolchain/elfcopy contrib/elftoolchain/strings cont...

Dimitry Andric dim at FreeBSD.org
Mon Oct 31 19:02:47 UTC 2016


Author: dim
Date: Mon Oct 31 19:02:42 2016
New Revision: 308147
URL: https://svnweb.freebsd.org/changeset/base/308147

Log:
  Merge ^/head r307736 through r308146.

Added:
  projects/clang390-import/contrib/gcc/config/rs6000/freebsdspe.h
     - copied unchanged from r308146, head/contrib/gcc/config/rs6000/freebsdspe.h
  projects/clang390-import/lib/libc/powerpc/gen/Makefile.common
     - copied unchanged from r308146, head/lib/libc/powerpc/gen/Makefile.common
  projects/clang390-import/lib/libc/powerpcspe/
     - copied from r308146, head/lib/libc/powerpcspe/
  projects/clang390-import/sbin/zfsbootcfg/
     - copied from r308146, head/sbin/zfsbootcfg/
  projects/clang390-import/secure/lib/libcrypto/aarch64/
     - copied from r308146, head/secure/lib/libcrypto/aarch64/
  projects/clang390-import/share/man/man4/chromebook_platform.4
     - copied unchanged from r308146, head/share/man/man4/chromebook_platform.4
  projects/clang390-import/share/man/man4/jedec_ts.4
     - copied unchanged from r308146, head/share/man/man4/jedec_ts.4
  projects/clang390-import/sys/arm/allwinner/aw_cir.c
     - copied unchanged from r308146, head/sys/arm/allwinner/aw_cir.c
  projects/clang390-import/sys/arm64/arm64/memcpy.S
     - copied unchanged from r308146, head/sys/arm64/arm64/memcpy.S
  projects/clang390-import/sys/arm64/arm64/memmove.S
     - copied unchanged from r308146, head/sys/arm64/arm64/memmove.S
  projects/clang390-import/sys/boot/Makefile.ficl
     - copied unchanged from r308146, head/sys/boot/Makefile.ficl
  projects/clang390-import/sys/boot/forth/efi.4th
     - copied unchanged from r308146, head/sys/boot/forth/efi.4th
  projects/clang390-import/sys/conf/ldscript.powerpcspe
     - copied unchanged from r308146, head/sys/conf/ldscript.powerpcspe
  projects/clang390-import/sys/dev/chromebook_platform/
     - copied from r308146, head/sys/dev/chromebook_platform/
  projects/clang390-import/sys/dev/fdt/fdt_intr.h
     - copied unchanged from r308146, head/sys/dev/fdt/fdt_intr.h
  projects/clang390-import/sys/dev/hyperv/netvsc/hn_nvs.c
     - copied unchanged from r308146, head/sys/dev/hyperv/netvsc/hn_nvs.c
  projects/clang390-import/sys/dev/hyperv/netvsc/hn_nvs.h
     - copied unchanged from r308146, head/sys/dev/hyperv/netvsc/hn_nvs.h
  projects/clang390-import/sys/dev/hyperv/netvsc/hn_rndis.c
     - copied unchanged from r308146, head/sys/dev/hyperv/netvsc/hn_rndis.c
  projects/clang390-import/sys/dev/hyperv/netvsc/hn_rndis.h
     - copied unchanged from r308146, head/sys/dev/hyperv/netvsc/hn_rndis.h
  projects/clang390-import/sys/dev/jedec_ts/
     - copied from r308146, head/sys/dev/jedec_ts/
  projects/clang390-import/sys/dev/xen/gntdev/
     - copied from r308146, head/sys/dev/xen/gntdev/
  projects/clang390-import/sys/modules/chromebook_platform/
     - copied from r308146, head/sys/modules/chromebook_platform/
  projects/clang390-import/sys/modules/i2c/jedec_ts/
     - copied from r308146, head/sys/modules/i2c/jedec_ts/
  projects/clang390-import/sys/powerpc/booke/spe.c
     - copied unchanged from r308146, head/sys/powerpc/booke/spe.c
  projects/clang390-import/sys/powerpc/conf/MPC85XXSPE
     - copied unchanged from r308146, head/sys/powerpc/conf/MPC85XXSPE
  projects/clang390-import/sys/xen/gntdev.h
     - copied unchanged from r308146, head/sys/xen/gntdev.h
Deleted:
  projects/clang390-import/sys/arm64/arm64/bcopy.c
  projects/clang390-import/sys/boot/ficl/efi.c
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.c
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_net_vsc.h
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis_filter.c
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis_filter.h
Modified:
  projects/clang390-import/Makefile
  projects/clang390-import/Makefile.inc1
  projects/clang390-import/UPDATING
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
  projects/clang390-import/contrib/binutils/bfd/config.bfd
  projects/clang390-import/contrib/bsnmp/lib/snmp.c
  projects/clang390-import/contrib/elftoolchain/elfcopy/main.c
  projects/clang390-import/contrib/elftoolchain/strings/strings.c
  projects/clang390-import/contrib/libarchive/NEWS
  projects/clang390-import/contrib/libarchive/cat/test/main.c
  projects/clang390-import/contrib/libarchive/cat/test/test.h
  projects/clang390-import/contrib/libarchive/cpio/test/main.c
  projects/clang390-import/contrib/libarchive/cpio/test/test.h
  projects/clang390-import/contrib/libarchive/libarchive/archive.h
  projects/clang390-import/contrib/libarchive/libarchive/archive_entry.h
  projects/clang390-import/contrib/libarchive/libarchive/test/main.c
  projects/clang390-import/contrib/libarchive/libarchive/test/test.h
  projects/clang390-import/contrib/libarchive/libarchive/test/test_read_format_mtree_crash747.c
  projects/clang390-import/contrib/libarchive/libarchive/test/test_read_format_zip_high_compression.c
  projects/clang390-import/contrib/libarchive/libarchive/test/test_read_set_format.c
  projects/clang390-import/contrib/libarchive/libarchive/test/test_write_format_iso9660.c
  projects/clang390-import/contrib/libarchive/tar/test/main.c
  projects/clang390-import/contrib/libarchive/tar/test/test.h
  projects/clang390-import/contrib/libarchive/tar/test/test_option_b.c
  projects/clang390-import/contrib/libarchive/tar/test/test_symlink_dir.c
  projects/clang390-import/contrib/llvm/projects/libunwind/include/libunwind.h
  projects/clang390-import/contrib/llvm/projects/libunwind/src/AddressSpace.hpp
  projects/clang390-import/contrib/llvm/projects/libunwind/src/CompactUnwinder.hpp
  projects/clang390-import/contrib/llvm/projects/libunwind/src/EHHeaderParser.hpp
  projects/clang390-import/contrib/llvm/projects/libunwind/src/Unwind-EHABI.cpp
  projects/clang390-import/contrib/llvm/projects/libunwind/src/Unwind-sjlj.c
  projects/clang390-import/contrib/llvm/projects/libunwind/src/UnwindCursor.hpp
  projects/clang390-import/contrib/llvm/projects/libunwind/src/UnwindLevel1-gcc-ext.c
  projects/clang390-import/contrib/llvm/projects/libunwind/src/UnwindLevel1.c
  projects/clang390-import/contrib/llvm/projects/libunwind/src/config.h
  projects/clang390-import/contrib/llvm/projects/libunwind/src/libunwind.cpp
  projects/clang390-import/contrib/netbsd-tests/lib/libc/stdio/t_printf.c
  projects/clang390-import/contrib/tzdata/asia
  projects/clang390-import/contrib/tzdata/australasia
  projects/clang390-import/contrib/tzdata/europe
  projects/clang390-import/contrib/tzdata/northamerica
  projects/clang390-import/crypto/openssl/crypto/aes/asm/aesv8-armx.pl
  projects/clang390-import/crypto/openssl/crypto/arm64cpuid.S
  projects/clang390-import/crypto/openssl/crypto/modes/asm/ghashv8-armx.pl
  projects/clang390-import/etc/devd/usb.conf
  projects/clang390-import/etc/mtree/BSD.root.dist
  projects/clang390-import/etc/rc
  projects/clang390-import/etc/rc.d/Makefile
  projects/clang390-import/etc/rc.d/swaplate
  projects/clang390-import/gnu/lib/libgcc/Makefile
  projects/clang390-import/gnu/lib/libgomp/Makefile
  projects/clang390-import/gnu/usr.bin/binutils/Makefile.inc0
  projects/clang390-import/gnu/usr.bin/binutils/ld/Makefile.mips
  projects/clang390-import/gnu/usr.bin/binutils/libbfd/Makefile.mips
  projects/clang390-import/gnu/usr.bin/cc/Makefile.inc
  projects/clang390-import/gnu/usr.bin/cc/Makefile.tgt
  projects/clang390-import/gnu/usr.bin/cc/cc_tools/Makefile.hdrs
  projects/clang390-import/gnu/usr.bin/cc/include/Makefile
  projects/clang390-import/gnu/usr.bin/gdb/Makefile.inc
  projects/clang390-import/gnu/usr.bin/gdb/libgdb/Makefile
  projects/clang390-import/include/limits.h
  projects/clang390-import/include/stddef.h
  projects/clang390-import/lib/libarchive/Makefile
  projects/clang390-import/lib/libc/Makefile
  projects/clang390-import/lib/libc/gen/sysctl.3
  projects/clang390-import/lib/libc/mips/Makefile.inc
  projects/clang390-import/lib/libc/mips/Symbol.map
  projects/clang390-import/lib/libc/mips/gen/Makefile.inc
  projects/clang390-import/lib/libc/mips/gen/flt_rounds.c
  projects/clang390-import/lib/libc/powerpc/gen/Makefile.inc
  projects/clang390-import/lib/libc/stdio/printf-pos.c
  projects/clang390-import/lib/libcapsicum/capsicum_helpers.3
  projects/clang390-import/lib/libcasper/services/cap_dns/Makefile
  projects/clang390-import/lib/libcasper/services/cap_grp/Makefile
  projects/clang390-import/lib/libcasper/services/cap_pwd/Makefile
  projects/clang390-import/lib/libcasper/services/cap_sysctl/Makefile
  projects/clang390-import/lib/libgcc_eh/Makefile.inc
  projects/clang390-import/lib/libgcc_s/Makefile
  projects/clang390-import/lib/libnetbsd/sys/cdefs.h
  projects/clang390-import/lib/libnetbsd/util.c
  projects/clang390-import/lib/libproc/proc_bkpt.c
  projects/clang390-import/lib/librss/Makefile
  projects/clang390-import/lib/librss/librss.3
  projects/clang390-import/lib/libstand/bootp.c
  projects/clang390-import/lib/libsysdecode/flags.c
  projects/clang390-import/lib/libusb/libusb20_ugen20.c
  projects/clang390-import/lib/msun/mips/Makefile.inc
  projects/clang390-import/lib/msun/mips/Symbol.map
  projects/clang390-import/lib/msun/mips/fenv.c
  projects/clang390-import/lib/msun/mips/fenv.h
  projects/clang390-import/lib/msun/powerpc/fenv.h
  projects/clang390-import/release/tools/arm.subr
  projects/clang390-import/release/tools/vagrant-virtualbox.conf
  projects/clang390-import/sbin/Makefile
  projects/clang390-import/sbin/camcontrol/camcontrol.c
  projects/clang390-import/sbin/geom/class/eli/geom_eli.c
  projects/clang390-import/sbin/swapon/swapon.8
  projects/clang390-import/sbin/swapon/swapon.c
  projects/clang390-import/secure/lib/libcrypto/Makefile
  projects/clang390-import/secure/lib/libcrypto/Makefile.asm
  projects/clang390-import/secure/lib/libcrypto/Makefile.inc
  projects/clang390-import/share/doc/psd/contents/contents.ms
  projects/clang390-import/share/doc/psd/title/Title
  projects/clang390-import/share/man/man4/cyapa.4
  projects/clang390-import/share/man/man4/ig4.4
  projects/clang390-import/share/man/man4/isl.4
  projects/clang390-import/share/man/man4/tcp.4
  projects/clang390-import/share/man/man4/ure.4
  projects/clang390-import/share/man/man7/arch.7
  projects/clang390-import/share/misc/pci_vendors
  projects/clang390-import/share/mk/bsd.compiler.mk
  projects/clang390-import/share/mk/bsd.cpu.mk
  projects/clang390-import/share/mk/bsd.endian.mk
  projects/clang390-import/share/mk/bsd.subdir.mk
  projects/clang390-import/share/mk/local.meta.sys.mk
  projects/clang390-import/share/mk/sys.mk
  projects/clang390-import/sys/amd64/amd64/mem.c
  projects/clang390-import/sys/amd64/amd64/sys_machdep.c
  projects/clang390-import/sys/amd64/amd64/trap.c
  projects/clang390-import/sys/amd64/include/pmap.h
  projects/clang390-import/sys/amd64/include/smp.h
  projects/clang390-import/sys/amd64/vmm/amd/svm.c
  projects/clang390-import/sys/arm/allwinner/aw_nmi.c
  projects/clang390-import/sys/arm/allwinner/aw_rsb.c
  projects/clang390-import/sys/arm/allwinner/aw_thermal.c
  projects/clang390-import/sys/arm/allwinner/clk/aw_pll.c
  projects/clang390-import/sys/arm/allwinner/files.allwinner
  projects/clang390-import/sys/arm/arm/cpufunc_asm_arm11x6.S
  projects/clang390-import/sys/arm/arm/cpufunc_asm_armv7.S
  projects/clang390-import/sys/arm/arm/gic.c
  projects/clang390-import/sys/arm/conf/GENERIC
  projects/clang390-import/sys/arm/include/cpu-v6.h
  projects/clang390-import/sys/arm/include/cpufunc.h
  projects/clang390-import/sys/arm/include/platformvar.h
  projects/clang390-import/sys/arm/ti/am335x/am335x_dmtimer.c
  projects/clang390-import/sys/arm/ti/ti_machdep.c
  projects/clang390-import/sys/arm64/arm64/gic_v3.c
  projects/clang390-import/sys/arm64/arm64/mp_machdep.c
  projects/clang390-import/sys/arm64/arm64/trap.c
  projects/clang390-import/sys/arm64/include/param.h
  projects/clang390-import/sys/boot/common/Makefile.inc
  projects/clang390-import/sys/boot/common/pnp.c
  projects/clang390-import/sys/boot/efi/Makefile
  projects/clang390-import/sys/boot/efi/Makefile.inc
  projects/clang390-import/sys/boot/efi/libefi/Makefile
  projects/clang390-import/sys/boot/efi/libefi/env.c
  projects/clang390-import/sys/boot/efi/loader/main.c
  projects/clang390-import/sys/boot/fdt/dts/arm/olimex-a20-som-evb.dts
  projects/clang390-import/sys/boot/ficl/Makefile
  projects/clang390-import/sys/boot/ficl/loader.c
  projects/clang390-import/sys/boot/ficl32/Makefile
  projects/clang390-import/sys/boot/forth/Makefile.inc
  projects/clang390-import/sys/boot/forth/loader.4th
  projects/clang390-import/sys/boot/i386/Makefile.inc
  projects/clang390-import/sys/boot/i386/common/drv.c
  projects/clang390-import/sys/boot/i386/common/drv.h
  projects/clang390-import/sys/boot/i386/gptboot/Makefile
  projects/clang390-import/sys/boot/i386/gptzfsboot/Makefile
  projects/clang390-import/sys/boot/i386/libi386/biospci.c
  projects/clang390-import/sys/boot/i386/loader/Makefile
  projects/clang390-import/sys/boot/i386/zfsboot/Makefile
  projects/clang390-import/sys/boot/i386/zfsboot/zfsboot.c
  projects/clang390-import/sys/boot/mips/uboot/Makefile
  projects/clang390-import/sys/boot/powerpc/Makefile
  projects/clang390-import/sys/boot/zfs/zfsimpl.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zrlock.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
  projects/clang390-import/sys/conf/Makefile.powerpc
  projects/clang390-import/sys/conf/NOTES
  projects/clang390-import/sys/conf/files
  projects/clang390-import/sys/conf/files.amd64
  projects/clang390-import/sys/conf/files.arm64
  projects/clang390-import/sys/conf/files.i386
  projects/clang390-import/sys/conf/files.powerpc
  projects/clang390-import/sys/conf/kern.mk
  projects/clang390-import/sys/conf/options.powerpc
  projects/clang390-import/sys/contrib/rdma/krping/krping.c
  projects/clang390-import/sys/dev/aacraid/aacraid_pci.c
  projects/clang390-import/sys/dev/bfe/if_bfe.c
  projects/clang390-import/sys/dev/bxe/bxe.c
  projects/clang390-import/sys/dev/cxgbe/common/t4_hw.c
  projects/clang390-import/sys/dev/cxgbe/t4_sge.c
  projects/clang390-import/sys/dev/cyapa/cyapa.c
  projects/clang390-import/sys/dev/dpaa/bman_fdt.c
  projects/clang390-import/sys/dev/dpaa/qman_fdt.c
  projects/clang390-import/sys/dev/evdev/evdev.c
  projects/clang390-import/sys/dev/evdev/evdev.h
  projects/clang390-import/sys/dev/evdev/evdev_utils.c
  projects/clang390-import/sys/dev/gpio/gpiobusvar.h
  projects/clang390-import/sys/dev/gpio/ofw_gpiobus.c
  projects/clang390-import/sys/dev/hwpmc/hwpmc_amd.c
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  projects/clang390-import/sys/dev/hyperv/netvsc/if_hnvar.h
  projects/clang390-import/sys/dev/hyperv/netvsc/ndis.h
  projects/clang390-import/sys/dev/hyperv/utilities/hv_heartbeat.c
  projects/clang390-import/sys/dev/hyperv/utilities/hv_kvp.c
  projects/clang390-import/sys/dev/hyperv/utilities/hv_kvp.h
  projects/clang390-import/sys/dev/hyperv/utilities/hv_shutdown.c
  projects/clang390-import/sys/dev/hyperv/utilities/hv_timesync.c
  projects/clang390-import/sys/dev/hyperv/utilities/hv_util.c
  projects/clang390-import/sys/dev/hyperv/utilities/hv_util.h
  projects/clang390-import/sys/dev/hyperv/utilities/hv_utilreg.h
  projects/clang390-import/sys/dev/hyperv/utilities/vmbus_icreg.h
  projects/clang390-import/sys/dev/hyperv/vmbus/vmbus.c
  projects/clang390-import/sys/dev/hyperv/vmbus/vmbus_chan.c
  projects/clang390-import/sys/dev/ichiic/ig4_iic.c
  projects/clang390-import/sys/dev/ichiic/ig4_pci.c
  projects/clang390-import/sys/dev/ichiic/ig4_var.h
  projects/clang390-import/sys/dev/iicbus/iicbus.c
  projects/clang390-import/sys/dev/ioat/ioat.c
  projects/clang390-import/sys/dev/ioat/ioat_internal.h
  projects/clang390-import/sys/dev/isl/isl.c
  projects/clang390-import/sys/dev/mii/miidevs
  projects/clang390-import/sys/dev/mii/rgephy.c
  projects/clang390-import/sys/dev/mii/rgephyreg.h
  projects/clang390-import/sys/dev/mlx4/mlx4_en/mlx4_en_tx.c
  projects/clang390-import/sys/dev/netmap/if_em_netmap.h
  projects/clang390-import/sys/dev/netmap/if_ptnet.c
  projects/clang390-import/sys/dev/netmap/netmap.c
  projects/clang390-import/sys/dev/netmap/netmap_freebsd.c
  projects/clang390-import/sys/dev/netmap/netmap_kern.h
  projects/clang390-import/sys/dev/netmap/netmap_mem2.c
  projects/clang390-import/sys/dev/netmap/netmap_mem2.h
  projects/clang390-import/sys/dev/netmap/netmap_pt.c
  projects/clang390-import/sys/dev/netmap/netmap_vale.c
  projects/clang390-import/sys/dev/psci/psci.c
  projects/clang390-import/sys/dev/psci/psci.h
  projects/clang390-import/sys/dev/re/if_re.c
  projects/clang390-import/sys/dev/usb/input/ums.c
  projects/clang390-import/sys/dev/usb/net/if_ure.c
  projects/clang390-import/sys/dev/usb/net/if_urereg.h
  projects/clang390-import/sys/dev/usb/net/uhso.c
  projects/clang390-import/sys/dev/usb/usb_device.c
  projects/clang390-import/sys/dev/xen/netfront/netfront.c
  projects/clang390-import/sys/fs/cd9660/cd9660_vnops.c
  projects/clang390-import/sys/fs/msdosfs/msdosfs_fat.c
  projects/clang390-import/sys/fs/msdosfs/msdosfs_vfsops.c
  projects/clang390-import/sys/fs/msdosfs/msdosfs_vnops.c
  projects/clang390-import/sys/geom/eli/g_eli.h
  projects/clang390-import/sys/geom/eli/g_eli_integrity.c
  projects/clang390-import/sys/i386/i386/initcpu.c
  projects/clang390-import/sys/i386/i386/mem.c
  projects/clang390-import/sys/i386/i386/pmap.c
  projects/clang390-import/sys/i386/i386/trap.c
  projects/clang390-import/sys/kern/subr_prf.c
  projects/clang390-import/sys/kern/subr_smp.c
  projects/clang390-import/sys/kern/subr_turnstile.c
  projects/clang390-import/sys/kern/subr_uio.c
  projects/clang390-import/sys/kern/subr_witness.c
  projects/clang390-import/sys/kern/uipc_syscalls.c
  projects/clang390-import/sys/kern/vfs_bio.c
  projects/clang390-import/sys/kern/vfs_syscalls.c
  projects/clang390-import/sys/mips/include/float.h
  projects/clang390-import/sys/mips/include/signal.h
  projects/clang390-import/sys/mips/mips/exception.S
  projects/clang390-import/sys/mips/mips/locore.S
  projects/clang390-import/sys/mips/mips/swtch.S
  projects/clang390-import/sys/mips/mips/trap.c
  projects/clang390-import/sys/modules/Makefile
  projects/clang390-import/sys/modules/geom/Makefile
  projects/clang390-import/sys/modules/hyperv/netvsc/Makefile
  projects/clang390-import/sys/modules/i2c/Makefile
  projects/clang390-import/sys/modules/i2c/controllers/ichiic/Makefile
  projects/clang390-import/sys/modules/i2c/cyapa/Makefile
  projects/clang390-import/sys/modules/i2c/isl/Makefile
  projects/clang390-import/sys/net/if_bridge.c
  projects/clang390-import/sys/net/netmap.h
  projects/clang390-import/sys/net/netmap_virt.h
  projects/clang390-import/sys/net/rndis.h
  projects/clang390-import/sys/net80211/ieee80211.h
  projects/clang390-import/sys/net80211/ieee80211_freebsd.c
  projects/clang390-import/sys/net80211/ieee80211_freebsd.h
  projects/clang390-import/sys/net80211/ieee80211_scan.c
  projects/clang390-import/sys/net80211/ieee80211_scan_sw.c
  projects/clang390-import/sys/netinet/cc/cc_cdg.c
  projects/clang390-import/sys/netinet/cc/cc_chd.c
  projects/clang390-import/sys/netinet/cc/cc_cubic.c
  projects/clang390-import/sys/netinet/cc/cc_dctcp.c
  projects/clang390-import/sys/netinet/cc/cc_htcp.c
  projects/clang390-import/sys/netinet/cc/cc_newreno.c
  projects/clang390-import/sys/netinet/ip_output.c
  projects/clang390-import/sys/netinet/sctp_bsd_addr.c
  projects/clang390-import/sys/netinet/sctp_output.c
  projects/clang390-import/sys/netinet/tcp_input.c
  projects/clang390-import/sys/netinet/tcp_stacks/fastpath.c
  projects/clang390-import/sys/netinet/tcp_syncache.c
  projects/clang390-import/sys/powerpc/booke/booke_machdep.c
  projects/clang390-import/sys/powerpc/conf/MPC85XX
  projects/clang390-import/sys/powerpc/include/cpu.h
  projects/clang390-import/sys/powerpc/include/param.h
  projects/clang390-import/sys/powerpc/include/spr.h
  projects/clang390-import/sys/powerpc/include/trap.h
  projects/clang390-import/sys/powerpc/powerpc/cpu.c
  projects/clang390-import/sys/powerpc/powerpc/trap.c
  projects/clang390-import/sys/sys/_types.h
  projects/clang390-import/sys/sys/buf.h
  projects/clang390-import/sys/ufs/ffs/ffs_tables.c
  projects/clang390-import/sys/ufs/ffs/ffs_vfsops.c
  projects/clang390-import/sys/ufs/ffs/ffs_vnops.c
  projects/clang390-import/sys/ufs/ufs/ufs_vnops.c
  projects/clang390-import/sys/vm/device_pager.c
  projects/clang390-import/sys/vm/vm_fault.c
  projects/clang390-import/sys/vm/vm_pager.h
  projects/clang390-import/sys/x86/cpufreq/hwpstate.c
  projects/clang390-import/sys/x86/include/x86_smp.h
  projects/clang390-import/sys/x86/include/x86_var.h
  projects/clang390-import/sys/x86/x86/cpu_machdep.c
  projects/clang390-import/sys/x86/x86/mp_x86.c
  projects/clang390-import/sys/x86/xen/xen_intr.c
  projects/clang390-import/sys/xen/xen_intr.h
  projects/clang390-import/tests/sys/geom/class/uzip/Makefile
  projects/clang390-import/tools/build/mk/OptionalObsoleteFiles.inc
  projects/clang390-import/usr.bin/bsdcat/Makefile
  projects/clang390-import/usr.bin/cpio/Makefile
  projects/clang390-import/usr.bin/tar/Makefile
  projects/clang390-import/usr.sbin/Makefile
  projects/clang390-import/usr.sbin/Makefile.powerpc
  projects/clang390-import/usr.sbin/amd/Makefile.inc
  projects/clang390-import/usr.sbin/amd/amd/Makefile
  projects/clang390-import/usr.sbin/amd/libamu/Makefile
  projects/clang390-import/usr.sbin/bhyve/dbgport.c
  projects/clang390-import/usr.sbin/bhyve/vga.c   (contents, props changed)
  projects/clang390-import/usr.sbin/config/Makefile
  projects/clang390-import/usr.sbin/cron/cron/cron.8
  projects/clang390-import/usr.sbin/cron/cron/cron.h
  projects/clang390-import/usr.sbin/cron/cron/database.c
  projects/clang390-import/usr.sbin/cron/cron/pathnames.h
  projects/clang390-import/usr.sbin/cron/lib/misc.c
  projects/clang390-import/usr.sbin/ctld/ctld.c
  projects/clang390-import/usr.sbin/daemon/daemon.8
  projects/clang390-import/usr.sbin/daemon/daemon.c
  projects/clang390-import/usr.sbin/makefs/Makefile
  projects/clang390-import/usr.sbin/makefs/cd9660.c
  projects/clang390-import/usr.sbin/makefs/cd9660/Makefile.inc
  projects/clang390-import/usr.sbin/makefs/cd9660/cd9660_archimedes.c
  projects/clang390-import/usr.sbin/makefs/cd9660/iso9660_rrip.c
  projects/clang390-import/usr.sbin/makefs/ffs/Makefile.inc
  projects/clang390-import/usr.sbin/makefs/ffs/ffs_bswap.c
  projects/clang390-import/usr.sbin/makefs/ffs/ffs_subr.c
  projects/clang390-import/usr.sbin/makefs/mtree.c
  projects/clang390-import/usr.sbin/makefs/walk.c
  projects/clang390-import/usr.sbin/mountd/mountd.8
  projects/clang390-import/usr.sbin/mountd/mountd.c
  projects/clang390-import/usr.sbin/pw/grupd.c
  projects/clang390-import/usr.sbin/pw/pw_nis.c
  projects/clang390-import/usr.sbin/pw/pwupd.c
  projects/clang390-import/usr.sbin/tzsetup/Makefile
  projects/clang390-import/usr.sbin/tzsetup/tzsetup.c
  projects/clang390-import/usr.sbin/watchdogd/watchdogd.c
Directory Properties:
  projects/clang390-import/   (props changed)
  projects/clang390-import/cddl/   (props changed)
  projects/clang390-import/cddl/contrib/opensolaris/   (props changed)
  projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
  projects/clang390-import/contrib/binutils/   (props changed)
  projects/clang390-import/contrib/elftoolchain/   (props changed)
  projects/clang390-import/contrib/gcc/   (props changed)
  projects/clang390-import/contrib/libarchive/   (props changed)
  projects/clang390-import/contrib/llvm/   (props changed)
  projects/clang390-import/contrib/llvm/projects/libunwind/   (props changed)
  projects/clang390-import/contrib/netbsd-tests/   (props changed)
  projects/clang390-import/contrib/tzdata/   (props changed)
  projects/clang390-import/crypto/openssl/   (props changed)
  projects/clang390-import/gnu/lib/   (props changed)
  projects/clang390-import/gnu/usr.bin/binutils/   (props changed)
  projects/clang390-import/gnu/usr.bin/cc/cc_tools/   (props changed)
  projects/clang390-import/gnu/usr.bin/gdb/   (props changed)
  projects/clang390-import/sys/cddl/contrib/opensolaris/   (props changed)

Modified: projects/clang390-import/Makefile
==============================================================================
--- projects/clang390-import/Makefile	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/Makefile	Mon Oct 31 19:02:42 2016	(r308147)
@@ -239,7 +239,7 @@ _MAKE+=	MK_META_MODE=no
 _TARGET_ARCH=	${TARGET:S/pc98/i386/:S/arm64/aarch64/}
 .elif !defined(TARGET) && defined(TARGET_ARCH) && \
     ${TARGET_ARCH} != ${MACHINE_ARCH}
-_TARGET=		${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/aarch64/arm64/:C/powerpc64/powerpc/:C/riscv64/riscv/}
+_TARGET=		${TARGET_ARCH:C/mips(n32|64)?(el)?(hf)?/mips/:C/arm(v6)?(eb)?/arm/:C/aarch64/arm64/:C/powerpc64/powerpc/:C/powerpcspe/powerpc/:C/riscv64/riscv/}
 .endif
 .if defined(TARGET) && !defined(_TARGET)
 _TARGET=${TARGET}
@@ -421,8 +421,8 @@ TARGETS?=amd64 arm arm64 i386 mips pc98 
 _UNIVERSE_TARGETS=	${TARGETS}
 TARGET_ARCHES_arm?=	arm armeb armv6
 TARGET_ARCHES_arm64?=	aarch64
-TARGET_ARCHES_mips?=	mipsel mips mips64el mips64 mipsn32
-TARGET_ARCHES_powerpc?=	powerpc powerpc64
+TARGET_ARCHES_mips?=	mipsel mips mips64el mips64 mipsn32 mipselhf mipshf mips64elhf mips64hf
+TARGET_ARCHES_powerpc?=	powerpc powerpc64 powerpcspe
 TARGET_ARCHES_pc98?=	i386
 .for target in ${TARGETS}
 TARGET_ARCHES_${target}?= ${target}

Modified: projects/clang390-import/Makefile.inc1
==============================================================================
--- projects/clang390-import/Makefile.inc1	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/Makefile.inc1	Mon Oct 31 19:02:42 2016	(r308147)
@@ -356,8 +356,13 @@ KNOWN_ARCHES?=	aarch64/arm64 \
 		mipsn32el/mips \
 		mips64/mips \
 		mipsn32/mips \
+		mipshf/mips \
+		mipselhf/mips \
+		mips64elhf/mips \
+		mips64hf/mips \
 		powerpc \
 		powerpc64/powerpc \
+		powerpcspe/powerpc \
 		riscv64/riscv \
 		sparc64
 
@@ -452,7 +457,7 @@ PACKAGE=	kernel
 #
 
 BOOTSTRAPPING?=	0
-# Keep these in sync
+# Keep these in sync -- see below for special case exception
 MINIMUM_SUPPORTED_OSREL?= 900044
 MINIMUM_SUPPORTED_REL?= 9.1
 
@@ -1556,10 +1561,23 @@ _elftoolchain_libs= lib/libelf lib/libdw
 .endif
 
 legacy: .PHONY
+# Temporary special case for automatically detecting the clang compiler issue
+# Note: 9.x didn't have FreeBSD_version bumps often enough, so you may need to
+# set BOOTSTRAPPING to 0 if you're stable/9 tree post-dates r286035 but is before
+# the version bump in r296219 (from July 29, 2015 -> Feb 29, 2016).
+.if ${BOOTSTRAPPING} != 0 && \
+	${WANT_COMPILER_TYPE} == "clang" && ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 30601
+.if   ${BOOTSTRAPPING} > 10000000 && ${BOOTSTRAPPING} < 1002501
+	@echo "ERROR: Source upgrades from stable/10 prior to r286033 are not supported."; false
+.elif ${BOOTSTRAPPING} >  9000000 && ${BOOTSTRAPPING} <  903509
+	@echo "ERROR: Source upgrades from stable/9 prior to r286035 are not supported."; false
+.endif
+.endif
 .if ${BOOTSTRAPPING} < ${MINIMUM_SUPPORTED_OSREL} && ${BOOTSTRAPPING} != 0
 	@echo "ERROR: Source upgrades from versions prior to ${MINIMUM_SUPPORTED_REL} are not supported."; \
 	false
 .endif
+
 .for _tool in tools/build ${_elftoolchain_libs}
 	${_+_}@${ECHODIR} "===> ${_tool} (obj,includes,all,install)"; \
 	    cd ${.CURDIR}/${_tool}; \

Modified: projects/clang390-import/UPDATING
==============================================================================
--- projects/clang390-import/UPDATING	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/UPDATING	Mon Oct 31 19:02:42 2016	(r308147)
@@ -41,13 +41,22 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12
 	11.0-RELEASE). These revisions post-date the 10.2 and 9.3 releases, so
 	you'll need to take the unusual step of upgrading to the tip of the
 	stable branch before moving to 11 or -current via a source upgrade.
-	stable/11 and 11.0-RELEASE post-date the fix so you can move from them
-	to -current. This differs from the historical situation where one could
-	upgrade from anywhere on the last couple of stable branches, so be
-	careful.
+	stable/11 and 11.0-RELEASE have working newer compiler. This differs
+	from the historical situation where one could upgrade from anywhere on
+	the last couple of stable branches, so be careful.
+
+	If you're running a hybrid system on 9.x or 10.x with an updated clang
+	compiler or are using an supported external toolchain, the build system
+	will allow the upgrade. Otherwise it will print a reminder.
 
 ****************************** SPECIAL WARNING: ******************************
 
+20161030:
+	isl(4) and cyapa(4) drivers now require a new driver,
+	chromebook_platform(4), to work properly on Chromebook-class hardware.
+	On other types of hardware the drivers may need to be configured using
+	device hints.  Please see the corresponding manual pages for details.
+
 20161017:
 	The urtwn(4) driver was merged into rtwn(4) and now consists of
 	rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific

Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h	Mon Oct 31 19:02:42 2016	(r308147)
@@ -213,6 +213,7 @@ extern int zpool_get_state(zpool_handle_
 extern const char *zpool_state_to_name(vdev_state_t, vdev_aux_t);
 extern const char *zpool_pool_state_to_name(pool_state_t);
 extern void zpool_free_handles(libzfs_handle_t *);
+extern int zpool_nextboot(libzfs_handle_t *, uint64_t, uint64_t, const char *);
 
 /*
  * Iterate over all active pools in the system.

Modified: projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
==============================================================================
--- projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -4126,3 +4126,25 @@ out:
 	libzfs_fini(hdl);
 	return (ret);
 }
+
+int
+zpool_nextboot(libzfs_handle_t *hdl, uint64_t pool_guid, uint64_t dev_guid,
+    const char *command)
+{
+	zfs_cmd_t zc = { 0 };
+	nvlist_t *args;
+	char *packed;
+	size_t size;
+	int error;
+
+	args = fnvlist_alloc();
+	fnvlist_add_uint64(args, ZPOOL_CONFIG_POOL_GUID, pool_guid);
+	fnvlist_add_uint64(args, ZPOOL_CONFIG_GUID, dev_guid);
+	fnvlist_add_string(args, "command", command);
+	error = zcmd_write_src_nvlist(hdl, &zc, args);
+	if (error == 0)
+		error = ioctl(hdl->libzfs_fd, ZFS_IOC_NEXTBOOT, &zc);
+	zcmd_free_nvlists(&zc);
+	nvlist_free(args);
+	return (error);
+}

Modified: projects/clang390-import/contrib/binutils/bfd/config.bfd
==============================================================================
--- projects/clang390-import/contrib/binutils/bfd/config.bfd	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/binutils/bfd/config.bfd	Mon Oct 31 19:02:42 2016	(r308147)
@@ -1103,7 +1103,7 @@ case "${targ}" in
     want64=true
     ;;
 #endif
-  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
+  powerpc-*-*bsd* | powerpcspe-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
   powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \
   powerpc-*-chorus*)
     targ_defvec=bfd_elf32_powerpc_vec

Modified: projects/clang390-import/contrib/bsnmp/lib/snmp.c
==============================================================================
--- projects/clang390-import/contrib/bsnmp/lib/snmp.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/bsnmp/lib/snmp.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -288,7 +288,7 @@ parse_secparams(struct asn_buf *b, struc
 	memset(buf, 0, 256);
 	tb.asn_ptr = buf;
 	tb.asn_len = 256;
-	u_int len;
+	u_int len = 256;
 
 	if (asn_get_octetstring(b, buf, &len) != ASN_ERR_OK) {
 		snmp_error("cannot parse usm header");

Modified: projects/clang390-import/contrib/elftoolchain/elfcopy/main.c
==============================================================================
--- projects/clang390-import/contrib/elftoolchain/elfcopy/main.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/elftoolchain/elfcopy/main.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -1529,6 +1529,22 @@ print_version(void)
 	exit(EXIT_SUCCESS);
 }
 
+/*
+ * Compare the ending of s with end.
+ */
+static int
+strrcmp(const char *s, const char *end)
+{
+	size_t endlen, slen;
+
+	slen = strlen(s);
+	endlen = strlen(end);
+
+	if (slen >= endlen)
+		s += slen - endlen;
+	return (strcmp(s, end));
+}
+
 int
 main(int argc, char **argv)
 {
@@ -1562,12 +1578,16 @@ main(int argc, char **argv)
 	if ((ecp->progname = ELFTC_GETPROGNAME()) == NULL)
 		ecp->progname = "elfcopy";
 
-	if (strcmp(ecp->progname, "strip") == 0)
+	if (strrcmp(ecp->progname, "strip") == 0)
 		strip_main(ecp, argc, argv);
-	else if (strcmp(ecp->progname, "mcs") == 0)
+	else if (strrcmp(ecp->progname, "mcs") == 0)
 		mcs_main(ecp, argc, argv);
-	else
+	else {
+		if (strrcmp(ecp->progname, "elfcopy") != 0 &&
+		    strrcmp(ecp->progname, "objcopy") != 0)
+			warnx("program mode not known, defaulting to elfcopy");
 		elfcopy_main(ecp, argc, argv);
+	}
 
 	free_sec_add(ecp);
 	free_sec_act(ecp);

Modified: projects/clang390-import/contrib/elftoolchain/strings/strings.c
==============================================================================
--- projects/clang390-import/contrib/elftoolchain/strings/strings.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/elftoolchain/strings/strings.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -48,12 +48,6 @@
 
 ELFTC_VCSID("$Id: strings.c 3446 2016-05-03 01:31:17Z emaste $");
 
-enum return_code {
-	RETURN_OK,
-	RETURN_NOINPUT,
-	RETURN_SOFTWARE
-};
-
 enum radix_style {
 	RADIX_DECIMAL,
 	RADIX_HEX,
@@ -107,7 +101,7 @@ main(int argc, char **argv)
 {
 	int ch, rc;
 
-	rc = RETURN_OK;
+	rc = 0;
 	min_len = 0;
 	encoding_size = 1;
 	if (elf_version(EV_CURRENT) == EV_NONE)
@@ -197,7 +191,8 @@ main(int argc, char **argv)
 	if (!*argv)
 		rc = handle_file("{standard input}");
 	else while (*argv) {
-		rc = handle_file(*argv);
+		if (handle_file(*argv) != 0)
+			rc = 1;
 		argv++;
 	}
 	return (rc);
@@ -209,11 +204,11 @@ handle_file(const char *name)
 	int fd, rt;
 
 	if (name == NULL)
-		return (RETURN_NOINPUT);
+		return (1);
 	if (strcmp("{standard input}", name) != 0) {
 		if (freopen(name, "rb", stdin) == NULL) {
 			warnx("'%s': %s", name, strerror(errno));
-			return (RETURN_NOINPUT);
+			return (1);
 		}
 	} else {
 		return (find_strings(name, (off_t)0, (off_t)0));
@@ -221,7 +216,7 @@ handle_file(const char *name)
 
 	fd = fileno(stdin);
 	if (fd < 0)
-		return (RETURN_NOINPUT);
+		return (1);
 	rt = handle_elf(name, fd);
 	return (rt);
 }
@@ -239,7 +234,7 @@ handle_binary(const char *name, int fd)
 	(void) lseek(fd, (off_t)0, SEEK_SET);
 	if (!fstat(fd, &buf))
 		return (find_strings(name, (off_t)0, buf.st_size));
-	return (RETURN_SOFTWARE);
+	return (1);
 }
 
 /*
@@ -257,7 +252,7 @@ handle_elf(const char *name, int fd)
 	Elf_Scn *scn;
 	int rc;
 
-	rc = RETURN_OK;
+	rc = 0;
 	/* If entire file is chosen, treat it as a binary file */
 	if (entire_file)
 		return (handle_binary(name, fd));
@@ -272,7 +267,7 @@ handle_elf(const char *name, int fd)
 	if (gelf_getehdr(elf, &elfhdr) == NULL) {
 		(void) elf_end(elf);
 		warnx("%s: ELF file could not be processed", name);
-		return (RETURN_SOFTWARE);
+		return (1);
 	}
 
 	if (elfhdr.e_shnum == 0 && elfhdr.e_type == ET_CORE) {
@@ -352,7 +347,7 @@ find_strings(const char *name, off_t off
 	if ((obuf = (char*)calloc(1, min_len + 1)) == NULL) {
 		(void) fprintf(stderr, "Unable to allocate memory: %s\n",
 		     strerror(errno));
-		return (RETURN_SOFTWARE);
+		return (1);
 	}
 
 	(void) fseeko(stdin, offset, SEEK_SET);
@@ -426,7 +421,7 @@ find_strings(const char *name, off_t off
 	}
 _exit1:
 	free(obuf);
-	return (RETURN_OK);
+	return (0);
 }
 
 #define	USAGE_MESSAGE	"\

Copied: projects/clang390-import/contrib/gcc/config/rs6000/freebsdspe.h (from r308146, head/contrib/gcc/config/rs6000/freebsdspe.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/clang390-import/contrib/gcc/config/rs6000/freebsdspe.h	Mon Oct 31 19:02:42 2016	(r308147, copy of r308146, head/contrib/gcc/config/rs6000/freebsdspe.h)
@@ -0,0 +1,77 @@
+/* Definitions of target machine for GNU compiler,
+   for PowerPC e500 machines running FreeBSD.
+   Based on linuxspe.h
+   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   Contributed by Aldy Hernandez (aldy at quesejoda.com).
+
+   This file is part of GCC.
+
+   GCC is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published
+   by the Free Software Foundation; either version 2, or (at your
+   option) any later version.
+
+   GCC is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GCC; see the file COPYING.  If not, write to the
+   Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+#undef  TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (PowerPC E500 FreeBSD)");
+
+/* Override rs6000.h and sysv4.h definition.  */
+#undef	TARGET_DEFAULT
+#define	TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_STRICT_ALIGN)
+
+#undef TARGET_SPE_ABI
+#undef TARGET_SPE
+#undef TARGET_E500
+#undef TARGET_ISEL
+#undef TARGET_FPRS
+#undef TARGET_E500_SINGLE
+#undef TARGET_E500_DOUBLE
+
+#define TARGET_SPE_ABI rs6000_spe_abi
+#define TARGET_SPE rs6000_spe
+#define TARGET_E500 (rs6000_cpu == PROCESSOR_PPC8540)
+#define TARGET_ISEL rs6000_isel
+#define TARGET_FPRS (rs6000_float_gprs == 0)
+#define TARGET_E500_SINGLE (TARGET_HARD_FLOAT && rs6000_float_gprs == 1)
+#define TARGET_E500_DOUBLE (TARGET_HARD_FLOAT && rs6000_float_gprs == 2)
+
+#undef  SUBSUBTARGET_OVERRIDE_OPTIONS
+#define SUBSUBTARGET_OVERRIDE_OPTIONS \
+  if (rs6000_select[1].string == NULL) \
+    rs6000_cpu = PROCESSOR_PPC8540; \
+  if (!rs6000_explicit_options.abi) \
+    rs6000_spe_abi = 1; \
+  if (!rs6000_explicit_options.float_gprs) \
+    rs6000_float_gprs = 1; \
+  /* See note below.  */ \
+  /*if (!rs6000_explicit_options.long_double)*/ \
+  /*  rs6000_long_double_type_size = 128;*/ \
+  if (!rs6000_explicit_options.spe) \
+    rs6000_spe = 1; \
+  if (!rs6000_explicit_options.isel) \
+    rs6000_isel = 1; \
+  if (target_flags & MASK_64BIT) \
+    error ("-m64 not supported in this configuration")
+
+/* The e500 ABI says that either long doubles are 128 bits, or if
+   implemented in any other size, the compiler/linker should error out.
+   We have no emulation libraries for 128 bit long doubles, and I hate
+   the dozens of failures on the regression suite.  So I'm breaking ABI
+   specifications, until I properly fix the emulation.
+
+   Enable these later.
+#undef CPP_LONGDOUBLE_DEFAULT_SPEC
+#define CPP_LONGDOUBLE_DEFAULT_SPEC "-D__LONG_DOUBLE_128__=1"
+*/
+
+#undef  ASM_DEFAULT_SPEC
+#define	ASM_DEFAULT_SPEC "-mppc -mspe -me500"

Modified: projects/clang390-import/contrib/libarchive/NEWS
==============================================================================
--- projects/clang390-import/contrib/libarchive/NEWS	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/NEWS	Mon Oct 31 19:02:42 2016	(r308147)
@@ -1,3 +1,6 @@
+Oct 23, 2016: libarchive 3.2.2 released
+    Security release
+
 Jun 20, 2016: libarchive 3.2.1 released
     This fixes a handful of security and other critical issues with 3.2.0
 

Modified: projects/clang390-import/contrib/libarchive/cat/test/main.c
==============================================================================
--- projects/clang390-import/contrib/libarchive/cat/test/main.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/cat/test/main.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -129,6 +129,13 @@
 # include <crtdbg.h>
 #endif
 
+mode_t umasked(mode_t expected_mode)
+{
+	mode_t mode = umask(0);
+	umask(mode);
+	return expected_mode & ~mode;
+}
+
 /* Path to working directory for current test */
 const char *testworkdir;
 #ifdef PROGRAM
@@ -1156,6 +1163,35 @@ assertion_file_contains_lines_any_order(
 	return (0);
 }
 
+/* Verify that a text file does not contains the specified strings */
+int
+assertion_file_contains_no_invalid_strings(const char *file, int line,
+    const char *pathname, const char *strings[])
+{
+	char *buff;
+	int i;
+
+	buff = slurpfile(NULL, "%s", pathname);
+	if (buff == NULL) {
+		failure_start(file, line, "Can't read file: %s", pathname);
+		failure_finish(NULL);
+		return (0);
+	}
+
+	for (i = 0; strings[i] != NULL; ++i) {
+		if (strstr(buff, strings[i]) != NULL) {
+			failure_start(file, line, "Invalid string in %s: %s", pathname,
+			    strings[i]);
+			failure_finish(NULL);
+			free(buff);
+			return(0);
+		}
+	}
+
+	free(buff);
+	return (0);
+}
+
 /* Test that two paths point to the same file. */
 /* As a side-effect, asserts that both files exist. */
 static int
@@ -1293,6 +1329,11 @@ assertion_file_time(const char *file, in
 	switch (type) {
 	case 'a': filet_nsec = st.st_atimespec.tv_nsec; break;
 	case 'b': filet = st.st_birthtime;
+		/* FreeBSD filesystems that don't support birthtime
+		 * (e.g., UFS1) always return -1 here. */
+		if (filet == -1) {
+			return (1);
+		}
 		filet_nsec = st.st_birthtimespec.tv_nsec; break;
 	case 'm': filet_nsec = st.st_mtimespec.tv_nsec; break;
 	default: fprintf(stderr, "INTERNAL: Bad type %c for file time", type);
@@ -1370,6 +1411,8 @@ assertion_file_mode(const char *file, in
 	assertion_count(file, line);
 #if defined(_WIN32) && !defined(__CYGWIN__)
 	failure_start(file, line, "assertFileMode not yet implemented for Windows");
+	(void)mode; /* UNUSED */
+	(void)r; /* UNUSED */
 #else
 	{
 		struct stat st;
@@ -1424,7 +1467,7 @@ assertion_file_nlinks(const char *file, 
 	assertion_count(file, line);
 	r = lstat(pathname, &st);
 	if (r == 0 && (int)st.st_nlink == nlinks)
-			return (1);
+		return (1);
 	failure_start(file, line, "File %s has %d links, expected %d",
 	    pathname, st.st_nlink, nlinks);
 	failure_finish(NULL);
@@ -1660,6 +1703,7 @@ assertion_make_file(const char *file, in
 	if (0 != chmod(path, mode)) {
 		failure_start(file, line, "Could not chmod %s", path);
 		failure_finish(NULL);
+		close(fd);
 		return (0);
 	}
 	if (contents != NULL) {
@@ -1674,6 +1718,7 @@ assertion_make_file(const char *file, in
 			failure_start(file, line,
 			    "Could not write to %s", path);
 			failure_finish(NULL);
+			close(fd);
 			return (0);
 		}
 	}

Modified: projects/clang390-import/contrib/libarchive/cat/test/test.h
==============================================================================
--- projects/clang390-import/contrib/libarchive/cat/test/test.h	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/cat/test/test.h	Mon Oct 31 19:02:42 2016	(r308147)
@@ -174,6 +174,9 @@
 /* Assert that file contents match a string. */
 #define assertFileContents(data, data_size, pathname) \
   assertion_file_contents(__FILE__, __LINE__, data, data_size, pathname)
+/* Verify that a file does not contain invalid strings */
+#define assertFileContainsNoInvalidStrings(pathname, strings) \
+  assertion_file_contains_no_invalid_strings(__FILE__, __LINE__, pathname, strings)
 #define assertFileMtime(pathname, sec, nsec)	\
   assertion_file_mtime(__FILE__, __LINE__, pathname, sec, nsec)
 #define assertFileMtimeRecent(pathname) \
@@ -182,6 +185,8 @@
   assertion_file_nlinks(__FILE__, __LINE__, pathname, nlinks)
 #define assertFileSize(pathname, size)  \
   assertion_file_size(__FILE__, __LINE__, pathname, size)
+#define assertFileMode(pathname, mode)  \
+  assertion_file_mode(__FILE__, __LINE__, pathname, mode)
 #define assertTextFileContents(text, pathname) \
   assertion_text_file_contents(__FILE__, __LINE__, text, pathname)
 #define assertFileContainsLinesAnyOrder(pathname, lines)	\
@@ -239,6 +244,7 @@ int assertion_file_atime_recent(const ch
 int assertion_file_birthtime(const char *, int, const char *, long, long);
 int assertion_file_birthtime_recent(const char *, int, const char *);
 int assertion_file_contains_lines_any_order(const char *, int, const char *, const char **);
+int assertion_file_contains_no_invalid_strings(const char *, int, const char *, const char **);
 int assertion_file_contents(const char *, int, const void *, int, const char *);
 int assertion_file_exists(const char *, int, const char *);
 int assertion_file_mode(const char *, int, const char *, int);
@@ -327,6 +333,9 @@ void copy_reference_file(const char *);
  */
 void extract_reference_files(const char **);
 
+/* Subtract umask from mode */
+mode_t umasked(mode_t expected_mode);
+
 /* Path to working directory for current test */
 extern const char *testworkdir;
 

Modified: projects/clang390-import/contrib/libarchive/cpio/test/main.c
==============================================================================
--- projects/clang390-import/contrib/libarchive/cpio/test/main.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/cpio/test/main.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -1164,6 +1164,35 @@ assertion_file_contains_lines_any_order(
 	return (0);
 }
 
+/* Verify that a text file does not contains the specified strings */
+int
+assertion_file_contains_no_invalid_strings(const char *file, int line,
+    const char *pathname, const char *strings[])
+{
+	char *buff;
+	int i;
+
+	buff = slurpfile(NULL, "%s", pathname);
+	if (buff == NULL) {
+		failure_start(file, line, "Can't read file: %s", pathname);
+		failure_finish(NULL);
+		return (0);
+	}
+
+	for (i = 0; strings[i] != NULL; ++i) {
+		if (strstr(buff, strings[i]) != NULL) {
+			failure_start(file, line, "Invalid string in %s: %s", pathname,
+			    strings[i]);
+			failure_finish(NULL);
+			free(buff);
+			return(0);
+		}
+	}
+
+	free(buff);
+	return (0);
+}
+
 /* Test that two paths point to the same file. */
 /* As a side-effect, asserts that both files exist. */
 static int
@@ -1383,6 +1412,8 @@ assertion_file_mode(const char *file, in
 	assertion_count(file, line);
 #if defined(_WIN32) && !defined(__CYGWIN__)
 	failure_start(file, line, "assertFileMode not yet implemented for Windows");
+	(void)mode; /* UNUSED */
+	(void)r; /* UNUSED */
 #else
 	{
 		struct stat st;

Modified: projects/clang390-import/contrib/libarchive/cpio/test/test.h
==============================================================================
--- projects/clang390-import/contrib/libarchive/cpio/test/test.h	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/cpio/test/test.h	Mon Oct 31 19:02:42 2016	(r308147)
@@ -174,6 +174,9 @@
 /* Assert that file contents match a string. */
 #define assertFileContents(data, data_size, pathname) \
   assertion_file_contents(__FILE__, __LINE__, data, data_size, pathname)
+/* Verify that a file does not contain invalid strings */
+#define assertFileContainsNoInvalidStrings(pathname, strings) \
+  assertion_file_contains_no_invalid_strings(__FILE__, __LINE__, pathname, strings)
 #define assertFileMtime(pathname, sec, nsec)	\
   assertion_file_mtime(__FILE__, __LINE__, pathname, sec, nsec)
 #define assertFileMtimeRecent(pathname) \
@@ -241,6 +244,7 @@ int assertion_file_atime_recent(const ch
 int assertion_file_birthtime(const char *, int, const char *, long, long);
 int assertion_file_birthtime_recent(const char *, int, const char *);
 int assertion_file_contains_lines_any_order(const char *, int, const char *, const char **);
+int assertion_file_contains_no_invalid_strings(const char *, int, const char *, const char **);
 int assertion_file_contents(const char *, int, const void *, int, const char *);
 int assertion_file_exists(const char *, int, const char *);
 int assertion_file_mode(const char *, int, const char *, int);

Modified: projects/clang390-import/contrib/libarchive/libarchive/archive.h
==============================================================================
--- projects/clang390-import/contrib/libarchive/libarchive/archive.h	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/libarchive/archive.h	Mon Oct 31 19:02:42 2016	(r308147)
@@ -36,7 +36,7 @@
  * assert that ARCHIVE_VERSION_NUMBER >= 2012108.
  */
 /* Note: Compiler will complain if this does not match archive_entry.h! */
-#define	ARCHIVE_VERSION_NUMBER 3002001
+#define	ARCHIVE_VERSION_NUMBER 3002002
 
 #include <sys/stat.h>
 #include <stddef.h>  /* for wchar_t */
@@ -155,7 +155,7 @@ __LA_DECL int		archive_version_number(vo
 /*
  * Textual name/version of the library, useful for version displays.
  */
-#define	ARCHIVE_VERSION_ONLY_STRING "3.2.1"
+#define	ARCHIVE_VERSION_ONLY_STRING "3.2.2"
 #define	ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING
 __LA_DECL const char *	archive_version_string(void);
 

Modified: projects/clang390-import/contrib/libarchive/libarchive/archive_entry.h
==============================================================================
--- projects/clang390-import/contrib/libarchive/libarchive/archive_entry.h	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/libarchive/archive_entry.h	Mon Oct 31 19:02:42 2016	(r308147)
@@ -29,7 +29,7 @@
 #define	ARCHIVE_ENTRY_H_INCLUDED
 
 /* Note: Compiler will complain if this does not match archive.h! */
-#define	ARCHIVE_VERSION_NUMBER 3002001
+#define	ARCHIVE_VERSION_NUMBER 3002002
 
 /*
  * Note: archive_entry.h is for use outside of libarchive; the

Modified: projects/clang390-import/contrib/libarchive/libarchive/test/main.c
==============================================================================
--- projects/clang390-import/contrib/libarchive/libarchive/test/main.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/libarchive/test/main.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -1162,6 +1162,35 @@ assertion_file_contains_lines_any_order(
 	return (0);
 }
 
+/* Verify that a text file does not contains the specified strings */
+int
+assertion_file_contains_no_invalid_strings(const char *file, int line,
+    const char *pathname, const char *strings[])
+{
+	char *buff;
+	int i;
+
+	buff = slurpfile(NULL, "%s", pathname);
+	if (buff == NULL) {
+		failure_start(file, line, "Can't read file: %s", pathname);
+		failure_finish(NULL);
+		return (0);
+	}
+
+	for (i = 0; strings[i] != NULL; ++i) {
+		if (strstr(buff, strings[i]) != NULL) {
+			failure_start(file, line, "Invalid string in %s: %s", pathname,
+			    strings[i]);
+			failure_finish(NULL);
+			free(buff);
+			return(0);
+		}
+	}
+
+	free(buff);
+	return (0);
+}
+
 /* Test that two paths point to the same file. */
 /* As a side-effect, asserts that both files exist. */
 static int
@@ -1381,6 +1410,8 @@ assertion_file_mode(const char *file, in
 	assertion_count(file, line);
 #if defined(_WIN32) && !defined(__CYGWIN__)
 	failure_start(file, line, "assertFileMode not yet implemented for Windows");
+	(void)mode; /* UNUSED */
+	(void)r; /* UNUSED */
 #else
 	{
 		struct stat st;

Modified: projects/clang390-import/contrib/libarchive/libarchive/test/test.h
==============================================================================
--- projects/clang390-import/contrib/libarchive/libarchive/test/test.h	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/libarchive/test/test.h	Mon Oct 31 19:02:42 2016	(r308147)
@@ -174,6 +174,9 @@
 /* Assert that file contents match a string. */
 #define assertFileContents(data, data_size, pathname) \
   assertion_file_contents(__FILE__, __LINE__, data, data_size, pathname)
+/* Verify that a file does not contain invalid strings */
+#define assertFileContainsNoInvalidStrings(pathname, strings) \
+  assertion_file_contains_no_invalid_strings(__FILE__, __LINE__, pathname, strings)
 #define assertFileMtime(pathname, sec, nsec)	\
   assertion_file_mtime(__FILE__, __LINE__, pathname, sec, nsec)
 #define assertFileMtimeRecent(pathname) \
@@ -241,6 +244,7 @@ int assertion_file_atime_recent(const ch
 int assertion_file_birthtime(const char *, int, const char *, long, long);
 int assertion_file_birthtime_recent(const char *, int, const char *);
 int assertion_file_contains_lines_any_order(const char *, int, const char *, const char **);
+int assertion_file_contains_no_invalid_strings(const char *, int, const char *, const char **);
 int assertion_file_contents(const char *, int, const void *, int, const char *);
 int assertion_file_exists(const char *, int, const char *);
 int assertion_file_mode(const char *, int, const char *, int);

Modified: projects/clang390-import/contrib/libarchive/libarchive/test/test_read_format_mtree_crash747.c
==============================================================================
--- projects/clang390-import/contrib/libarchive/libarchive/test/test_read_format_mtree_crash747.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/libarchive/test/test_read_format_mtree_crash747.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -33,6 +33,11 @@ DEFINE_TEST(test_read_format_mtree_crash
 	const char *reffile = "test_read_format_mtree_crash747.mtree.bz2";
 	struct archive *a;
 
+	if (archive_bzlib_version() == NULL) {
+		skipping("This test requires bzlib");
+		return;
+	}
+
 	extract_reference_file(reffile);
 
 	assert((a = archive_read_new()) != NULL);

Modified: projects/clang390-import/contrib/libarchive/libarchive/test/test_read_format_zip_high_compression.c
==============================================================================
--- projects/clang390-import/contrib/libarchive/libarchive/test/test_read_format_zip_high_compression.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/libarchive/test/test_read_format_zip_high_compression.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -50,6 +50,11 @@ DEFINE_TEST(test_read_format_zip_high_co
 	size_t s;
 	int64_t o;
 
+	if (archive_zlib_version() == NULL) {
+		skipping("Zip compression test requires zlib");
+		return;
+	}
+
 	extract_reference_file(refname);
 	p = slurpfile(&archive_size, refname);
 
@@ -82,6 +87,11 @@ DEFINE_TEST(test_read_format_zip_high_co
 	char *body, *body_read, *buff;
 	int n;
 
+	if (archive_zlib_version() == NULL) {
+		skipping("Zip compression test requires zlib");
+		return;
+	}
+
 	assert((body = malloc(body_size)) != NULL);
 	assert((body_read = malloc(body_size)) != NULL);
 	assert((buff = malloc(buff_size)) != NULL);

Modified: projects/clang390-import/contrib/libarchive/libarchive/test/test_read_set_format.c
==============================================================================
--- projects/clang390-import/contrib/libarchive/libarchive/test/test_read_set_format.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/libarchive/test/test_read_set_format.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -133,11 +133,12 @@ DEFINE_TEST(test_read_append_filter)
   assert((a = archive_read_new()) != NULL);
   assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_TAR));
   r = archive_read_append_filter(a, ARCHIVE_FILTER_GZIP);
-  if (r == ARCHIVE_WARN && !canGzip()) {
-    skipping("gzip reading not fully supported on this platform");
+  if (r != ARCHIVE_OK && archive_zlib_version() == NULL && !canGzip()) {
+    skipping("gzip tests require zlib or working gzip command");
     assertEqualInt(ARCHIVE_OK, archive_read_free(a));
     return;
   }
+  assertEqualIntA(a, ARCHIVE_OK, r);
   assertEqualInt(ARCHIVE_OK,
       archive_read_open_memory(a, archive, sizeof(archive)));
   assertEqualInt(ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -200,8 +201,11 @@ DEFINE_TEST(test_read_append_filter_wron
 {
   struct archive_entry *ae;
   struct archive *a;
+#if !defined(_WIN32) || defined(__CYGWIN__)
+  FILE * fp;
   int fd;
   fpos_t pos;
+#endif
 
   /*
    * If we have "bunzip2 -q", try using that.
@@ -211,11 +215,13 @@ DEFINE_TEST(test_read_append_filter_wron
     return;
   }
 
+#if !defined(_WIN32) || defined(__CYGWIN__)
   /* bunzip2 will write to stderr, redirect it to a file */
   fflush(stderr);
   fgetpos(stderr, &pos);
   fd = dup(fileno(stderr));
-  freopen("stderr1", "w", stderr);
+  fp = freopen("stderr1", "w", stderr); 
+#endif
 
   assert((a = archive_read_new()) != NULL);
   assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_TAR));
@@ -227,12 +233,15 @@ DEFINE_TEST(test_read_append_filter_wron
   assertEqualIntA(a, ARCHIVE_WARN, archive_read_close(a));
   assertEqualInt(ARCHIVE_OK, archive_read_free(a));
 
-  /* restore stderr */
-  fflush(stderr);
-  dup2(fd, fileno(stderr));
-  close(fd);
-  clearerr(stderr);
-  fsetpos(stderr, &pos);
-
+#if !defined(_WIN32) || defined(__CYGWIN__)
+  /* restore stderr and verify results */
+  if (fp != NULL) {
+    fflush(stderr);
+    dup2(fd, fileno(stderr));
+    close(fd);
+    clearerr(stderr);
+    fsetpos(stderr, &pos);
+  }
   assertTextFileContents("bunzip2: (stdin) is not a bzip2 file.\n", "stderr1");
+#endif
 }

Modified: projects/clang390-import/contrib/libarchive/libarchive/test/test_write_format_iso9660.c
==============================================================================
--- projects/clang390-import/contrib/libarchive/libarchive/test/test_write_format_iso9660.c	Mon Oct 31 18:45:01 2016	(r308146)
+++ projects/clang390-import/contrib/libarchive/libarchive/test/test_write_format_iso9660.c	Mon Oct 31 19:02:42 2016	(r308147)
@@ -117,8 +117,8 @@ DEFINE_TEST(test_write_format_iso9660)
 	 */
 	dirname[0] = '\0';
 	strcpy(dir, "/dir0");
-	for (i = 0; i < 10; i++) {
-		dir[4] = '0' + i;
+	for (i = 0; i < 13; i++) {
+		dir[4] = "0123456789ABCDEF"[i];
 		if (i == 0)
 			strcat(dirname, dir+1);
 		else
@@ -134,6 +134,19 @@ DEFINE_TEST(test_write_format_iso9660)
 		archive_entry_free(ae);
 	}
 
+	strcat(dirname, "/file");
+	assert((ae = archive_entry_new()) != NULL);
+	archive_entry_set_atime(ae, 2, 20);
+	archive_entry_set_birthtime(ae, 3, 30);
+	archive_entry_set_ctime(ae, 4, 40);
+	archive_entry_set_mtime(ae, 5, 50);
+	archive_entry_copy_pathname(ae, dirname);
+	archive_entry_set_mode(ae, S_IFREG | 0755);
+	archive_entry_set_size(ae, 8);
+	assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, ae));
+	archive_entry_free(ae);
+	assertEqualIntA(a, 8, archive_write_data(a, "12345678", 9));
+
 	/*
 	 * "dir0/dir1/file1" has 8 bytes of data.
 	 */
@@ -333,6 +346,45 @@ DEFINE_TEST(test_write_format_iso9660)
 	assertEqualInt(2048, archive_entry_size(ae));
 
 	/*
+	 * Read "dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA"
+	 */
+	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
+	assertEqualInt(2, archive_entry_atime(ae));
+	assertEqualInt(3, archive_entry_birthtime(ae));
+	assertEqualInt(4, archive_entry_ctime(ae));
+	assertEqualInt(5, archive_entry_mtime(ae));
+	assertEqualString("dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA",
+	    archive_entry_pathname(ae));
+	assert((S_IFDIR | 0555) == archive_entry_mode(ae));
+	assertEqualInt(2048, archive_entry_size(ae));
+
+	/*
+	 * Read "dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB"
+	 */
+	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
+	assertEqualInt(2, archive_entry_atime(ae));
+	assertEqualInt(3, archive_entry_birthtime(ae));
+	assertEqualInt(4, archive_entry_ctime(ae));
+	assertEqualInt(5, archive_entry_mtime(ae));
+	assertEqualString("dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB",
+	    archive_entry_pathname(ae));
+	assert((S_IFDIR | 0555) == archive_entry_mode(ae));
+	assertEqualInt(2048, archive_entry_size(ae));
+
+	/*
+	 * Read "dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB/dirC"
+	 */
+	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
+	assertEqualInt(2, archive_entry_atime(ae));
+	assertEqualInt(3, archive_entry_birthtime(ae));
+	assertEqualInt(4, archive_entry_ctime(ae));
+	assertEqualInt(5, archive_entry_mtime(ae));
+	assertEqualString("dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB/dirC",
+	    archive_entry_pathname(ae));
+	assert((S_IFDIR | 0555) == archive_entry_mode(ae));
+	assertEqualInt(2048, archive_entry_size(ae));
+
+	/*
 	 * Read "hardlnk"
 	 */
 	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
@@ -386,6 +438,21 @@ DEFINE_TEST(test_write_format_iso9660)
 	assertEqualMem(buff2, "12345678", 8);
 
 	/*
+	 * Read "dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB/dirC/file"
+	 */
+	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
+	assertEqualInt(2, archive_entry_atime(ae));
+	assertEqualInt(3, archive_entry_birthtime(ae));
+	assertEqualInt(4, archive_entry_ctime(ae));
+	assertEqualInt(5, archive_entry_mtime(ae));
+	assertEqualString("dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB/dirC/file", archive_entry_pathname(ae));
+	assert((AE_IFREG | 0555) == archive_entry_mode(ae));
+	assertEqualInt(1, archive_entry_nlink(ae));
+	assertEqualInt(8, archive_entry_size(ae));
+	assertEqualIntA(a, 8, archive_read_data(a, buff2, 10));
+	assertEqualMem(buff2, "12345678", 8);
+
+	/*
 	 * Read "dir0/dir1/file1"
 	 */
 	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
@@ -580,29 +647,65 @@ DEFINE_TEST(test_write_format_iso9660)
 	assertEqualInt(2048, archive_entry_size(ae));
 
 	/*
-	 * Read "hardlnk"
+	 * Read "dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA"
 	 */
 	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
 	assertEqualInt(5, archive_entry_atime(ae));
 	assertEqualInt(5, archive_entry_ctime(ae));
 	assertEqualInt(5, archive_entry_mtime(ae));
-	assertEqualString("hardlnk", archive_entry_pathname(ae));
+	assertEqualString("dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA",
+	    archive_entry_pathname(ae));
+	assert((S_IFDIR | 0700) == archive_entry_mode(ae));
+	assertEqualInt(2048, archive_entry_size(ae));
+
+	/*
+	 * Read "dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB"
+	 */
+	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
+	assertEqualInt(5, archive_entry_atime(ae));
+	assertEqualInt(5, archive_entry_ctime(ae));
+	assertEqualInt(5, archive_entry_mtime(ae));
+	assertEqualString("dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB",
+	    archive_entry_pathname(ae));
+	assert((S_IFDIR | 0700) == archive_entry_mode(ae));
+	assertEqualInt(2048, archive_entry_size(ae));
+
+	/*
+	 * Read "dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB/dirC"
+	 */
+	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
+	assertEqualInt(5, archive_entry_atime(ae));
+	assertEqualInt(5, archive_entry_ctime(ae));
+	assertEqualInt(5, archive_entry_mtime(ae));
+	assertEqualString("dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB/dirC",
+	    archive_entry_pathname(ae));
+	assert((S_IFDIR | 0700) == archive_entry_mode(ae));
+	assertEqualInt(2048, archive_entry_size(ae));
+
+	/*
+	 * Read "file"
+	 */
+	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
+	assertEqualInt(5, archive_entry_atime(ae));
+	assertEqualInt(5, archive_entry_ctime(ae));
+	assertEqualInt(5, archive_entry_mtime(ae));
+	assertEqualString("file", archive_entry_pathname(ae));
 	assert((AE_IFREG | 0400) == archive_entry_mode(ae));
-	assertEqualInt(2, archive_entry_nlink(ae));
 	assertEqualInt(8, archive_entry_size(ae));
 	assertEqualIntA(a, 8, archive_read_data(a, buff2, 10));
 	assertEqualMem(buff2, "12345678", 8);
 
 	/*
-	 * Read "file"
+	 * Read "hardlnk"
 	 */
 	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
 	assertEqualInt(5, archive_entry_atime(ae));
 	assertEqualInt(5, archive_entry_ctime(ae));
 	assertEqualInt(5, archive_entry_mtime(ae));
-	assertEqualString("file", archive_entry_pathname(ae));
-	assertEqualString("hardlnk", archive_entry_hardlink(ae));
+	assertEqualString("hardlnk", archive_entry_pathname(ae));
+	assertEqualString("file", archive_entry_hardlink(ae));
 	assert((AE_IFREG | 0400) == archive_entry_mode(ae));
+	assertEqualInt(2, archive_entry_nlink(ae));
 	assertEqualInt(0, archive_entry_size(ae));
 	assertEqualIntA(a, 0, archive_read_data(a, buff2, 10));
 
@@ -625,6 +728,22 @@ DEFINE_TEST(test_write_format_iso9660)
 	assertEqualMem(buff2, "12345678", 8);
 
 	/*
+	 * Read "dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB/dirC/file"
+	 */
+	assertEqualIntA(a, 0, archive_read_next_header(a, &ae));
+	assertEqualInt(5, archive_entry_atime(ae));
+	assertEqualInt(5, archive_entry_ctime(ae));
+	assertEqualInt(5, archive_entry_mtime(ae));
+	assertEqualString(
+		"dir0/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dirA/dirB/dirC/file",
+		archive_entry_pathname(ae));
+	assert((AE_IFREG | 0400) == archive_entry_mode(ae));
+	assertEqualInt(1, archive_entry_nlink(ae));
+	assertEqualInt(8, archive_entry_size(ae));
+	assertEqualIntA(a, 8, archive_read_data(a, buff2, 10));
+	assertEqualMem(buff2, "12345678", 8);
+
+	/*
 	 * Read "dir0/dir1/file1"
 	 */

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


More information about the svn-src-projects mailing list