Date: Wed, 13 Jul 2016 12:40:44 +0000 (UTC) From: Hans Petter Selasky <hselasky@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r302769 - in projects/hps_head: . bin/dd bin/sh bin/sh/tests/builtins cddl/lib/libdtrace contrib/llvm/projects/libunwind/include contrib/llvm/projects/libunwind/src contrib/one-true-awk... Message-ID: <201607131240.u6DCei8m061067@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: hselasky Date: Wed Jul 13 12:40:43 2016 New Revision: 302769 URL: https://svnweb.freebsd.org/changeset/base/302769 Log: Merge ^/head r302427 through r302768. Added: projects/hps_head/share/man/man4/if_ntb.4 - copied unchanged from r302768, head/share/man/man4/if_ntb.4 projects/hps_head/share/man/man4/ntb_hw.4 - copied unchanged from r302768, head/share/man/man4/ntb_hw.4 projects/hps_head/share/man/man4/ntb_transport.4 - copied unchanged from r302768, head/share/man/man4/ntb_transport.4 projects/hps_head/sys/arm/allwinner/a13/ - copied from r302768, head/sys/arm/allwinner/a13/ projects/hps_head/sys/arm/allwinner/a64/ - copied from r302768, head/sys/arm/allwinner/a64/ projects/hps_head/sys/compat/linux/linux_mmap.c - copied unchanged from r302768, head/sys/compat/linux/linux_mmap.c projects/hps_head/sys/compat/linux/linux_mmap.h - copied unchanged from r302768, head/sys/compat/linux/linux_mmap.h projects/hps_head/sys/compat/linux/linux_persona.h - copied unchanged from r302768, head/sys/compat/linux/linux_persona.h projects/hps_head/sys/dev/hyperv/vmbus/vmbus_if.m - copied unchanged from r302768, head/sys/dev/hyperv/vmbus/vmbus_if.m projects/hps_head/sys/dev/ntb/ntb.c - copied unchanged from r302768, head/sys/dev/ntb/ntb.c projects/hps_head/sys/dev/ntb/ntb.h - copied unchanged from r302768, head/sys/dev/ntb/ntb.h projects/hps_head/sys/dev/ntb/ntb_if.m - copied unchanged from r302768, head/sys/dev/ntb/ntb_if.m projects/hps_head/sys/dev/ntb/ntb_transport.c - copied unchanged from r302768, head/sys/dev/ntb/ntb_transport.c projects/hps_head/sys/dev/ntb/ntb_transport.h - copied unchanged from r302768, head/sys/dev/ntb/ntb_transport.h projects/hps_head/sys/modules/ntb/ntb/ - copied from r302768, head/sys/modules/ntb/ntb/ projects/hps_head/sys/modules/ntb/ntb_transport/ - copied from r302768, head/sys/modules/ntb/ntb_transport/ projects/hps_head/tests/sys/netinet/tcp_user_cookie.c - copied unchanged from r302768, head/tests/sys/netinet/tcp_user_cookie.c projects/hps_head/usr.sbin/bhyve/pci_e82545.c - copied unchanged from r302768, head/usr.sbin/bhyve/pci_e82545.c Deleted: projects/hps_head/share/man/man4/ntb.4 projects/hps_head/sys/dev/hyperv/vmbus/hv_connection.c projects/hps_head/sys/dev/ntb/ntb_hw/ntb_hw.h projects/hps_head/sys/powerpc/ofw/ofw_pci.c projects/hps_head/sys/powerpc/ofw/ofw_pci.h Modified: projects/hps_head/Makefile.inc1 projects/hps_head/ObsoleteFiles.inc projects/hps_head/bin/dd/args.c projects/hps_head/bin/dd/position.c projects/hps_head/bin/sh/expand.c projects/hps_head/bin/sh/tests/builtins/case7.0 projects/hps_head/cddl/lib/libdtrace/tcp.d projects/hps_head/contrib/llvm/projects/libunwind/include/__libunwind_config.h projects/hps_head/contrib/llvm/projects/libunwind/include/libunwind.h projects/hps_head/contrib/llvm/projects/libunwind/src/AddressSpace.hpp projects/hps_head/contrib/llvm/projects/libunwind/src/CompactUnwinder.hpp projects/hps_head/contrib/llvm/projects/libunwind/src/DwarfParser.hpp projects/hps_head/contrib/llvm/projects/libunwind/src/Registers.hpp projects/hps_head/contrib/llvm/projects/libunwind/src/Unwind-EHABI.cpp projects/hps_head/contrib/llvm/projects/libunwind/src/UnwindCursor.hpp projects/hps_head/contrib/llvm/projects/libunwind/src/UnwindLevel1.c projects/hps_head/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S projects/hps_head/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S projects/hps_head/contrib/llvm/projects/libunwind/src/config.h projects/hps_head/contrib/llvm/projects/libunwind/src/libunwind.cpp projects/hps_head/contrib/one-true-awk/b.c projects/hps_head/gnu/lib/libgcc/Makefile projects/hps_head/lib/libc/gen/fnmatch.c projects/hps_head/lib/libc/gen/glob.c projects/hps_head/lib/libc/locale/collate.h projects/hps_head/lib/libc/locale/collcmp.c projects/hps_head/lib/libc/regex/regcomp.c projects/hps_head/lib/libc/stdio/vfscanf.c projects/hps_head/lib/libc/sys/getloginclass.2 projects/hps_head/release/Makefile projects/hps_head/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/hps_head/release/doc/share/xml/release.ent projects/hps_head/sbin/ipfw/dummynet.c projects/hps_head/sbin/ipfw/ipfw2.h projects/hps_head/share/man/man4/Makefile projects/hps_head/share/man/man4/mpr.4 projects/hps_head/share/man/man4/mps.4 projects/hps_head/share/man/man9/ifnet.9 projects/hps_head/share/misc/committers-ports.dot projects/hps_head/sys/amd64/cloudabi64/cloudabi64_sysvec.c projects/hps_head/sys/amd64/include/intr_machdep.h projects/hps_head/sys/amd64/linux/linux.h projects/hps_head/sys/amd64/linux/linux_machdep.c projects/hps_head/sys/amd64/linux/linux_proto.h projects/hps_head/sys/amd64/linux/linux_syscall.h projects/hps_head/sys/amd64/linux/linux_syscalls.c projects/hps_head/sys/amd64/linux/linux_sysent.c projects/hps_head/sys/amd64/linux/linux_systrace_args.c projects/hps_head/sys/amd64/linux/syscalls.master projects/hps_head/sys/amd64/linux32/linux.h projects/hps_head/sys/amd64/linux32/linux32_machdep.c projects/hps_head/sys/amd64/linux32/linux32_proto.h projects/hps_head/sys/amd64/linux32/linux32_syscall.h projects/hps_head/sys/amd64/linux32/linux32_syscalls.c projects/hps_head/sys/amd64/linux32/linux32_sysent.c projects/hps_head/sys/amd64/linux32/linux32_systrace_args.c projects/hps_head/sys/amd64/linux32/syscalls.master projects/hps_head/sys/arm/allwinner/a10_ahci.c projects/hps_head/sys/arm/allwinner/a10_codec.c projects/hps_head/sys/arm/allwinner/a10_dmac.c projects/hps_head/sys/arm/allwinner/a10_ehci.c projects/hps_head/sys/arm/allwinner/a10_fb.c projects/hps_head/sys/arm/allwinner/a10_gpio.c projects/hps_head/sys/arm/allwinner/a10_hdmi.c projects/hps_head/sys/arm/allwinner/a10_mmc.c projects/hps_head/sys/arm/allwinner/a10_mmc.h projects/hps_head/sys/arm/allwinner/allwinner_machdep.c projects/hps_head/sys/arm/allwinner/aw_ccu.c projects/hps_head/sys/arm/allwinner/aw_if_dwc.c projects/hps_head/sys/arm/allwinner/aw_nmi.c projects/hps_head/sys/arm/allwinner/aw_rsb.c projects/hps_head/sys/arm/allwinner/aw_usbphy.c projects/hps_head/sys/arm/allwinner/clk/aw_ahbclk.c projects/hps_head/sys/arm/allwinner/clk/aw_apbclk.c projects/hps_head/sys/arm/allwinner/clk/aw_axiclk.c projects/hps_head/sys/arm/allwinner/clk/aw_codecclk.c projects/hps_head/sys/arm/allwinner/clk/aw_cpuclk.c projects/hps_head/sys/arm/allwinner/clk/aw_cpusclk.c projects/hps_head/sys/arm/allwinner/clk/aw_debeclk.c projects/hps_head/sys/arm/allwinner/clk/aw_gate.c projects/hps_head/sys/arm/allwinner/clk/aw_gmacclk.c projects/hps_head/sys/arm/allwinner/clk/aw_hdmiclk.c projects/hps_head/sys/arm/allwinner/clk/aw_lcdclk.c projects/hps_head/sys/arm/allwinner/clk/aw_mmcclk.c projects/hps_head/sys/arm/allwinner/clk/aw_modclk.c projects/hps_head/sys/arm/allwinner/clk/aw_pll.c projects/hps_head/sys/arm/allwinner/clk/aw_usbclk.c projects/hps_head/sys/arm/allwinner/if_awg.c projects/hps_head/sys/arm/allwinner/if_emac.c projects/hps_head/sys/arm/allwinner/std.a10 projects/hps_head/sys/arm/conf/A10 projects/hps_head/sys/arm/conf/ALLWINNER projects/hps_head/sys/arm/conf/ALPINE projects/hps_head/sys/arm/conf/AML8726 projects/hps_head/sys/arm/conf/ARMADA38X projects/hps_head/sys/arm/conf/ARMADAXP projects/hps_head/sys/arm/conf/ATMEL projects/hps_head/sys/arm/conf/AVILA projects/hps_head/sys/arm/conf/BEAGLEBONE projects/hps_head/sys/arm/conf/BWCT projects/hps_head/sys/arm/conf/CAMBRIA projects/hps_head/sys/arm/conf/CNS11XXNAS projects/hps_head/sys/arm/conf/CRB projects/hps_head/sys/arm/conf/DB-78XXX projects/hps_head/sys/arm/conf/DB-88F5XXX projects/hps_head/sys/arm/conf/DB-88F6XXX projects/hps_head/sys/arm/conf/DOCKSTAR projects/hps_head/sys/arm/conf/DREAMPLUG-1001 projects/hps_head/sys/arm/conf/EA3250 projects/hps_head/sys/arm/conf/EB9200 projects/hps_head/sys/arm/conf/EFIKA_MX projects/hps_head/sys/arm/conf/ETHERNUT5 projects/hps_head/sys/arm/conf/EXYNOS5.common projects/hps_head/sys/arm/conf/GUMSTIX projects/hps_head/sys/arm/conf/HL200 projects/hps_head/sys/arm/conf/HL201 projects/hps_head/sys/arm/conf/IMX53 projects/hps_head/sys/arm/conf/IMX53-QSB projects/hps_head/sys/arm/conf/IMX6 projects/hps_head/sys/arm/conf/KB920X projects/hps_head/sys/arm/conf/NSLU projects/hps_head/sys/arm/conf/PANDABOARD projects/hps_head/sys/arm/conf/QILA9G20 projects/hps_head/sys/arm/conf/RK3188 projects/hps_head/sys/arm/conf/RPI-B projects/hps_head/sys/arm/conf/RPI2 projects/hps_head/sys/arm/conf/SAM9260EK projects/hps_head/sys/arm/conf/SAM9G20EK projects/hps_head/sys/arm/conf/SAM9X25EK projects/hps_head/sys/arm/conf/SHEEVAPLUG projects/hps_head/sys/arm/conf/SN9G45 projects/hps_head/sys/arm/conf/SOCKIT.common projects/hps_head/sys/arm/conf/TEGRA124 projects/hps_head/sys/arm/conf/TS7800 projects/hps_head/sys/arm/conf/VERSATILEPB projects/hps_head/sys/arm/conf/VIRT projects/hps_head/sys/arm/conf/VYBRID projects/hps_head/sys/arm/conf/ZEDBOARD projects/hps_head/sys/arm/conf/std.arm projects/hps_head/sys/arm/conf/std.armv6 projects/hps_head/sys/arm/lpc/if_lpe.c projects/hps_head/sys/arm/nvidia/tegra124/tegra124_cpufreq.c projects/hps_head/sys/arm/nvidia/tegra124/tegra124_pmc.c projects/hps_head/sys/arm/nvidia/tegra124/tegra124_xusbpadctl.c projects/hps_head/sys/arm/nvidia/tegra_ahci.c projects/hps_head/sys/arm/nvidia/tegra_efuse.c projects/hps_head/sys/arm/nvidia/tegra_ehci.c projects/hps_head/sys/arm/nvidia/tegra_i2c.c projects/hps_head/sys/arm/nvidia/tegra_pcie.c projects/hps_head/sys/arm/nvidia/tegra_rtc.c projects/hps_head/sys/arm/nvidia/tegra_sdhci.c projects/hps_head/sys/arm/nvidia/tegra_soctherm.c projects/hps_head/sys/arm/nvidia/tegra_uart.c projects/hps_head/sys/arm/nvidia/tegra_usbphy.c projects/hps_head/sys/arm/samsung/exynos/chrome_kb.c projects/hps_head/sys/arm64/cloudabi64/cloudabi64_sysvec.c projects/hps_head/sys/boot/fdt/fdt_loader_cmd.c projects/hps_head/sys/boot/uboot/lib/elf_freebsd.c projects/hps_head/sys/boot/uboot/lib/glue.c projects/hps_head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/hps_head/sys/compat/linux/linux_emul.c projects/hps_head/sys/compat/linux/linux_emul.h projects/hps_head/sys/compat/linux/linux_misc.c projects/hps_head/sys/conf/files.amd64 projects/hps_head/sys/conf/files.i386 projects/hps_head/sys/conf/files.pc98 projects/hps_head/sys/conf/kern.mk projects/hps_head/sys/conf/options.arm projects/hps_head/sys/conf/options.arm64 projects/hps_head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c projects/hps_head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_misc.c projects/hps_head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_recv_ds.c projects/hps_head/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c projects/hps_head/sys/dev/ath/ath_hal/ah.c projects/hps_head/sys/dev/ath/ath_hal/ah.h projects/hps_head/sys/dev/ath/ath_hal/ah_desc.h projects/hps_head/sys/dev/ath/ath_hal/ah_internal.h projects/hps_head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/hps_head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/hps_head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/hps_head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/hps_head/sys/dev/ath/if_ath.c projects/hps_head/sys/dev/ath/if_athvar.h projects/hps_head/sys/dev/bhnd/bhnd.c projects/hps_head/sys/dev/bhnd/bhnd.h projects/hps_head/sys/dev/bhnd/bhnd_subr.c projects/hps_head/sys/dev/bhnd/bhndb/bhndb.c projects/hps_head/sys/dev/bhnd/bhndvar.h projects/hps_head/sys/dev/bhnd/cores/chipc/chipc_spi.c projects/hps_head/sys/dev/bhnd/nvram/bhnd_sprom_subr.c projects/hps_head/sys/dev/cxgb/ulp/tom/cxgb_listen.c projects/hps_head/sys/dev/cxgbe/t4_main.c projects/hps_head/sys/dev/cxgbe/tom/t4_listen.c projects/hps_head/sys/dev/drm2/drm_os_freebsd.h projects/hps_head/sys/dev/drm2/i915/i915_drv.h projects/hps_head/sys/dev/drm2/radeon/radeon_acpi.c projects/hps_head/sys/dev/dwc/if_dwc.c projects/hps_head/sys/dev/extres/clk/clk.c projects/hps_head/sys/dev/extres/clk/clk.h projects/hps_head/sys/dev/extres/clk/clk_fixed.c projects/hps_head/sys/dev/extres/hwreset/hwreset.c projects/hps_head/sys/dev/extres/hwreset/hwreset.h projects/hps_head/sys/dev/extres/phy/phy.c projects/hps_head/sys/dev/extres/phy/phy.h projects/hps_head/sys/dev/extres/regulator/regulator.c projects/hps_head/sys/dev/extres/regulator/regulator.h projects/hps_head/sys/dev/hyperv/include/hyperv.h projects/hps_head/sys/dev/hyperv/include/hyperv_busdma.h projects/hps_head/sys/dev/hyperv/netvsc/hv_net_vsc.c projects/hps_head/sys/dev/hyperv/netvsc/hv_net_vsc.h projects/hps_head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c projects/hps_head/sys/dev/hyperv/netvsc/hv_rndis_filter.c projects/hps_head/sys/dev/hyperv/netvsc/hv_rndis_filter.h projects/hps_head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c projects/hps_head/sys/dev/hyperv/utilities/hv_heartbeat.c projects/hps_head/sys/dev/hyperv/utilities/hv_kvp.c projects/hps_head/sys/dev/hyperv/utilities/hv_shutdown.c projects/hps_head/sys/dev/hyperv/utilities/hv_timesync.c projects/hps_head/sys/dev/hyperv/utilities/hv_util.c projects/hps_head/sys/dev/hyperv/utilities/hv_util.h projects/hps_head/sys/dev/hyperv/vmbus/hv_channel.c projects/hps_head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c projects/hps_head/sys/dev/hyperv/vmbus/hv_ring_buffer.c projects/hps_head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h projects/hps_head/sys/dev/hyperv/vmbus/hyperv.c projects/hps_head/sys/dev/hyperv/vmbus/hyperv_reg.h projects/hps_head/sys/dev/hyperv/vmbus/hyperv_var.h projects/hps_head/sys/dev/hyperv/vmbus/vmbus.c projects/hps_head/sys/dev/hyperv/vmbus/vmbus_reg.h projects/hps_head/sys/dev/hyperv/vmbus/vmbus_var.h projects/hps_head/sys/dev/iicbus/twsi/a10_twsi.c projects/hps_head/sys/dev/ioat/ioat.c projects/hps_head/sys/dev/ioat/ioat.h projects/hps_head/sys/dev/ioat/ioat_hw.h projects/hps_head/sys/dev/ioat/ioat_internal.h projects/hps_head/sys/dev/mpr/mpr.c projects/hps_head/sys/dev/mpr/mpr_sas.c projects/hps_head/sys/dev/mpr/mprvar.h projects/hps_head/sys/dev/mps/mps.c projects/hps_head/sys/dev/mps/mps_sas.c projects/hps_head/sys/dev/mps/mpsvar.h projects/hps_head/sys/dev/ntb/if_ntb/if_ntb.c projects/hps_head/sys/dev/ntb/ntb_hw/ntb_hw.c projects/hps_head/sys/dev/ntb/ntb_hw/ntb_regs.h projects/hps_head/sys/dev/ofw/ofwpci.c projects/hps_head/sys/dev/uart/uart_dev_snps.c projects/hps_head/sys/dev/usb/controller/generic_ohci.c projects/hps_head/sys/i386/i386/exception.s projects/hps_head/sys/i386/include/intr_machdep.h projects/hps_head/sys/i386/linux/linux.h projects/hps_head/sys/i386/linux/linux_machdep.c projects/hps_head/sys/i386/linux/linux_proto.h projects/hps_head/sys/i386/linux/linux_syscall.h projects/hps_head/sys/i386/linux/linux_syscalls.c projects/hps_head/sys/i386/linux/linux_sysent.c projects/hps_head/sys/i386/linux/linux_systrace_args.c projects/hps_head/sys/i386/linux/syscalls.master projects/hps_head/sys/kern/init_main.c projects/hps_head/sys/kern/init_sysent.c projects/hps_head/sys/kern/kern_descrip.c projects/hps_head/sys/kern/subr_trap.c projects/hps_head/sys/kern/sys_generic.c projects/hps_head/sys/kern/sys_procdesc.c projects/hps_head/sys/kern/syscalls.master projects/hps_head/sys/kern/vfs_subr.c projects/hps_head/sys/kern/vfs_syscalls.c projects/hps_head/sys/mips/mips/db_trace.c projects/hps_head/sys/modules/hyperv/netvsc/Makefile projects/hps_head/sys/modules/hyperv/storvsc/Makefile projects/hps_head/sys/modules/hyperv/utilities/Makefile projects/hps_head/sys/modules/hyperv/vmbus/Makefile projects/hps_head/sys/modules/linux/Makefile projects/hps_head/sys/modules/linux_common/Makefile projects/hps_head/sys/modules/ntb/Makefile projects/hps_head/sys/modules/ntb/ntb_hw/Makefile projects/hps_head/sys/net/iflib.c projects/hps_head/sys/net/mppcc.c projects/hps_head/sys/net/mppcd.c projects/hps_head/sys/net/netisr.c projects/hps_head/sys/netpfil/ipfw/dn_sched_fq_pie.c projects/hps_head/sys/netpfil/pf/pf_ioctl.c projects/hps_head/sys/rpc/clnt_dg.c projects/hps_head/sys/rpc/clnt_vc.c projects/hps_head/sys/rpc/svc.c projects/hps_head/sys/rpc/svc_dg.c projects/hps_head/sys/security/audit/audit_bsm.c projects/hps_head/sys/sys/param.h projects/hps_head/sys/sys/sysproto.h projects/hps_head/sys/vm/vm_mmap.c projects/hps_head/sys/vm/vm_object.c projects/hps_head/sys/x86/x86/msi.c projects/hps_head/sys/x86/xen/hvm.c projects/hps_head/tests/sys/netinet/Makefile projects/hps_head/tools/tools/locale/Makefile projects/hps_head/tools/tools/sysbuild/sysbuild.sh projects/hps_head/usr.bin/mail/cmd3.c projects/hps_head/usr.bin/mail/collect.c projects/hps_head/usr.bin/mail/vars.c projects/hps_head/usr.bin/mkcsmapper/mkcsmapper.1 projects/hps_head/usr.bin/mkcsmapper/yacc.y projects/hps_head/usr.bin/mkimg/vmdk.c projects/hps_head/usr.bin/pathchk/pathchk.c projects/hps_head/usr.bin/tr/str.c projects/hps_head/usr.bin/tr/tr.1 projects/hps_head/usr.bin/tr/tr.c projects/hps_head/usr.bin/ul/ul.c projects/hps_head/usr.sbin/bhyve/Makefile projects/hps_head/usr.sbin/bhyve/bhyve.8 projects/hps_head/usr.sbin/bhyve/pci_ahci.c projects/hps_head/usr.sbin/bhyve/pci_emul.h projects/hps_head/usr.sbin/bhyve/ps2kbd.c (contents, props changed) projects/hps_head/usr.sbin/ctld/ctld.c projects/hps_head/usr.sbin/etcupdate/etcupdate.sh projects/hps_head/usr.sbin/freebsd-update/freebsd-update.sh projects/hps_head/usr.sbin/mergemaster/mergemaster.sh projects/hps_head/usr.sbin/ypldap/parse.y Directory Properties: projects/hps_head/ (props changed) projects/hps_head/cddl/ (props changed) projects/hps_head/contrib/llvm/ (props changed) projects/hps_head/contrib/llvm/projects/libunwind/ (props changed) projects/hps_head/contrib/one-true-awk/ (props changed) projects/hps_head/gnu/lib/ (props changed) projects/hps_head/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/hps_head/Makefile.inc1 ============================================================================== --- projects/hps_head/Makefile.inc1 Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/Makefile.inc1 Wed Jul 13 12:40:43 2016 (r302769) @@ -555,7 +555,7 @@ XCXXFLAGS+= -isystem ${WORLDTMP}/usr/inc .endif .else TARGET_ABI?= unknown -TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd11.0 +TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd12.0 XCFLAGS+= -target ${TARGET_TRIPLE} .endif XCFLAGS+= --sysroot=${WORLDTMP} Modified: projects/hps_head/ObsoleteFiles.inc ============================================================================== --- projects/hps_head/ObsoleteFiles.inc Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/ObsoleteFiles.inc Wed Jul 13 12:40:43 2016 (r302769) @@ -203,7 +203,7 @@ OLD_FILES+=usr/share/man/man9/rman_await # 20160517: ReiserFS removed OLD_FILES+=usr/share/man/man5/reiserfs.5.gz # 20160430: kvm_getfiles(3) removed from kvm(3) -OLD_LIBS+=usr/lib/libkvm.so.6 +OLD_LIBS+=lib/libkvm.so.6 OLD_FILES+=usr/share/man/man3/kvm_getfiles.3.gz # 20160423: remove mroute6d OLD_FILES+=etc/rc.d/mroute6d @@ -8014,7 +8014,7 @@ OLD_FILES+=usr/share/man/man5/usbd.conf. .if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64" OLD_FILES+=usr/share/man/man8/boot_i386.8.gz .endif -.if ${TARGET_ARCH} != "aarch64" && ${TARGET_CPUARCH} != "arm" && \ +.if ${TARGET_ARCH} != "aarch64" && ${TARGET} != "arm" && \ ${TARGET_ARCH} != "powerpc" && ${TARGET_ARCH} != "powerpc64" && \ ${TARGET_ARCH} != "sparc64" OLD_FILES+=usr/share/man/man8/ofwdump.8.gz Modified: projects/hps_head/bin/dd/args.c ============================================================================== --- projects/hps_head/bin/dd/args.c Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/bin/dd/args.c Wed Jul 13 12:40:43 2016 (r302769) @@ -167,14 +167,6 @@ jcl(char **argv) errx(1, "cbs meaningless if not doing record operations"); } else cfunc = def; - - /* - * Bail out if the calculation of a file offset would overflow. - */ - if (in.offset > OFF_MAX / (ssize_t)in.dbsz || - out.offset > OFF_MAX / (ssize_t)out.dbsz) - errx(1, "seek offsets cannot be larger than %jd", - (intmax_t)OFF_MAX); } static int Modified: projects/hps_head/bin/dd/position.c ============================================================================== --- projects/hps_head/bin/dd/position.c Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/bin/dd/position.c Wed Jul 13 12:40:43 2016 (r302769) @@ -45,12 +45,41 @@ __FBSDID("$FreeBSD$"); #include <err.h> #include <errno.h> #include <inttypes.h> +#include <limits.h> #include <signal.h> #include <unistd.h> #include "dd.h" #include "extern.h" +static off_t +seek_offset(IO *io) +{ + off_t n; + size_t sz; + + n = io->offset; + sz = io->dbsz; + + _Static_assert(sizeof(io->offset) == sizeof(int64_t), "64-bit off_t"); + + /* + * If the lseek offset will be negative, verify that this is a special + * device file. Some such files (e.g. /dev/kmem) permit "negative" + * offsets. + * + * Bail out if the calculation of a file offset would overflow. + */ + if ((io->flags & ISCHR) == 0 && n > OFF_MAX / (ssize_t)sz) + errx(1, "seek offsets cannot be larger than %jd", + (intmax_t)OFF_MAX); + else if ((io->flags & ISCHR) != 0 && (uint64_t)n > UINT64_MAX / sz) + errx(1, "seek offsets cannot be larger than %ju", + (uintmax_t)UINT64_MAX); + + return ((off_t)( (uint64_t)n * sz )); +} + /* * Position input/output data streams before starting the copy. Device type * dependent. Seekable devices use lseek, and the rest position by reading. @@ -68,7 +97,7 @@ pos_in(void) /* If known to be seekable, try to seek on it. */ if (in.flags & ISSEEK) { errno = 0; - if (lseek(in.fd, in.offset * in.dbsz, SEEK_CUR) == -1 && + if (lseek(in.fd, seek_offset(&in), SEEK_CUR) == -1 && errno != 0) err(1, "%s", in.name); return; @@ -136,7 +165,7 @@ pos_out(void) */ if (out.flags & (ISSEEK | ISPIPE)) { errno = 0; - if (lseek(out.fd, out.offset * out.dbsz, SEEK_CUR) == -1 && + if (lseek(out.fd, seek_offset(&out), SEEK_CUR) == -1 && errno != 0) err(1, "%s", out.name); return; Modified: projects/hps_head/bin/sh/expand.c ============================================================================== --- projects/hps_head/bin/sh/expand.c Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/bin/sh/expand.c Wed Jul 13 12:40:43 2016 (r302769) @@ -107,7 +107,6 @@ static void expmeta(char *, char *, stru static int expsortcmp(const void *, const void *); static int patmatch(const char *, const char *); static void cvtnum(int, char *); -static int collate_range_cmp(wchar_t, wchar_t); void emptyarglist(struct arglist *list) @@ -138,16 +137,6 @@ appendarglist(struct arglist *list, char list->args[list->count++] = str; } -static int -collate_range_cmp(wchar_t c1, wchar_t c2) -{ - static wchar_t s1[2], s2[2]; - - s1[0] = c1; - s2[0] = c2; - return (wcscoll(s1, s2)); -} - static char * stputs_quotes(const char *data, const char *syntax, char *p) { @@ -1359,9 +1348,7 @@ patmatch(const char *pattern, const char return 0; } else wc2 = (unsigned char)*p++; - if ( collate_range_cmp(chr, wc) >= 0 - && collate_range_cmp(chr, wc2) <= 0 - ) + if (wc <= chr && chr <= wc2) found = 1; } else { if (chr == wc) Modified: projects/hps_head/bin/sh/tests/builtins/case7.0 ============================================================================== --- projects/hps_head/bin/sh/tests/builtins/case7.0 Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/bin/sh/tests/builtins/case7.0 Wed Jul 13 12:40:43 2016 (r302769) @@ -14,11 +14,6 @@ c1=e c2=$(printf '\366') case $c1$c2 in -[a-z][a-z]) ;; -*) echo wrong at $LINENO ;; -esac - -case $c1$c2 in -[a-f][n-p]) ;; +[a-z][!a-z]) ;; *) echo wrong at $LINENO ;; esac Modified: projects/hps_head/cddl/lib/libdtrace/tcp.d ============================================================================== --- projects/hps_head/cddl/lib/libdtrace/tcp.d Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/cddl/lib/libdtrace/tcp.d Wed Jul 13 12:40:43 2016 (r302769) @@ -126,6 +126,7 @@ typedef struct tcpsinfo { int tcps_retransmit; /* retransmit send event, boolean */ int tcps_srtt; /* smoothed RTT in units of (TCP_RTT_SCALE*hz) */ int tcps_debug; /* socket has SO_DEBUG set */ + int tcps_cookie; /* expose the socket's SO_USER_COOKIE */ int32_t tcps_dupacks; /* consecutive dup acks received */ uint32_t tcps_rtttime; /* RTT measurement start time */ uint32_t tcps_rtseq; /* sequence # being timed */ @@ -224,6 +225,8 @@ translator tcpsinfo_t < struct tcpcb *p tcps_srtt = p == NULL ? -1 : p->t_srtt; /* smoothed RTT in units of (TCP_RTT_SCALE*hz) */ tcps_debug = p == NULL ? 0 : p->t_inpcb->inp_socket->so_options & 1; + tcps_cookie = p == NULL ? -1 : + p->t_inpcb->inp_socket->so_user_cookie; tcps_dupacks = p == NULL ? -1 : p->t_dupacks; tcps_rtttime = p == NULL ? -1 : p->t_rtttime; tcps_rtseq = p == NULL ? -1 : p->t_rtseq; Modified: projects/hps_head/contrib/llvm/projects/libunwind/include/__libunwind_config.h ============================================================================== --- projects/hps_head/contrib/llvm/projects/libunwind/include/__libunwind_config.h Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/contrib/llvm/projects/libunwind/include/__libunwind_config.h Wed Jul 13 12:40:43 2016 (r302769) @@ -17,4 +17,55 @@ #define _LIBUNWIND_ARM_EHABI 0 #endif +#if defined(_LIBUNWIND_IS_NATIVE_ONLY) +# if defined(__i386__) +# define _LIBUNWIND_TARGET_I386 1 +# define _LIBUNWIND_CONTEXT_SIZE 8 +# define _LIBUNWIND_CURSOR_SIZE 19 +# define _LIBUNWIND_MAX_REGISTER 9 +# elif defined(__x86_64__) +# define _LIBUNWIND_TARGET_X86_64 1 +# define _LIBUNWIND_CONTEXT_SIZE 21 +# define _LIBUNWIND_CURSOR_SIZE 33 +# define _LIBUNWIND_MAX_REGISTER 17 +# elif defined(__ppc__) +# define _LIBUNWIND_TARGET_PPC 1 +# define _LIBUNWIND_CONTEXT_SIZE 117 +# define _LIBUNWIND_CURSOR_SIZE 128 +# define _LIBUNWIND_MAX_REGISTER 113 +# elif defined(__aarch64__) +# define _LIBUNWIND_TARGET_AARCH64 1 +# define _LIBUNWIND_CONTEXT_SIZE 66 +# define _LIBUNWIND_CURSOR_SIZE 78 +# define _LIBUNWIND_MAX_REGISTER 96 +# elif defined(__arm__) +# define _LIBUNWIND_TARGET_ARM 1 +# define _LIBUNWIND_CONTEXT_SIZE 60 +# define _LIBUNWIND_CURSOR_SIZE 67 +# define _LIBUNWIND_MAX_REGISTER 96 +# elif defined(__or1k__) +# define _LIBUNWIND_TARGET_OR1K 1 +# define _LIBUNWIND_CONTEXT_SIZE 16 +# define _LIBUNWIND_CURSOR_SIZE 28 +# define _LIBUNWIND_MAX_REGISTER 32 +# elif defined(__riscv__) +# define _LIBUNWIND_TARGET_RISCV 1 +# define _LIBUNWIND_CONTEXT_SIZE 128 /* XXX */ +# define _LIBUNWIND_CURSOR_SIZE 140 /* XXX */ +# define _LIBUNWIND_MAX_REGISTER 96 +# else +# error "Unsupported architecture." +# endif +#else // !_LIBUNWIND_IS_NATIVE_ONLY +# define _LIBUNWIND_TARGET_I386 1 +# define _LIBUNWIND_TARGET_X86_64 1 +# define _LIBUNWIND_TARGET_PPC 1 +# define _LIBUNWIND_TARGET_AARCH64 1 +# define _LIBUNWIND_TARGET_ARM 1 +# define _LIBUNWIND_TARGET_OR1K 1 +# define _LIBUNWIND_CONTEXT_SIZE 128 +# define _LIBUNWIND_CURSOR_SIZE 140 +# define _LIBUNWIND_MAX_REGISTER 120 +#endif // _LIBUNWIND_IS_NATIVE_ONLY + #endif // ____LIBUNWIND_CONFIG_H__ Modified: projects/hps_head/contrib/llvm/projects/libunwind/include/libunwind.h ============================================================================== --- projects/hps_head/contrib/llvm/projects/libunwind/include/libunwind.h Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/contrib/llvm/projects/libunwind/include/libunwind.h Wed Jul 13 12:40:43 2016 (r302769) @@ -46,12 +46,12 @@ enum { }; struct unw_context_t { - uint64_t data[128]; + uint64_t data[_LIBUNWIND_CONTEXT_SIZE]; }; typedef struct unw_context_t unw_context_t; struct unw_cursor_t { - uint64_t data[140]; + uint64_t data[_LIBUNWIND_CURSOR_SIZE]; }; typedef struct unw_cursor_t unw_cursor_t; @@ -295,77 +295,6 @@ enum { UNW_PPC_SPEFSCR = 112 }; -// 64-bit RISC-V registers -enum { - UNW_RISCV_X0 = 0, - UNW_RISCV_X1 = 1, - UNW_RISCV_RA = 1, - UNW_RISCV_X2 = 2, - UNW_RISCV_SP = 2, - UNW_RISCV_X3 = 3, - UNW_RISCV_X4 = 4, - UNW_RISCV_X5 = 5, - UNW_RISCV_X6 = 6, - UNW_RISCV_X7 = 7, - UNW_RISCV_X8 = 8, - UNW_RISCV_X9 = 9, - UNW_RISCV_X10 = 10, - UNW_RISCV_X11 = 11, - UNW_RISCV_X12 = 12, - UNW_RISCV_X13 = 13, - UNW_RISCV_X14 = 14, - UNW_RISCV_X15 = 15, - UNW_RISCV_X16 = 16, - UNW_RISCV_X17 = 17, - UNW_RISCV_X18 = 18, - UNW_RISCV_X19 = 19, - UNW_RISCV_X20 = 20, - UNW_RISCV_X21 = 21, - UNW_RISCV_X22 = 22, - UNW_RISCV_X23 = 23, - UNW_RISCV_X24 = 24, - UNW_RISCV_X25 = 25, - UNW_RISCV_X26 = 26, - UNW_RISCV_X27 = 27, - UNW_RISCV_X28 = 28, - UNW_RISCV_X29 = 29, - UNW_RISCV_X30 = 30, - UNW_RISCV_X31 = 31, - // reserved block - UNW_RISCV_D0 = 64, - UNW_RISCV_D1 = 65, - UNW_RISCV_D2 = 66, - UNW_RISCV_D3 = 67, - UNW_RISCV_D4 = 68, - UNW_RISCV_D5 = 69, - UNW_RISCV_D6 = 70, - UNW_RISCV_D7 = 71, - UNW_RISCV_D8 = 72, - UNW_RISCV_D9 = 73, - UNW_RISCV_D10 = 74, - UNW_RISCV_D11 = 75, - UNW_RISCV_D12 = 76, - UNW_RISCV_D13 = 77, - UNW_RISCV_D14 = 78, - UNW_RISCV_D15 = 79, - UNW_RISCV_D16 = 80, - UNW_RISCV_D17 = 81, - UNW_RISCV_D18 = 82, - UNW_RISCV_D19 = 83, - UNW_RISCV_D20 = 84, - UNW_RISCV_D21 = 85, - UNW_RISCV_D22 = 86, - UNW_RISCV_D23 = 87, - UNW_RISCV_D24 = 88, - UNW_RISCV_D25 = 89, - UNW_RISCV_D26 = 90, - UNW_RISCV_D27 = 91, - UNW_RISCV_D28 = 92, - UNW_RISCV_D29 = 93, - UNW_RISCV_D30 = 94, - UNW_RISCV_D31 = 95, -}; - // 64-bit ARM64 registers enum { UNW_ARM64_X0 = 0, @@ -604,4 +533,75 @@ enum { UNW_OR1K_R31 = 31, }; +// 64-bit RISC-V registers +enum { + UNW_RISCV_X0 = 0, + UNW_RISCV_X1 = 1, + UNW_RISCV_RA = 1, + UNW_RISCV_X2 = 2, + UNW_RISCV_SP = 2, + UNW_RISCV_X3 = 3, + UNW_RISCV_X4 = 4, + UNW_RISCV_X5 = 5, + UNW_RISCV_X6 = 6, + UNW_RISCV_X7 = 7, + UNW_RISCV_X8 = 8, + UNW_RISCV_X9 = 9, + UNW_RISCV_X10 = 10, + UNW_RISCV_X11 = 11, + UNW_RISCV_X12 = 12, + UNW_RISCV_X13 = 13, + UNW_RISCV_X14 = 14, + UNW_RISCV_X15 = 15, + UNW_RISCV_X16 = 16, + UNW_RISCV_X17 = 17, + UNW_RISCV_X18 = 18, + UNW_RISCV_X19 = 19, + UNW_RISCV_X20 = 20, + UNW_RISCV_X21 = 21, + UNW_RISCV_X22 = 22, + UNW_RISCV_X23 = 23, + UNW_RISCV_X24 = 24, + UNW_RISCV_X25 = 25, + UNW_RISCV_X26 = 26, + UNW_RISCV_X27 = 27, + UNW_RISCV_X28 = 28, + UNW_RISCV_X29 = 29, + UNW_RISCV_X30 = 30, + UNW_RISCV_X31 = 31, + // reserved block + UNW_RISCV_D0 = 64, + UNW_RISCV_D1 = 65, + UNW_RISCV_D2 = 66, + UNW_RISCV_D3 = 67, + UNW_RISCV_D4 = 68, + UNW_RISCV_D5 = 69, + UNW_RISCV_D6 = 70, + UNW_RISCV_D7 = 71, + UNW_RISCV_D8 = 72, + UNW_RISCV_D9 = 73, + UNW_RISCV_D10 = 74, + UNW_RISCV_D11 = 75, + UNW_RISCV_D12 = 76, + UNW_RISCV_D13 = 77, + UNW_RISCV_D14 = 78, + UNW_RISCV_D15 = 79, + UNW_RISCV_D16 = 80, + UNW_RISCV_D17 = 81, + UNW_RISCV_D18 = 82, + UNW_RISCV_D19 = 83, + UNW_RISCV_D20 = 84, + UNW_RISCV_D21 = 85, + UNW_RISCV_D22 = 86, + UNW_RISCV_D23 = 87, + UNW_RISCV_D24 = 88, + UNW_RISCV_D25 = 89, + UNW_RISCV_D26 = 90, + UNW_RISCV_D27 = 91, + UNW_RISCV_D28 = 92, + UNW_RISCV_D29 = 93, + UNW_RISCV_D30 = 94, + UNW_RISCV_D31 = 95, +}; + #endif Modified: projects/hps_head/contrib/llvm/projects/libunwind/src/AddressSpace.hpp ============================================================================== --- projects/hps_head/contrib/llvm/projects/libunwind/src/AddressSpace.hpp Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/contrib/llvm/projects/libunwind/src/AddressSpace.hpp Wed Jul 13 12:40:43 2016 (r302769) @@ -35,7 +35,7 @@ namespace libunwind { #include "Registers.hpp" #if _LIBUNWIND_ARM_EHABI -#if defined(__FreeBSD__) +#if defined(__FreeBSD__) || defined(__NetBSD__) #include <sys/link_elf.h> typedef void *_Unwind_Ptr; @@ -62,7 +62,8 @@ extern EHTEntry __exidx_end; #endif // !defined(_LIBUNWIND_IS_BAREMETAL) #endif // _LIBUNWIND_ARM_EHABI -#if defined(__CloudABI__) || defined(__FreeBSD__) || defined(__linux__) +#if defined(__CloudABI__) || defined(__FreeBSD__) || defined(__linux__) || \ + defined(__NetBSD__) #if _LIBUNWIND_SUPPORT_DWARF_UNWIND && _LIBUNWIND_SUPPORT_DWARF_INDEX #include <link.h> // Macro for machine-independent access to the ELF program headers. This Modified: projects/hps_head/contrib/llvm/projects/libunwind/src/CompactUnwinder.hpp ============================================================================== --- projects/hps_head/contrib/llvm/projects/libunwind/src/CompactUnwinder.hpp Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/contrib/llvm/projects/libunwind/src/CompactUnwinder.hpp Wed Jul 13 12:40:43 2016 (r302769) @@ -27,6 +27,7 @@ namespace libunwind { +#if defined(_LIBUNWIND_TARGET_I386) /// CompactUnwinder_x86 uses a compact unwind info to virtually "step" (aka /// unwind) by modifying a Registers_x86 register set template <typename A> @@ -255,8 +256,10 @@ void CompactUnwinder_x86<A>::framelessUn // old esp is before return address registers.setSP((uint32_t)returnAddressLocation + 4); } +#endif // _LIBUNWIND_TARGET_I386 +#if defined(_LIBUNWIND_TARGET_X86_64) /// CompactUnwinder_x86_64 uses a compact unwind info to virtually "step" (aka /// unwind) by modifying a Registers_x86_64 register set template <typename A> @@ -484,9 +487,11 @@ void CompactUnwinder_x86_64<A>::frameles // old esp is before return address registers.setSP(returnAddressLocation + 8); } +#endif // _LIBUNWIND_TARGET_X86_64 +#if defined(_LIBUNWIND_TARGET_AARCH64) /// CompactUnwinder_arm64 uses a compact unwind info to virtually "step" (aka /// unwind) by modifying a Registers_arm64 register set template <typename A> @@ -686,6 +691,7 @@ int CompactUnwinder_arm64<A>::stepWithCo return UNW_STEP_SUCCESS; } +#endif // _LIBUNWIND_TARGET_AARCH64 } // namespace libunwind Modified: projects/hps_head/contrib/llvm/projects/libunwind/src/DwarfParser.hpp ============================================================================== --- projects/hps_head/contrib/llvm/projects/libunwind/src/DwarfParser.hpp Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/contrib/llvm/projects/libunwind/src/DwarfParser.hpp Wed Jul 13 12:40:43 2016 (r302769) @@ -62,7 +62,7 @@ public: }; enum { - kMaxRegisterNumber = 120 + kMaxRegisterNumber = _LIBUNWIND_MAX_REGISTER }; enum RegisterSavedWhere { kRegisterUnused, Modified: projects/hps_head/contrib/llvm/projects/libunwind/src/Registers.hpp ============================================================================== --- projects/hps_head/contrib/llvm/projects/libunwind/src/Registers.hpp Wed Jul 13 12:26:36 2016 (r302768) +++ projects/hps_head/contrib/llvm/projects/libunwind/src/Registers.hpp Wed Jul 13 12:40:43 2016 (r302769) @@ -25,6 +25,7 @@ namespace libunwind { struct v128 { uint32_t vec[4]; }; +#if defined(_LIBUNWIND_TARGET_I386) /// Registers_x86 holds the register state of a thread in a 32-bit intel /// process. class _LIBUNWIND_HIDDEN Registers_x86 { @@ -86,8 +87,8 @@ private: }; inline Registers_x86::Registers_x86(const void *registers) { - static_assert(sizeof(Registers_x86) < sizeof(unw_context_t), - "x86 registers do not fit into unw_context_t"); + static_assert((check_fit<Registers_x86, unw_context_t>::does_fit), + "x86 registers do not fit into unw_context_t"); memcpy(&_registers, registers, sizeof(_registers)); } @@ -211,8 +212,10 @@ inline v128 Registers_x86::getVectorRegi inline void Registers_x86::setVectorRegister(int, v128) { _LIBUNWIND_ABORT("no x86 vector registers"); } +#endif // _LIBUNWIND_TARGET_I386 +#if defined(_LIBUNWIND_TARGET_X86_64) /// Registers_x86_64 holds the register state of a thread in a 64-bit intel /// process. class _LIBUNWIND_HIDDEN Registers_x86_64 { @@ -278,8 +281,8 @@ private: }; inline Registers_x86_64::Registers_x86_64(const void *registers) { - static_assert(sizeof(Registers_x86_64) < sizeof(unw_context_t), - "x86_64 registers do not fit into unw_context_t"); + static_assert((check_fit<Registers_x86_64, unw_context_t>::does_fit), + "x86_64 registers do not fit into unw_context_t"); memcpy(&_registers, registers, sizeof(_registers)); } @@ -459,8 +462,10 @@ inline v128 Registers_x86_64::getVectorR inline void Registers_x86_64::setVectorRegister(int, v128) { _LIBUNWIND_ABORT("no x86_64 vector registers"); } +#endif // _LIBUNWIND_TARGET_X86_64 +#if defined(_LIBUNWIND_TARGET_PPC) /// Registers_ppc holds the register state of a thread in a 32-bit PowerPC /// process. class _LIBUNWIND_HIDDEN Registers_ppc { @@ -543,8 +548,8 @@ private: }; inline Registers_ppc::Registers_ppc(const void *registers) { - static_assert(sizeof(Registers_ppc) < sizeof(unw_context_t), - "ppc registers do not fit into unw_context_t"); + static_assert((check_fit<Registers_ppc, unw_context_t>::does_fit), + "ppc registers do not fit into unw_context_t"); memcpy(&_registers, static_cast<const uint8_t *>(registers), sizeof(_registers)); static_assert(sizeof(ppc_thread_state_t) == 160, @@ -1023,266 +1028,10 @@ inline const char *Registers_ppc::getReg } } - -/// Registers_riscv holds the register state of a thread in a 64-bit RISC-V -/// process. -class _LIBUNWIND_HIDDEN Registers_riscv { -public: - Registers_riscv(); - Registers_riscv(const void *registers); - - bool validRegister(int num) const; - uint64_t getRegister(int num) const; - void setRegister(int num, uint64_t value); - bool validFloatRegister(int num) const; - double getFloatRegister(int num) const; - void setFloatRegister(int num, double value); - bool validVectorRegister(int num) const; - v128 getVectorRegister(int num) const; - void setVectorRegister(int num, v128 value); - const char *getRegisterName(int num); - void jumpto(); - static int lastDwarfRegNum() { return 95; } - - uint64_t getSP() const { return _registers.__x[2]; } - void setSP(uint64_t value) { _registers.__x[2] = value; } - uint64_t getIP() const { return _registers.__x[1]; } - void setIP(uint64_t value) { _registers.__x[1] = value; } - -private: - struct GPRs { - uint64_t __x[32]; // x0-x31 - }; - - GPRs _registers; - double _vectorHalfRegisters[32]; - // Currently only the lower double in 128-bit vectore registers - // is perserved during unwinding. We could define new register - // numbers (> 96) which mean whole vector registers, then this - // struct would need to change to contain whole vector registers. -}; - -inline Registers_riscv::Registers_riscv(const void *registers) { - static_assert(sizeof(Registers_riscv) < sizeof(unw_context_t), - "riscv registers do not fit into unw_context_t"); - memcpy(&_registers, registers, sizeof(_registers)); - static_assert(sizeof(GPRs) == 0x100, - "expected VFP registers to be at offset 256"); - memcpy(_vectorHalfRegisters, - static_cast<const uint8_t *>(registers) + sizeof(GPRs), - sizeof(_vectorHalfRegisters)); -} - -inline Registers_riscv::Registers_riscv() { - memset(&_registers, 0, sizeof(_registers)); - memset(&_vectorHalfRegisters, 0, sizeof(_vectorHalfRegisters)); -} - -inline bool Registers_riscv::validRegister(int regNum) const { - if (regNum == UNW_REG_IP) - return true; - if (regNum == UNW_REG_SP) - return true; - if (regNum < 0) - return false; - if (regNum > 95) - return false; - if ((regNum > 31) && (regNum < 64)) - return false; - return true; -} - -inline uint64_t Registers_riscv::getRegister(int regNum) const { - if (regNum == UNW_REG_IP) - return _registers.__x[1]; - if (regNum == UNW_REG_SP) - return _registers.__x[2]; - if ((regNum >= 0) && (regNum < 32)) - return _registers.__x[regNum]; - _LIBUNWIND_ABORT("unsupported riscv register"); -} - -inline void Registers_riscv::setRegister(int regNum, uint64_t value) { - if (regNum == UNW_REG_IP) - _registers.__x[1] = value; - else if (regNum == UNW_REG_SP) - _registers.__x[2] = value; - else if ((regNum >= 0) && (regNum < 32)) - _registers.__x[regNum] = value; - else - _LIBUNWIND_ABORT("unsupported riscv register"); -} - -inline const char *Registers_riscv::getRegisterName(int regNum) { - switch (regNum) { - case UNW_REG_IP: - return "ra"; - case UNW_REG_SP: - return "sp"; - case UNW_RISCV_X0: - return "x0"; - case UNW_RISCV_X1: - return "ra"; - case UNW_RISCV_X2: - return "sp"; - case UNW_RISCV_X3: - return "x3"; - case UNW_RISCV_X4: - return "x4"; - case UNW_RISCV_X5: - return "x5"; - case UNW_RISCV_X6: - return "x6"; - case UNW_RISCV_X7: - return "x7"; - case UNW_RISCV_X8: - return "x8"; - case UNW_RISCV_X9: - return "x9"; - case UNW_RISCV_X10: - return "x10"; - case UNW_RISCV_X11: - return "x11"; - case UNW_RISCV_X12: - return "x12"; - case UNW_RISCV_X13: - return "x13"; - case UNW_RISCV_X14: - return "x14"; - case UNW_RISCV_X15: - return "x15"; - case UNW_RISCV_X16: - return "x16"; - case UNW_RISCV_X17: - return "x17"; - case UNW_RISCV_X18: - return "x18"; - case UNW_RISCV_X19: - return "x19"; - case UNW_RISCV_X20: - return "x20"; - case UNW_RISCV_X21: - return "x21"; - case UNW_RISCV_X22: - return "x22"; - case UNW_RISCV_X23: - return "x23"; - case UNW_RISCV_X24: - return "x24"; - case UNW_RISCV_X25: - return "x25"; - case UNW_RISCV_X26: - return "x26"; - case UNW_RISCV_X27: - return "x27"; - case UNW_RISCV_X28: - return "x28"; - case UNW_RISCV_X29: - return "x29"; - case UNW_RISCV_X30: - return "x30"; - case UNW_RISCV_X31: - return "x31"; - case UNW_RISCV_D0: - return "d0"; - case UNW_RISCV_D1: - return "d1"; - case UNW_RISCV_D2: - return "d2"; - case UNW_RISCV_D3: - return "d3"; - case UNW_RISCV_D4: - return "d4"; - case UNW_RISCV_D5: - return "d5"; - case UNW_RISCV_D6: - return "d6"; - case UNW_RISCV_D7: - return "d7"; - case UNW_RISCV_D8: - return "d8"; - case UNW_RISCV_D9: - return "d9"; - case UNW_RISCV_D10: - return "d10"; - case UNW_RISCV_D11: - return "d11"; - case UNW_RISCV_D12: - return "d12"; - case UNW_RISCV_D13: - return "d13"; - case UNW_RISCV_D14: - return "d14"; - case UNW_RISCV_D15: - return "d15"; - case UNW_RISCV_D16: - return "d16"; - case UNW_RISCV_D17: - return "d17"; - case UNW_RISCV_D18: - return "d18"; - case UNW_RISCV_D19: - return "d19"; - case UNW_RISCV_D20: - return "d20"; - case UNW_RISCV_D21: - return "d21"; - case UNW_RISCV_D22: - return "d22"; - case UNW_RISCV_D23: - return "d23"; - case UNW_RISCV_D24: - return "d24"; - case UNW_RISCV_D25: - return "d25"; - case UNW_RISCV_D26: - return "d26"; - case UNW_RISCV_D27: - return "d27"; - case UNW_RISCV_D28: - return "d28"; - case UNW_RISCV_D29: - return "d29"; - case UNW_RISCV_D30: - return "d30"; - case UNW_RISCV_D31: - return "d31"; - default: - return "unknown register"; - } -} - -inline bool Registers_riscv::validFloatRegister(int regNum) const { - if (regNum < UNW_RISCV_D0) - return false; - if (regNum > UNW_RISCV_D31) - return false; - return true; -} - -inline double Registers_riscv::getFloatRegister(int regNum) const { - assert(validFloatRegister(regNum)); - return _vectorHalfRegisters[regNum - UNW_RISCV_D0]; -} - -inline void Registers_riscv::setFloatRegister(int regNum, double value) { - assert(validFloatRegister(regNum)); - _vectorHalfRegisters[regNum - UNW_RISCV_D0] = value; -} - -inline bool Registers_riscv::validVectorRegister(int) const { - return false; -} - -inline v128 Registers_riscv::getVectorRegister(int) const { - _LIBUNWIND_ABORT("no riscv vector register support yet"); -} - -inline void Registers_riscv::setVectorRegister(int, v128) { - _LIBUNWIND_ABORT("no riscv vector register support yet"); -} +#endif // _LIBUNWIND_TARGET_PPC +#if defined(_LIBUNWIND_TARGET_AARCH64) /// Registers_arm64 holds the register state of a thread in a 64-bit arm /// process. class _LIBUNWIND_HIDDEN Registers_arm64 { @@ -1329,8 +1078,8 @@ private: }; inline Registers_arm64::Registers_arm64(const void *registers) { - static_assert(sizeof(Registers_arm64) < sizeof(unw_context_t), - "arm64 registers do not fit into unw_context_t"); + static_assert((check_fit<Registers_arm64, unw_context_t>::does_fit), + "arm64 registers do not fit into unw_context_t"); memcpy(&_registers, registers, sizeof(_registers)); static_assert(sizeof(GPRs) == 0x110, "expected VFP registers to be at offset 272"); @@ -1547,7 +1296,9 @@ inline v128 Registers_arm64::getVectorRe inline void Registers_arm64::setVectorRegister(int, v128) { _LIBUNWIND_ABORT("no arm64 vector register support yet"); } +#endif // _LIBUNWIND_TARGET_AARCH64 +#if defined(_LIBUNWIND_TARGET_ARM) /// Registers_arm holds the register state of a thread in a 32-bit arm /// process. /// @@ -1653,8 +1404,8 @@ inline Registers_arm::Registers_arm(cons _saved_vfp_d16_d31(false), _saved_iwmmx(false), _saved_iwmmx_control(false) { - static_assert(sizeof(Registers_arm) < sizeof(unw_context_t), - "arm registers do not fit into unw_context_t"); + static_assert((check_fit<Registers_arm, unw_context_t>::does_fit), + "arm registers do not fit into unw_context_t"); // See unw_getcontext() note about data. memcpy(&_registers, registers, sizeof(_registers)); memset(&_vfp_d0_d15_pad, 0, sizeof(_vfp_d0_d15_pad)); @@ -1969,6 +1720,10 @@ inline v128 Registers_arm::getVectorRegi inline void Registers_arm::setVectorRegister(int, v128) { _LIBUNWIND_ABORT("ARM vector support not implemented"); } +#endif // _LIBUNWIND_TARGET_ARM + + +#if defined(_LIBUNWIND_TARGET_OR1K) /// Registers_or1k holds the register state of a thread in an OpenRISC1000 /// process. class _LIBUNWIND_HIDDEN Registers_or1k { @@ -2003,8 +1758,8 @@ private: }; inline Registers_or1k::Registers_or1k(const void *registers) { - static_assert(sizeof(Registers_or1k) < sizeof(unw_context_t), - "or1k registers do not fit into unw_context_t"); + static_assert((check_fit<Registers_or1k, unw_context_t>::does_fit), + "or1k registers do not fit into unw_context_t"); memcpy(&_registers, static_cast<const uint8_t *>(registers), sizeof(_registers)); } @@ -2151,6 +1906,268 @@ inline const char *Registers_or1k::getRe } } +#endif // _LIBUNWIND_TARGET_OR1K + + +#if defined(_LIBUNWIND_TARGET_RISCV) +/// Registers_riscv holds the register state of a thread in a 64-bit RISC-V +/// process. +class _LIBUNWIND_HIDDEN Registers_riscv { +public: + Registers_riscv(); + Registers_riscv(const void *registers); + + bool validRegister(int num) const; + uint64_t getRegister(int num) const; + void setRegister(int num, uint64_t value); + bool validFloatRegister(int num) const; + double getFloatRegister(int num) const; + void setFloatRegister(int num, double value); + bool validVectorRegister(int num) const; + v128 getVectorRegister(int num) const; + void setVectorRegister(int num, v128 value); + const char *getRegisterName(int num); + void jumpto(); + static int lastDwarfRegNum() { return 95; } + + uint64_t getSP() const { return _registers.__x[2]; } + void setSP(uint64_t value) { _registers.__x[2] = value; } + uint64_t getIP() const { return _registers.__x[1]; } + void setIP(uint64_t value) { _registers.__x[1] = value; } + +private: + struct GPRs { + uint64_t __x[32]; // x0-x31 + }; + + GPRs _registers; + double _vectorHalfRegisters[32]; + // Currently only the lower double in 128-bit vectore registers + // is perserved during unwinding. We could define new register + // numbers (> 96) which mean whole vector registers, then this + // struct would need to change to contain whole vector registers. +}; + +inline Registers_riscv::Registers_riscv(const void *registers) { + static_assert((check_fit<Registers_riscv, unw_context_t>::does_fit), + "riscv registers do not fit into unw_context_t"); + memcpy(&_registers, registers, sizeof(_registers)); + static_assert(sizeof(GPRs) == 0x100, + "expected VFP registers to be at offset 256"); + memcpy(_vectorHalfRegisters, + static_cast<const uint8_t *>(registers) + sizeof(GPRs), + sizeof(_vectorHalfRegisters)); +} + +inline Registers_riscv::Registers_riscv() { + memset(&_registers, 0, sizeof(_registers)); + memset(&_vectorHalfRegisters, 0, sizeof(_vectorHalfRegisters)); +} + +inline bool Registers_riscv::validRegister(int regNum) const { + if (regNum == UNW_REG_IP) + return true; + if (regNum == UNW_REG_SP) + return true; + if (regNum < 0) + return false; + if (regNum > 95) + return false; + if ((regNum > 31) && (regNum < 64)) + return false; + return true; +} + +inline uint64_t Registers_riscv::getRegister(int regNum) const { + if (regNum == UNW_REG_IP) + return _registers.__x[1]; + if (regNum == UNW_REG_SP) + return _registers.__x[2]; + if ((regNum >= 0) && (regNum < 32)) + return _registers.__x[regNum]; + _LIBUNWIND_ABORT("unsupported riscv register"); +} + +inline void Registers_riscv::setRegister(int regNum, uint64_t value) { + if (regNum == UNW_REG_IP) + _registers.__x[1] = value; + else if (regNum == UNW_REG_SP) + _registers.__x[2] = value; + else if ((regNum >= 0) && (regNum < 32)) + _registers.__x[regNum] = value; + else + _LIBUNWIND_ABORT("unsupported riscv register"); +} + +inline const char *Registers_riscv::getRegisterName(int regNum) { + switch (regNum) { + case UNW_REG_IP: + return "ra"; + case UNW_REG_SP: + return "sp"; + case UNW_RISCV_X0: + return "x0"; + case UNW_RISCV_X1: + return "ra"; + case UNW_RISCV_X2: + return "sp"; + case UNW_RISCV_X3: + return "x3"; + case UNW_RISCV_X4: + return "x4"; + case UNW_RISCV_X5: + return "x5"; + case UNW_RISCV_X6: + return "x6"; + case UNW_RISCV_X7: + return "x7"; + case UNW_RISCV_X8: + return "x8"; + case UNW_RISCV_X9: + return "x9"; + case UNW_RISCV_X10: + return "x10"; + case UNW_RISCV_X11: + return "x11"; + case UNW_RISCV_X12: *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201607131240.u6DCei8m061067>