Date: Mon, 31 Oct 2016 19:02:43 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: 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... Message-ID: <201610311902.u9VJ2hw6034998@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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 ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201610311902.u9VJ2hw6034998>