svn commit: r331371 - in user/jeff/numa: . cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall cddl/contrib/opensolaris/lib/libdtrace/common contrib/blacklist/bin contrib/elftoolchain/nm co...
Jeff Roberson
jeff at FreeBSD.org
Thu Mar 22 19:38:26 UTC 2018
Author: jeff
Date: Thu Mar 22 19:38:21 2018
New Revision: 331371
URL: https://svnweb.freebsd.org/changeset/base/331371
Log:
Merge from head
Added:
user/jeff/numa/contrib/processor-trace/
- copied from r331370, head/contrib/processor-trace/
user/jeff/numa/lib/libc/gen/getentropy.3
- copied unchanged from r331370, head/lib/libc/gen/getentropy.3
user/jeff/numa/lib/libc/gen/getentropy.c
- copied unchanged from r331370, head/lib/libc/gen/getentropy.c
user/jeff/numa/lib/libc/sys/getrandom.2
- copied unchanged from r331370, head/lib/libc/sys/getrandom.2
user/jeff/numa/lib/libc/tests/gen/getentropy_test.c
- copied unchanged from r331370, head/lib/libc/tests/gen/getentropy_test.c
user/jeff/numa/lib/libcasper/services/cap_pwd/cap_pwd.3
- copied unchanged from r331370, head/lib/libcasper/services/cap_pwd/cap_pwd.3
user/jeff/numa/lib/libcasper/services/cap_sysctl/cap_sysctl.3
- copied unchanged from r331370, head/lib/libcasper/services/cap_sysctl/cap_sysctl.3
user/jeff/numa/lib/libipt/
- copied from r331370, head/lib/libipt/
user/jeff/numa/stand/lua/hook.lua
- copied unchanged from r331370, head/stand/lua/hook.lua
user/jeff/numa/sys/compat/linux/linux_errno.c
- copied unchanged from r331370, head/sys/compat/linux/linux_errno.c
user/jeff/numa/sys/compat/linux/linux_errno.inc
- copied unchanged from r331370, head/sys/compat/linux/linux_errno.inc
user/jeff/numa/sys/contrib/libb2/
- copied from r331370, head/sys/contrib/libb2/
user/jeff/numa/sys/crypto/blake2/
- copied from r331370, head/sys/crypto/blake2/
user/jeff/numa/sys/dev/tcp_log/
- copied from r331370, head/sys/dev/tcp_log/
user/jeff/numa/sys/kern/sys_getrandom.c
- copied unchanged from r331370, head/sys/kern/sys_getrandom.c
user/jeff/numa/sys/modules/blake2/
- copied from r331370, head/sys/modules/blake2/
user/jeff/numa/sys/netinet/cc/cc_newreno.h
- copied unchanged from r331370, head/sys/netinet/cc/cc_newreno.h
user/jeff/numa/sys/netinet/tcp_log_buf.c
- copied unchanged from r331370, head/sys/netinet/tcp_log_buf.c
user/jeff/numa/sys/netinet/tcp_log_buf.h
- copied unchanged from r331370, head/sys/netinet/tcp_log_buf.h
user/jeff/numa/tests/sys/kern/sys_getrandom.c
- copied unchanged from r331370, head/tests/sys/kern/sys_getrandom.c
user/jeff/numa/tests/sys/opencrypto/blake2-kat.h
- copied unchanged from r331370, head/tests/sys/opencrypto/blake2-kat.h
user/jeff/numa/tests/sys/opencrypto/blake2_test.c
- copied unchanged from r331370, head/tests/sys/opencrypto/blake2_test.c
Deleted:
user/jeff/numa/sys/crypto/chacha20/chacha20.c
user/jeff/numa/sys/crypto/chacha20/chacha20.h
user/jeff/numa/sys/modules/chacha20/
Modified:
user/jeff/numa/Makefile.inc1
user/jeff/numa/ObsoleteFiles.inc
user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c
user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c
user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_xlator.c
user/jeff/numa/contrib/blacklist/bin/conf.c
user/jeff/numa/contrib/elftoolchain/nm/nm.c
user/jeff/numa/contrib/llvm/include/llvm/MC/MCAssembler.h
user/jeff/numa/contrib/llvm/include/llvm/MC/MCELFStreamer.h
user/jeff/numa/contrib/llvm/include/llvm/MC/MCStreamer.h
user/jeff/numa/contrib/llvm/lib/Analysis/InstructionSimplify.cpp
user/jeff/numa/contrib/llvm/lib/IR/ConstantFold.cpp
user/jeff/numa/contrib/llvm/lib/MC/ELFObjectWriter.cpp
user/jeff/numa/contrib/llvm/lib/MC/MCAsmStreamer.cpp
user/jeff/numa/contrib/llvm/lib/MC/MCELFStreamer.cpp
user/jeff/numa/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp
user/jeff/numa/contrib/llvm/lib/MC/MCStreamer.cpp
user/jeff/numa/contrib/llvm/lib/Object/ModuleSymbolTable.cpp
user/jeff/numa/contrib/llvm/lib/Object/RecordStreamer.cpp
user/jeff/numa/contrib/llvm/lib/Object/RecordStreamer.h
user/jeff/numa/contrib/llvm/projects/libunwind/include/__libunwind_config.h
user/jeff/numa/contrib/llvm/projects/libunwind/include/libunwind.h
user/jeff/numa/contrib/llvm/projects/libunwind/src/AddressSpace.hpp
user/jeff/numa/contrib/llvm/projects/libunwind/src/DwarfInstructions.hpp
user/jeff/numa/contrib/llvm/projects/libunwind/src/Registers.hpp
user/jeff/numa/contrib/llvm/projects/libunwind/src/UnwindCursor.hpp
user/jeff/numa/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S
user/jeff/numa/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S
user/jeff/numa/contrib/llvm/projects/libunwind/src/config.h
user/jeff/numa/contrib/llvm/projects/libunwind/src/libunwind.cpp
user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
user/jeff/numa/contrib/telnet/telnetd/telnetd.c
user/jeff/numa/etc/mtree/BSD.include.dist
user/jeff/numa/etc/mtree/BSD.root.dist
user/jeff/numa/include/Makefile
user/jeff/numa/include/unistd.h
user/jeff/numa/lib/Makefile
user/jeff/numa/lib/libc/gen/Makefile.inc
user/jeff/numa/lib/libc/gen/Symbol.map
user/jeff/numa/lib/libc/gen/arc4random.c
user/jeff/numa/lib/libc/include/libc_private.h
user/jeff/numa/lib/libc/sys/Makefile.inc
user/jeff/numa/lib/libc/sys/Symbol.map
user/jeff/numa/lib/libc/sys/mlock.2
user/jeff/numa/lib/libc/tests/gen/Makefile
user/jeff/numa/lib/libcasper/libcasper/libcasper.3
user/jeff/numa/lib/libcasper/services/cap_dns/cap_dns.3
user/jeff/numa/lib/libcasper/services/cap_grp/cap_grp.3
user/jeff/numa/lib/libcasper/services/cap_grp/cap_grp.c
user/jeff/numa/lib/libcasper/services/cap_grp/cap_grp.h
user/jeff/numa/lib/libcasper/services/cap_pwd/Makefile
user/jeff/numa/lib/libcasper/services/cap_sysctl/Makefile
user/jeff/numa/lib/libjail/jail.c
user/jeff/numa/lib/libmd/sha512.3
user/jeff/numa/lib/libsysdecode/errno.c
user/jeff/numa/lib/libthr/thread/thr_cancel.c
user/jeff/numa/lib/libzstd/Makefile
user/jeff/numa/libexec/tftpd/tests/functional.c
user/jeff/numa/release/arm64/RPI3.conf
user/jeff/numa/release/tools/gce.conf
user/jeff/numa/sbin/ifconfig/ifieee80211.c
user/jeff/numa/sbin/ipfw/ipfw.8
user/jeff/numa/sbin/savecore/savecore.8
user/jeff/numa/share/man/man4/altq.4
user/jeff/numa/share/man/man4/audit.4
user/jeff/numa/share/man/man4/cc_newreno.4
user/jeff/numa/share/man/man4/mod_cc.4
user/jeff/numa/share/man/man7/development.7
user/jeff/numa/share/man/man9/altq.9
user/jeff/numa/share/man/man9/cnv.9
user/jeff/numa/share/man/man9/owll.9
user/jeff/numa/share/man/man9/rwlock.9
user/jeff/numa/share/man/man9/style.9
user/jeff/numa/share/man/man9/zone.9
user/jeff/numa/share/misc/bsd-family-tree
user/jeff/numa/share/misc/committers-ports.dot
user/jeff/numa/share/mk/bsd.libnames.mk
user/jeff/numa/share/mk/src.libnames.mk
user/jeff/numa/share/mk/src.opts.mk
user/jeff/numa/stand/common/bootstrap.h
user/jeff/numa/stand/defaults/loader.conf
user/jeff/numa/stand/defaults/loader.conf.5
user/jeff/numa/stand/defs.mk
user/jeff/numa/stand/efi/boot1/boot1.c
user/jeff/numa/stand/efi/loader/framebuffer.c
user/jeff/numa/stand/forth/Makefile
user/jeff/numa/stand/forth/efi.4th
user/jeff/numa/stand/forth/loader.rc
user/jeff/numa/stand/i386/loader/loader.rc
user/jeff/numa/stand/lua/Makefile
user/jeff/numa/stand/lua/color.lua
user/jeff/numa/stand/lua/config.lua
user/jeff/numa/stand/lua/core.lua
user/jeff/numa/stand/lua/core.lua.8
user/jeff/numa/stand/lua/drawer.lua
user/jeff/numa/stand/lua/loader.lua
user/jeff/numa/stand/lua/menu.lua
user/jeff/numa/stand/lua/screen.lua
user/jeff/numa/sys/amd64/acpica/acpi_wakecode.S
user/jeff/numa/sys/amd64/amd64/apic_vector.S
user/jeff/numa/sys/amd64/amd64/atpic_vector.S
user/jeff/numa/sys/amd64/amd64/cpu_switch.S
user/jeff/numa/sys/amd64/amd64/db_interface.c
user/jeff/numa/sys/amd64/amd64/exception.S
user/jeff/numa/sys/amd64/amd64/fpu.c
user/jeff/numa/sys/amd64/amd64/gdb_machdep.c
user/jeff/numa/sys/amd64/amd64/locore.S
user/jeff/numa/sys/amd64/amd64/mpboot.S
user/jeff/numa/sys/amd64/amd64/sigtramp.S
user/jeff/numa/sys/amd64/amd64/support.S
user/jeff/numa/sys/amd64/amd64/xen-locore.S
user/jeff/numa/sys/amd64/ia32/ia32_exception.S
user/jeff/numa/sys/amd64/linux/linux_support.s
user/jeff/numa/sys/amd64/linux/linux_sysvec.c
user/jeff/numa/sys/amd64/linux32/linux.h
user/jeff/numa/sys/amd64/linux32/linux32_support.s
user/jeff/numa/sys/amd64/linux32/linux32_sysvec.c
user/jeff/numa/sys/amd64/sgx/sgx_support.S
user/jeff/numa/sys/arm/amlogic/aml8726/aml8726_clkmsr.c
user/jeff/numa/sys/arm/amlogic/aml8726/aml8726_mp.c
user/jeff/numa/sys/arm/amlogic/aml8726/aml8726_usb_phy-m3.c
user/jeff/numa/sys/arm/annapurna/alpine/alpine_machdep.c
user/jeff/numa/sys/arm/arm/bcopy_page.S
user/jeff/numa/sys/arm/arm/bcopyinout.S
user/jeff/numa/sys/arm/arm/copystr.S
user/jeff/numa/sys/arm/arm/cpu_asm-v6.S
user/jeff/numa/sys/arm/arm/exception.S
user/jeff/numa/sys/arm/arm/fusu.S
user/jeff/numa/sys/arm/arm/hypervisor-stub.S
user/jeff/numa/sys/arm/arm/in_cksum_arm.S
user/jeff/numa/sys/arm/arm/locore-v4.S
user/jeff/numa/sys/arm/arm/locore-v6.S
user/jeff/numa/sys/arm/arm/pmap-v4.c
user/jeff/numa/sys/arm/arm/support.S
user/jeff/numa/sys/arm/arm/swtch-v4.S
user/jeff/numa/sys/arm/arm/swtch-v6.S
user/jeff/numa/sys/arm/arm/swtch.S
user/jeff/numa/sys/arm/at91/at91_rst.c
user/jeff/numa/sys/arm/broadcom/bcm2835/bcm2835_fb.c
user/jeff/numa/sys/arm/broadcom/bcm2835/bcm2835_fbd.c
user/jeff/numa/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
user/jeff/numa/sys/arm/freescale/fsl_ocotp.c
user/jeff/numa/sys/arm/freescale/vybrid/vf_machdep.c
user/jeff/numa/sys/arm/mv/mv_common.c
user/jeff/numa/sys/arm/samsung/exynos/chrome_ec.c
user/jeff/numa/sys/arm/samsung/exynos/exynos5_ehci.c
user/jeff/numa/sys/arm/ti/am335x/am335x_lcd.c
user/jeff/numa/sys/arm/ti/am335x/am335x_lcd_syscons.c
user/jeff/numa/sys/arm64/arm64/bzero.S
user/jeff/numa/sys/arm64/arm64/copyinout.S
user/jeff/numa/sys/arm64/arm64/exception.S
user/jeff/numa/sys/arm64/arm64/locore.S
user/jeff/numa/sys/arm64/arm64/support.S
user/jeff/numa/sys/arm64/arm64/swtch.S
user/jeff/numa/sys/cam/nvme/nvme_da.c
user/jeff/numa/sys/cam/scsi/scsi_all.h
user/jeff/numa/sys/cam/scsi/scsi_ch.c
user/jeff/numa/sys/cam/scsi/scsi_da.c
user/jeff/numa/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
user/jeff/numa/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S
user/jeff/numa/sys/cddl/dev/dtrace/amd64/dtrace_asm.S
user/jeff/numa/sys/cddl/dev/dtrace/arm/dtrace_asm.S
user/jeff/numa/sys/cddl/dev/dtrace/i386/dtrace_asm.S
user/jeff/numa/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S
user/jeff/numa/sys/cddl/dev/dtrace/riscv/dtrace_asm.S
user/jeff/numa/sys/cddl/dev/fbt/x86/fbt_isa.c
user/jeff/numa/sys/compat/freebsd32/freebsd32_syscall.h
user/jeff/numa/sys/compat/freebsd32/freebsd32_syscalls.c
user/jeff/numa/sys/compat/freebsd32/freebsd32_sysent.c
user/jeff/numa/sys/compat/freebsd32/freebsd32_systrace_args.c
user/jeff/numa/sys/compat/freebsd32/syscalls.master
user/jeff/numa/sys/compat/linux/linux_emul.h
user/jeff/numa/sys/compat/linuxkpi/common/include/linux/pci.h
user/jeff/numa/sys/conf/files
user/jeff/numa/sys/conf/files.amd64
user/jeff/numa/sys/conf/files.i386
user/jeff/numa/sys/conf/kern.opts.mk
user/jeff/numa/sys/conf/kern.post.mk
user/jeff/numa/sys/conf/kmod.mk
user/jeff/numa/sys/contrib/zstd/lib/freebsd/zstd_kfreebsd.c
user/jeff/numa/sys/dev/cardbus/cardbus.c
user/jeff/numa/sys/dev/cxgbe/common/t4_hw.c
user/jeff/numa/sys/dev/cxgbe/t4_main.c
user/jeff/numa/sys/dev/drm/drm_bufs.c
user/jeff/numa/sys/dev/drm/drm_irq.c
user/jeff/numa/sys/dev/e1000/em_txrx.c
user/jeff/numa/sys/dev/e1000/if_em.c
user/jeff/numa/sys/dev/e1000/if_em.h
user/jeff/numa/sys/dev/efidev/efidev.c
user/jeff/numa/sys/dev/efidev/efirt.c (contents, props changed)
user/jeff/numa/sys/dev/efidev/efirtc.c
user/jeff/numa/sys/dev/fdt/fdt_common.c
user/jeff/numa/sys/dev/flash/mx25l.c
user/jeff/numa/sys/dev/hyperv/vmbus/amd64/vmbus_vector.S
user/jeff/numa/sys/dev/hyperv/vmbus/i386/vmbus_vector.S
user/jeff/numa/sys/dev/ixgbe/if_ix.c
user/jeff/numa/sys/dev/ixgbe/if_ixv.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_82598.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_82599.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_api.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_common.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_common.h
user/jeff/numa/sys/dev/ixgbe/ixgbe_dcb.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_dcb_82598.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_dcb_82599.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_phy.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_type.h
user/jeff/numa/sys/dev/ixgbe/ixgbe_vf.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_x540.c
user/jeff/numa/sys/dev/ixgbe/ixgbe_x550.c
user/jeff/numa/sys/dev/jedec_dimm/jedec_dimm.c
user/jeff/numa/sys/dev/md/md.c
user/jeff/numa/sys/dev/mpr/mpi/mpi2.h
user/jeff/numa/sys/dev/mpr/mpi/mpi2_cnfg.h
user/jeff/numa/sys/dev/mpr/mpi/mpi2_history.txt
user/jeff/numa/sys/dev/mpr/mpi/mpi2_ioc.h
user/jeff/numa/sys/dev/mpr/mpr_ioctl.h
user/jeff/numa/sys/dev/mpr/mpr_sas.c
user/jeff/numa/sys/dev/mpr/mpr_sas_lsi.c
user/jeff/numa/sys/dev/mpr/mpr_user.c
user/jeff/numa/sys/dev/mpr/mprvar.h
user/jeff/numa/sys/dev/nvme/nvme.h
user/jeff/numa/sys/dev/nvme/nvme_private.h
user/jeff/numa/sys/dev/nvme/nvme_qpair.c
user/jeff/numa/sys/dev/ofw/ofw_subr.c
user/jeff/numa/sys/dev/ofw/openfirmio.c
user/jeff/numa/sys/dev/ow/owc_gpiobus.c
user/jeff/numa/sys/dev/pccard/pccard.c
user/jeff/numa/sys/dev/pccbb/pccbb.c
user/jeff/numa/sys/dev/random/randomdev.c
user/jeff/numa/sys/dev/rtwn/if_rtwn_ridx.h
user/jeff/numa/sys/dev/rtwn/rtl8188e/r88e_rx.c
user/jeff/numa/sys/dev/rtwn/rtl8192c/r92c_rx.c
user/jeff/numa/sys/dev/rtwn/rtl8812a/r12a_rx.c
user/jeff/numa/sys/dev/usb/controller/musb_otg.c
user/jeff/numa/sys/dev/usb/controller/musb_otg.h
user/jeff/numa/sys/dev/usb/wlan/if_urtw.c
user/jeff/numa/sys/dev/usb/wlan/if_zyd.c
user/jeff/numa/sys/dev/vnic/thunder_bgx_fdt.c
user/jeff/numa/sys/dts/Makefile
user/jeff/numa/sys/geom/label/g_label.c
user/jeff/numa/sys/i386/acpica/acpi_wakecode.S
user/jeff/numa/sys/i386/i386/apic_vector.s
user/jeff/numa/sys/i386/i386/atpic_vector.s
user/jeff/numa/sys/i386/i386/bioscall.s
user/jeff/numa/sys/i386/i386/exception.s
user/jeff/numa/sys/i386/i386/locore.s
user/jeff/numa/sys/i386/i386/mpboot.s
user/jeff/numa/sys/i386/i386/sigtramp.s
user/jeff/numa/sys/i386/i386/support.s
user/jeff/numa/sys/i386/i386/swtch.s
user/jeff/numa/sys/i386/i386/vm86.c
user/jeff/numa/sys/i386/i386/vm86bios.s
user/jeff/numa/sys/i386/ibcs2/ibcs2_ipc.c
user/jeff/numa/sys/i386/ibcs2/ibcs2_misc.c
user/jeff/numa/sys/i386/linux/linux.h
user/jeff/numa/sys/i386/linux/linux_locore.s
user/jeff/numa/sys/i386/linux/linux_support.s
user/jeff/numa/sys/i386/linux/linux_sysvec.c
user/jeff/numa/sys/kern/init_main.c
user/jeff/numa/sys/kern/init_sysent.c
user/jeff/numa/sys/kern/kern_jail.c
user/jeff/numa/sys/kern/kern_lock.c
user/jeff/numa/sys/kern/kern_mutex.c
user/jeff/numa/sys/kern/kern_rwlock.c
user/jeff/numa/sys/kern/kern_sendfile.c
user/jeff/numa/sys/kern/kern_shutdown.c
user/jeff/numa/sys/kern/kern_sx.c
user/jeff/numa/sys/kern/subr_eventhandler.c
user/jeff/numa/sys/kern/subr_witness.c
user/jeff/numa/sys/kern/syscalls.c
user/jeff/numa/sys/kern/syscalls.master
user/jeff/numa/sys/kern/systrace_args.c
user/jeff/numa/sys/kern/vfs_bio.c
user/jeff/numa/sys/kern/vfs_mountroot.c
user/jeff/numa/sys/mips/cavium/octeon_cop2.S
user/jeff/numa/sys/mips/ingenic/jz4780_mpboot.S
user/jeff/numa/sys/mips/mips/exception.S
user/jeff/numa/sys/mips/mips/fp.S
user/jeff/numa/sys/mips/mips/locore.S
user/jeff/numa/sys/mips/mips/mpboot.S
user/jeff/numa/sys/mips/mips/octeon_cop2_swtch.S
user/jeff/numa/sys/mips/mips/support.S
user/jeff/numa/sys/mips/mips/swtch.S
user/jeff/numa/sys/mips/nlm/mpreset.S
user/jeff/numa/sys/modules/Makefile
user/jeff/numa/sys/modules/crypto/Makefile
user/jeff/numa/sys/modules/dtrace/dtrace/Makefile
user/jeff/numa/sys/modules/hyperv/vmbus/Makefile
user/jeff/numa/sys/modules/imx/imx_spi/Makefile
user/jeff/numa/sys/modules/iser/Makefile
user/jeff/numa/sys/modules/linux/Makefile
user/jeff/numa/sys/modules/linux64/Makefile
user/jeff/numa/sys/modules/linux_common/Makefile
user/jeff/numa/sys/modules/netgraph/checksum/Makefile
user/jeff/numa/sys/modules/netmap/Makefile
user/jeff/numa/sys/modules/sgx/Makefile
user/jeff/numa/sys/net/bpf.c
user/jeff/numa/sys/net/bpfdesc.h
user/jeff/numa/sys/net/if_ethersubr.c
user/jeff/numa/sys/net/if_llatbl.h
user/jeff/numa/sys/net/if_media.h
user/jeff/numa/sys/netinet/cc/cc.c
user/jeff/numa/sys/netinet/cc/cc.h
user/jeff/numa/sys/netinet/cc/cc_newreno.c
user/jeff/numa/sys/netinet/if_ether.c
user/jeff/numa/sys/netinet/in.c
user/jeff/numa/sys/netinet/in_pcb.c
user/jeff/numa/sys/netinet/tcp.h
user/jeff/numa/sys/netinet/tcp_input.c
user/jeff/numa/sys/netinet/tcp_output.c
user/jeff/numa/sys/netinet/tcp_subr.c
user/jeff/numa/sys/netinet/tcp_syncache.c
user/jeff/numa/sys/netinet/tcp_timer.c
user/jeff/numa/sys/netinet/tcp_timewait.c
user/jeff/numa/sys/netinet/tcp_usrreq.c
user/jeff/numa/sys/netinet/tcp_var.h
user/jeff/numa/sys/netinet6/in6.c
user/jeff/numa/sys/netinet6/in6_pcb.c
user/jeff/numa/sys/netipsec/xform.h
user/jeff/numa/sys/netipsec/xform_ah.c
user/jeff/numa/sys/netipsec/xform_esp.c
user/jeff/numa/sys/netipsec/xform_ipcomp.c
user/jeff/numa/sys/netpfil/pf/pf_table.c
user/jeff/numa/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c
user/jeff/numa/sys/opencrypto/cryptodev.c
user/jeff/numa/sys/opencrypto/cryptodev.h
user/jeff/numa/sys/opencrypto/cryptosoft.c
user/jeff/numa/sys/opencrypto/xform_auth.h
user/jeff/numa/sys/powerpc/aim/locore32.S
user/jeff/numa/sys/powerpc/aim/locore64.S
user/jeff/numa/sys/powerpc/booke/locore.S
user/jeff/numa/sys/powerpc/booke/pmap.c
user/jeff/numa/sys/powerpc/cpufreq/mpc85xx_jog.c
user/jeff/numa/sys/powerpc/powerpc/cpu_subr64.S
user/jeff/numa/sys/powerpc/powerpc/sigcode32.S
user/jeff/numa/sys/powerpc/powerpc/sigcode64.S
user/jeff/numa/sys/powerpc/powerpc/swtch32.S
user/jeff/numa/sys/powerpc/powerpc/swtch64.S
user/jeff/numa/sys/powerpc/pseries/platform_chrp.c
user/jeff/numa/sys/riscv/riscv/copyinout.S
user/jeff/numa/sys/riscv/riscv/exception.S
user/jeff/numa/sys/riscv/riscv/locore.S
user/jeff/numa/sys/riscv/riscv/support.S
user/jeff/numa/sys/riscv/riscv/swtch.S
user/jeff/numa/sys/security/audit/audit_bsm_klib.c
user/jeff/numa/sys/sparc64/pci/psycho.c
user/jeff/numa/sys/sparc64/sbus/sbus.c
user/jeff/numa/sys/sparc64/sparc64/exception.S
user/jeff/numa/sys/sparc64/sparc64/interrupt.S
user/jeff/numa/sys/sparc64/sparc64/locore.S
user/jeff/numa/sys/sparc64/sparc64/mp_exception.S
user/jeff/numa/sys/sparc64/sparc64/mp_locore.S
user/jeff/numa/sys/sparc64/sparc64/support.S
user/jeff/numa/sys/sparc64/sparc64/swtch.S
user/jeff/numa/sys/sys/_stdarg.h
user/jeff/numa/sys/sys/cdefs.h
user/jeff/numa/sys/sys/ioccom.h
user/jeff/numa/sys/sys/kernel.h
user/jeff/numa/sys/sys/ktr_class.h
user/jeff/numa/sys/sys/linker_set.h
user/jeff/numa/sys/sys/lock.h
user/jeff/numa/sys/sys/random.h
user/jeff/numa/sys/sys/syscall.h
user/jeff/numa/sys/sys/syscall.mk
user/jeff/numa/sys/sys/sysproto.h
user/jeff/numa/sys/vm/vm.h
user/jeff/numa/sys/vm/vm_extern.h
user/jeff/numa/sys/vm/vm_fault.c
user/jeff/numa/sys/vm/vm_page.c
user/jeff/numa/sys/vm/vm_pageout.h
user/jeff/numa/sys/vm/vm_phys.c
user/jeff/numa/sys/vm/vm_reserv.c
user/jeff/numa/sys/vm/vm_reserv.h
user/jeff/numa/sys/x86/include/ucontext.h
user/jeff/numa/sys/x86/include/x86_var.h
user/jeff/numa/sys/x86/isa/isa_dma.c
user/jeff/numa/sys/x86/x86/autoconf.c
user/jeff/numa/sys/x86/x86/cpu_machdep.c
user/jeff/numa/sys/x86/x86/intr_machdep.c
user/jeff/numa/tests/sys/aio/aio_kqueue_test.c
user/jeff/numa/tests/sys/aio/aio_test.c
user/jeff/numa/tests/sys/kern/Makefile
user/jeff/numa/tests/sys/opencrypto/Makefile
user/jeff/numa/usr.bin/calendar/calendars/calendar.freebsd
user/jeff/numa/usr.bin/netstat/inet.c
user/jeff/numa/usr.bin/netstat/main.c
user/jeff/numa/usr.bin/netstat/netstat.1
user/jeff/numa/usr.bin/netstat/netstat.h
user/jeff/numa/usr.bin/truss/syscalls.c
user/jeff/numa/usr.sbin/efibootmgr/efibootmgr.c
user/jeff/numa/usr.sbin/rpcbind/rpcbind.c
user/jeff/numa/usr.sbin/syslogd/syslogd.c
Directory Properties:
user/jeff/numa/ (props changed)
user/jeff/numa/cddl/ (props changed)
user/jeff/numa/cddl/contrib/opensolaris/ (props changed)
user/jeff/numa/contrib/blacklist/ (props changed)
user/jeff/numa/contrib/elftoolchain/ (props changed)
user/jeff/numa/contrib/llvm/ (props changed)
user/jeff/numa/contrib/llvm/projects/libunwind/ (props changed)
user/jeff/numa/contrib/llvm/tools/clang/ (props changed)
user/jeff/numa/sys/cddl/contrib/opensolaris/ (props changed)
user/jeff/numa/sys/contrib/zstd/ (props changed)
Modified: user/jeff/numa/Makefile.inc1
==============================================================================
--- user/jeff/numa/Makefile.inc1 Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/Makefile.inc1 Thu Mar 22 19:38:21 2018 (r331371)
@@ -1394,6 +1394,14 @@ INSTALLKERNEL= ${_kernel}
.endif
.endfor
+_cleankernobj_fast_depend_hack: .PHONY
+# 20180320 remove stale generated assym.s after renaming to .inc in r331254
+.if exists(${OBJTOP}/sys/${KERNCONF}/assym.s)
+ @echo Removing stale generated assym files
+ @rm -f ${OBJTOP}/sys/${KERNCONF}/assym.* \
+ ${OBJTOP}/sys/${KERNCONF}/.depend.assym.*
+.endif
+
${WMAKE_TGTS:N_worldtmp:Nbuild${libcompat}} ${.ALLTARGETS:M_*:N_worldtmp}: .MAKE .PHONY
#
@@ -1429,6 +1437,8 @@ buildkernel: .MAKE .PHONY
@echo ">>> stage 2.1: cleaning up the object tree"
@echo "--------------------------------------------------------------"
${_+_}cd ${KRNLOBJDIR}/${_kernel}; ${KMAKE} ${CLEANDIR}
+.else
+ ${_+_}cd ${.CURDIR}; ${WMAKE} _cleankernobj_fast_depend_hack
.endif
.if !defined(NO_KERNELOBJ)
@echo
Modified: user/jeff/numa/ObsoleteFiles.inc
==============================================================================
--- user/jeff/numa/ObsoleteFiles.inc Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/ObsoleteFiles.inc Thu Mar 22 19:38:21 2018 (r331371)
@@ -38,6 +38,14 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20180319: remove /boot/overlays, replaced by /boot/dtb/overlays
+OLD_DIRS+=boot/overlays
+# 20180311: remove sys/sys/i386/include/pcaudioio.h
+.if ${TARGET_ARCH} == "i386"
+OLD_FILES+=usr/include/machine/pcaudioio.h
+.endif
+# 20180310: remove sys/sys/dataacq.h
+OLD_FILES+=usr/include/sys/dataacq.h
# 20180306: remove DTrace scripts made obsolete by dwatch(1)
OLD_FILES+=usr/share/dtrace/watch_execve
OLD_FILES+=usr/share/dtrace/watch_kill
@@ -51,7 +59,6 @@ OLD_FILES+=usr/share/openssl/man/man1/c_rehash.1.gz
# 20180206: remove gdbtui
OLD_FILES+=usr/bin/gdbtui
# 20180201: Obsolete forth files
-OLD_FILES+=boot/efi.4th
OLD_FILES+=boot/pcibios.4th
# 20180114: new clang import which bumps version from 5.0.1 to 6.0.0.
OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/allocator_interface.h
Modified: user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c
==============================================================================
--- user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c Thu Mar 22 19:38:21 2018 (r331371)
@@ -35,7 +35,7 @@ int
main(int argc, char **argv)
{
for (;;) {
- (void) syscall(SYS_mmap, NULL, 1, 2, 3, -1, 0x12345678);
+ (void) __syscall(SYS_mmap, NULL, 1, 2, 3, -1, 0x12345678);
}
return (0);
Modified: user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
==============================================================================
--- user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Thu Mar 22 19:38:21 2018 (r331371)
@@ -22,6 +22,7 @@
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ * Copyright 2017-2018 Mark Johnston <markj at FreeBSD.org>
*/
#pragma ident "%Z%%M% %I% %E% SMI"
@@ -265,7 +266,7 @@ prepare_elf32(dtrace_hdl_t *dtp, const dof_hdr_t *dof,
sym->st_value = 0;
sym->st_size = 0;
sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_FUNC);
- sym->st_other = 0;
+ sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN);
sym->st_shndx = SHN_UNDEF;
rel++;
@@ -449,7 +450,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof,
sym->st_value = 0;
sym->st_size = 0;
sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_FUNC);
- sym->st_other = 0;
+ sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN);
sym->st_shndx = SHN_UNDEF;
rel++;
Modified: user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c
==============================================================================
--- user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c Thu Mar 22 19:38:21 2018 (r331371)
@@ -3069,9 +3069,10 @@ dt_cook_op1(dt_node_t *dnp, uint_t idflags)
"cannot take address of bit-field\n");
}
- dtt.dtt_object = NULL;
- dtt.dtt_ctfp = cp->dn_ctfp;
- dtt.dtt_type = cp->dn_type;
+ dtt = (dtrace_typeinfo_t){
+ .dtt_ctfp = cp->dn_ctfp,
+ .dtt_type = cp->dn_type,
+ };
if (dt_type_pointer(&dtt) == -1) {
xyerror(D_TYPE_ERR, "cannot find type for \"&\": %s*\n",
Modified: user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_xlator.c
==============================================================================
--- user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_xlator.c Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/cddl/contrib/opensolaris/lib/libdtrace/common/dt_xlator.c Thu Mar 22 19:38:21 2018 (r331371)
@@ -343,9 +343,11 @@ out:
src_dtt.dtt_ctfp = src_ctfp;
src_dtt.dtt_type = src_type;
- dst_dtt.dtt_object = dt_module_lookup_by_ctf(dtp, dst_ctfp)->dm_name;
- dst_dtt.dtt_ctfp = dst_ctfp;
- dst_dtt.dtt_type = dst_type;
+ dst_dtt = (dtrace_typeinfo_t){
+ .dtt_object = dt_module_lookup_by_ctf(dtp, dst_ctfp)->dm_name,
+ .dtt_ctfp = dst_ctfp,
+ .dtt_type = dst_type,
+ };
return (dt_xlator_create(dtp, &src_dtt, &dst_dtt, NULL, NULL, NULL));
}
Modified: user/jeff/numa/contrib/blacklist/bin/conf.c
==============================================================================
--- user/jeff/numa/contrib/blacklist/bin/conf.c Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/blacklist/bin/conf.c Thu Mar 22 19:38:21 2018 (r331371)
@@ -1119,6 +1119,7 @@ conf_parse(const char *f)
confset_free(&lc);
confset_free(&rc);
fclose(fp);
+ free(line);
return;
}
}
Modified: user/jeff/numa/contrib/elftoolchain/nm/nm.c
==============================================================================
--- user/jeff/numa/contrib/elftoolchain/nm/nm.c Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/elftoolchain/nm/nm.c Thu Mar 22 19:38:21 2018 (r331371)
@@ -1310,14 +1310,17 @@ read_elf(Elf *elf, const char *filename, Elf_Kind kind
line_info = malloc(sizeof(struct line_info_head));
func_info = malloc(sizeof(struct func_info_head));
var_info = malloc(sizeof(struct var_info_head));
+ if (line_info != NULL)
+ SLIST_INIT(line_info);
+ if (func_info != NULL)
+ SLIST_INIT(func_info);
+ if (var_info != NULL)
+ SLIST_INIT(var_info);
if (line_info == NULL || func_info == NULL || var_info == NULL) {
warn("malloc");
(void) dwarf_finish(dbg, &de);
goto process_sym;
}
- SLIST_INIT(line_info);
- SLIST_INIT(func_info);
- SLIST_INIT(var_info);
while ((ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL,
&de)) == DW_DLV_OK) {
Modified: user/jeff/numa/contrib/llvm/include/llvm/MC/MCAssembler.h
==============================================================================
--- user/jeff/numa/contrib/llvm/include/llvm/MC/MCAssembler.h Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/include/llvm/MC/MCAssembler.h Thu Mar 22 19:38:21 2018 (r331371)
@@ -206,6 +206,8 @@ class MCAssembler { (private)
handleFixup(const MCAsmLayout &Layout, MCFragment &F, const MCFixup &Fixup);
public:
+ std::vector<std::pair<StringRef, const MCSymbol *>> Symvers;
+
/// Construct a new assembler instance.
//
// FIXME: How are we going to parameterize this? Two obvious options are stay
Modified: user/jeff/numa/contrib/llvm/include/llvm/MC/MCELFStreamer.h
==============================================================================
--- user/jeff/numa/contrib/llvm/include/llvm/MC/MCELFStreamer.h Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/include/llvm/MC/MCELFStreamer.h Thu Mar 22 19:38:21 2018 (r331371)
@@ -51,6 +51,8 @@ class MCELFStreamer : public MCObjectStreamer { (publi
unsigned ByteAlignment) override;
void emitELFSize(MCSymbol *Symbol, const MCExpr *Value) override;
+ void emitELFSymverDirective(StringRef AliasName,
+ const MCSymbol *Aliasee) override;
void EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
unsigned ByteAlignment) override;
Modified: user/jeff/numa/contrib/llvm/include/llvm/MC/MCStreamer.h
==============================================================================
--- user/jeff/numa/contrib/llvm/include/llvm/MC/MCStreamer.h Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/include/llvm/MC/MCStreamer.h Thu Mar 22 19:38:21 2018 (r331371)
@@ -519,9 +519,10 @@ class MCStreamer { (public)
///
/// This corresponds to an assembler statement such as:
/// .symver _start, foo@@SOME_VERSION
- /// \param Alias - The versioned alias (i.e. "foo@@SOME_VERSION")
+ /// \param AliasName - The versioned alias (i.e. "foo@@SOME_VERSION")
/// \param Aliasee - The aliased symbol (i.e. "_start")
- virtual void emitELFSymverDirective(MCSymbol *Alias, const MCSymbol *Aliasee);
+ virtual void emitELFSymverDirective(StringRef AliasName,
+ const MCSymbol *Aliasee);
/// \brief Emit a Linker Optimization Hint (LOH) directive.
/// \param Args - Arguments of the LOH.
Modified: user/jeff/numa/contrib/llvm/lib/Analysis/InstructionSimplify.cpp
==============================================================================
--- user/jeff/numa/contrib/llvm/lib/Analysis/InstructionSimplify.cpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/lib/Analysis/InstructionSimplify.cpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -3697,7 +3697,7 @@ static Value *SimplifyGEPInst(Type *SrcTy, ArrayRef<Va
if (Ops.size() == 2) {
// getelementptr P, 0 -> P.
- if (match(Ops[1], m_Zero()))
+ if (match(Ops[1], m_Zero()) && Ops[0]->getType() == GEPTy)
return Ops[0];
Type *Ty = SrcTy;
@@ -3706,7 +3706,7 @@ static Value *SimplifyGEPInst(Type *SrcTy, ArrayRef<Va
uint64_t C;
uint64_t TyAllocSize = Q.DL.getTypeAllocSize(Ty);
// getelementptr P, N -> P if P points to a type of zero size.
- if (TyAllocSize == 0)
+ if (TyAllocSize == 0 && Ops[0]->getType() == GEPTy)
return Ops[0];
// The following transforms are only safe if the ptrtoint cast
Modified: user/jeff/numa/contrib/llvm/lib/IR/ConstantFold.cpp
==============================================================================
--- user/jeff/numa/contrib/llvm/lib/IR/ConstantFold.cpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/lib/IR/ConstantFold.cpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -2018,8 +2018,16 @@ static bool isInBoundsIndices(ArrayRef<IndexTy> Idxs)
// If the first index is one and all the rest are zero, it's in bounds,
// by the one-past-the-end rule.
- if (!cast<ConstantInt>(Idxs[0])->isOne())
- return false;
+ if (auto *CI = dyn_cast<ConstantInt>(Idxs[0])) {
+ if (!CI->isOne())
+ return false;
+ } else {
+ auto *CV = cast<ConstantDataVector>(Idxs[0]);
+ CI = dyn_cast_or_null<ConstantInt>(CV->getSplatValue());
+ if (!CI || !CI->isOne())
+ return false;
+ }
+
for (unsigned i = 1, e = Idxs.size(); i != e; ++i)
if (!cast<Constant>(Idxs[i])->isNullValue())
return false;
@@ -2049,15 +2057,18 @@ Constant *llvm::ConstantFoldGetElementPtr(Type *Pointe
ArrayRef<Value *> Idxs) {
if (Idxs.empty()) return C;
- if (isa<UndefValue>(C)) {
- Type *GEPTy = GetElementPtrInst::getGEPReturnType(
- C, makeArrayRef((Value * const *)Idxs.data(), Idxs.size()));
+ Type *GEPTy = GetElementPtrInst::getGEPReturnType(
+ C, makeArrayRef((Value *const *)Idxs.data(), Idxs.size()));
+
+ if (isa<UndefValue>(C))
return UndefValue::get(GEPTy);
- }
Constant *Idx0 = cast<Constant>(Idxs[0]);
if (Idxs.size() == 1 && (Idx0->isNullValue() || isa<UndefValue>(Idx0)))
- return C;
+ return GEPTy->isVectorTy() && !C->getType()->isVectorTy()
+ ? ConstantVector::getSplat(
+ cast<VectorType>(GEPTy)->getNumElements(), C)
+ : C;
if (C->isNullValue()) {
bool isNull = true;
Modified: user/jeff/numa/contrib/llvm/lib/MC/ELFObjectWriter.cpp
==============================================================================
--- user/jeff/numa/contrib/llvm/lib/MC/ELFObjectWriter.cpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/lib/MC/ELFObjectWriter.cpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -128,8 +128,6 @@ class ELFObjectWriter : public MCObjectWriter {
/// @name Symbol Table Data
/// @{
- BumpPtrAllocator Alloc;
- StringSaver VersionSymSaver{Alloc};
StringTableBuilder StrTabBuilder{StringTableBuilder::ELF};
/// @}
@@ -391,27 +389,29 @@ void ELFObjectWriter::executePostLayoutBinding(MCAssem
const MCAsmLayout &Layout) {
// The presence of symbol versions causes undefined symbols and
// versions declared with @@@ to be renamed.
- for (const MCSymbol &A : Asm.symbols()) {
- const auto &Alias = cast<MCSymbolELF>(A);
- // Not an alias.
- if (!Alias.isVariable())
- continue;
- auto *Ref = dyn_cast<MCSymbolRefExpr>(Alias.getVariableValue());
- if (!Ref)
- continue;
- const auto &Symbol = cast<MCSymbolELF>(Ref->getSymbol());
-
- StringRef AliasName = Alias.getName();
+ for (const std::pair<StringRef, const MCSymbol *> &P : Asm.Symvers) {
+ StringRef AliasName = P.first;
+ const auto &Symbol = cast<MCSymbolELF>(*P.second);
size_t Pos = AliasName.find('@');
- if (Pos == StringRef::npos)
- continue;
+ assert(Pos != StringRef::npos);
+ StringRef Prefix = AliasName.substr(0, Pos);
+ StringRef Rest = AliasName.substr(Pos);
+ StringRef Tail = Rest;
+ if (Rest.startswith("@@@"))
+ Tail = Rest.substr(Symbol.isUndefined() ? 2 : 1);
+
+ auto *Alias =
+ cast<MCSymbolELF>(Asm.getContext().getOrCreateSymbol(Prefix + Tail));
+ Asm.registerSymbol(*Alias);
+ const MCExpr *Value = MCSymbolRefExpr::create(&Symbol, Asm.getContext());
+ Alias->setVariableValue(Value);
+
// Aliases defined with .symvar copy the binding from the symbol they alias.
// This is the first place we are able to copy this information.
- Alias.setExternal(Symbol.isExternal());
- Alias.setBinding(Symbol.getBinding());
+ Alias->setExternal(Symbol.isExternal());
+ Alias->setBinding(Symbol.getBinding());
- StringRef Rest = AliasName.substr(Pos);
if (!Symbol.isUndefined() && !Rest.startswith("@@@"))
continue;
@@ -420,7 +420,7 @@ void ELFObjectWriter::executePostLayoutBinding(MCAssem
!Rest.startswith("@@@"))
report_fatal_error("A @@ version cannot be undefined");
- Renames.insert(std::make_pair(&Symbol, &Alias));
+ Renames.insert(std::make_pair(&Symbol, Alias));
}
}
@@ -836,44 +836,7 @@ void ELFObjectWriter::computeSymbolTable(
HasLargeSectionIndex = true;
}
- // The @@@ in symbol version is replaced with @ in undefined symbols and @@
- // in defined ones.
- //
- // FIXME: All name handling should be done before we get to the writer,
- // including dealing with GNU-style version suffixes. Fixing this isn't
- // trivial.
- //
- // We thus have to be careful to not perform the symbol version replacement
- // blindly:
- //
- // The ELF format is used on Windows by the MCJIT engine. Thus, on
- // Windows, the ELFObjectWriter can encounter symbols mangled using the MS
- // Visual Studio C++ name mangling scheme. Symbols mangled using the MSVC
- // C++ name mangling can legally have "@@@" as a sub-string. In that case,
- // the EFLObjectWriter should not interpret the "@@@" sub-string as
- // specifying GNU-style symbol versioning. The ELFObjectWriter therefore
- // checks for the MSVC C++ name mangling prefix which is either "?", "@?",
- // "__imp_?" or "__imp_@?".
- //
- // It would have been interesting to perform the MS mangling prefix check
- // only when the target triple is of the form *-pc-windows-elf. But, it
- // seems that this information is not easily accessible from the
- // ELFObjectWriter.
StringRef Name = Symbol.getName();
- SmallString<32> Buf;
- if (!Name.startswith("?") && !Name.startswith("@?") &&
- !Name.startswith("__imp_?") && !Name.startswith("__imp_@?")) {
- // This symbol isn't following the MSVC C++ name mangling convention. We
- // can thus safely interpret the @@@ in symbol names as specifying symbol
- // versioning.
- size_t Pos = Name.find("@@@");
- if (Pos != StringRef::npos) {
- Buf += Name.substr(0, Pos);
- unsigned Skip = MSD.SectionIndex == ELF::SHN_UNDEF ? 2 : 1;
- Buf += Name.substr(Pos + Skip);
- Name = VersionSymSaver.save(Buf.c_str());
- }
- }
// Sections have their own string table
if (Symbol.getType() != ELF::STT_SECTION) {
Modified: user/jeff/numa/contrib/llvm/lib/MC/MCAsmStreamer.cpp
==============================================================================
--- user/jeff/numa/contrib/llvm/lib/MC/MCAsmStreamer.cpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/lib/MC/MCAsmStreamer.cpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -129,6 +129,9 @@ class MCAsmStreamer final : public MCStreamer { (publi
void ChangeSection(MCSection *Section, const MCExpr *Subsection) override;
+ void emitELFSymverDirective(StringRef AliasName,
+ const MCSymbol *Aliasee) override;
+
void EmitLOHDirective(MCLOHType Kind, const MCLOHArgs &Args) override;
void EmitLabel(MCSymbol *Symbol, SMLoc Loc = SMLoc()) override;
@@ -409,6 +412,14 @@ void MCAsmStreamer::ChangeSection(MCSection *Section,
*MAI, getContext().getObjectFileInfo()->getTargetTriple(), OS,
Subsection);
}
+}
+
+void MCAsmStreamer::emitELFSymverDirective(StringRef AliasName,
+ const MCSymbol *Aliasee) {
+ OS << ".symver ";
+ Aliasee->print(OS, MAI);
+ OS << ", " << AliasName;
+ EmitEOL();
}
void MCAsmStreamer::EmitLabel(MCSymbol *Symbol, SMLoc Loc) {
Modified: user/jeff/numa/contrib/llvm/lib/MC/MCELFStreamer.cpp
==============================================================================
--- user/jeff/numa/contrib/llvm/lib/MC/MCELFStreamer.cpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/lib/MC/MCELFStreamer.cpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -337,6 +337,11 @@ void MCELFStreamer::emitELFSize(MCSymbol *Symbol, cons
cast<MCSymbolELF>(Symbol)->setSize(Value);
}
+void MCELFStreamer::emitELFSymverDirective(StringRef AliasName,
+ const MCSymbol *Aliasee) {
+ getAssembler().Symvers.push_back({AliasName, Aliasee});
+}
+
void MCELFStreamer::EmitLocalCommonSymbol(MCSymbol *S, uint64_t Size,
unsigned ByteAlignment) {
auto *Symbol = cast<MCSymbolELF>(S);
Modified: user/jeff/numa/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp
==============================================================================
--- user/jeff/numa/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -767,12 +767,8 @@ bool ELFAsmParser::ParseDirectiveSymver(StringRef, SML
if (AliasName.find('@') == StringRef::npos)
return TokError("expected a '@' in the name");
- MCSymbol *Alias = getContext().getOrCreateSymbol(AliasName);
MCSymbol *Sym = getContext().getOrCreateSymbol(Name);
- const MCExpr *Value = MCSymbolRefExpr::create(Sym, getContext());
-
- getStreamer().EmitAssignment(Alias, Value);
- getStreamer().emitELFSymverDirective(Alias, Sym);
+ getStreamer().emitELFSymverDirective(AliasName, Sym);
return false;
}
Modified: user/jeff/numa/contrib/llvm/lib/MC/MCStreamer.cpp
==============================================================================
--- user/jeff/numa/contrib/llvm/lib/MC/MCStreamer.cpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/lib/MC/MCStreamer.cpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -925,7 +925,7 @@ void MCStreamer::EmitCOFFSymbolType(int Type) {
llvm_unreachable("this directive only supported on COFF targets");
}
void MCStreamer::emitELFSize(MCSymbol *Symbol, const MCExpr *Value) {}
-void MCStreamer::emitELFSymverDirective(MCSymbol *Alias,
+void MCStreamer::emitELFSymverDirective(StringRef AliasName,
const MCSymbol *Aliasee) {}
void MCStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
unsigned ByteAlignment) {}
Modified: user/jeff/numa/contrib/llvm/lib/Object/ModuleSymbolTable.cpp
==============================================================================
--- user/jeff/numa/contrib/llvm/lib/Object/ModuleSymbolTable.cpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/lib/Object/ModuleSymbolTable.cpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -24,7 +24,6 @@
#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
-#include "llvm/IR/Mangler.h"
#include "llvm/IR/Module.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
@@ -69,81 +68,6 @@ void ModuleSymbolTable::addModule(Module *M) {
});
}
-// Ensure ELF .symver aliases get the same binding as the defined symbol
-// they alias with.
-static void handleSymverAliases(const Module &M, RecordStreamer &Streamer) {
- if (Streamer.symverAliases().empty())
- return;
-
- // The name in the assembler will be mangled, but the name in the IR
- // might not, so we first compute a mapping from mangled name to GV.
- Mangler Mang;
- SmallString<64> MangledName;
- StringMap<const GlobalValue *> MangledNameMap;
- auto GetMangledName = [&](const GlobalValue &GV) {
- if (!GV.hasName())
- return;
-
- MangledName.clear();
- MangledName.reserve(GV.getName().size() + 1);
- Mang.getNameWithPrefix(MangledName, &GV, /*CannotUsePrivateLabel=*/false);
- MangledNameMap[MangledName] = &GV;
- };
- for (const Function &F : M)
- GetMangledName(F);
- for (const GlobalVariable &GV : M.globals())
- GetMangledName(GV);
- for (const GlobalAlias &GA : M.aliases())
- GetMangledName(GA);
-
- // Walk all the recorded .symver aliases, and set up the binding
- // for each alias.
- for (auto &Symver : Streamer.symverAliases()) {
- const MCSymbol *Aliasee = Symver.first;
- MCSymbolAttr Attr = MCSA_Invalid;
-
- // First check if the aliasee binding was recorded in the asm.
- RecordStreamer::State state = Streamer.getSymbolState(Aliasee);
- switch (state) {
- case RecordStreamer::Global:
- case RecordStreamer::DefinedGlobal:
- Attr = MCSA_Global;
- break;
- case RecordStreamer::UndefinedWeak:
- case RecordStreamer::DefinedWeak:
- Attr = MCSA_Weak;
- break;
- default:
- break;
- }
-
- // If we don't have a symbol attribute from assembly, then check if
- // the aliasee was defined in the IR.
- if (Attr == MCSA_Invalid) {
- const auto *GV = M.getNamedValue(Aliasee->getName());
- if (!GV) {
- auto MI = MangledNameMap.find(Aliasee->getName());
- if (MI != MangledNameMap.end())
- GV = MI->second;
- else
- continue;
- }
- if (GV->hasExternalLinkage())
- Attr = MCSA_Global;
- else if (GV->hasLocalLinkage())
- Attr = MCSA_Local;
- else if (GV->isWeakForLinker())
- Attr = MCSA_Weak;
- }
- if (Attr == MCSA_Invalid)
- continue;
-
- // Set the detected binding on each alias with this aliasee.
- for (auto &Alias : Symver.second)
- Streamer.EmitSymbolAttribute(Alias, Attr);
- }
-}
-
void ModuleSymbolTable::CollectAsmSymbols(
const Module &M,
function_ref<void(StringRef, BasicSymbolRef::Flags)> AsmSymbol) {
@@ -176,7 +100,7 @@ void ModuleSymbolTable::CollectAsmSymbols(
MCObjectFileInfo MOFI;
MCContext MCCtx(MAI.get(), MRI.get(), &MOFI);
MOFI.InitMCObjectFileInfo(TT, /*PIC*/ false, MCCtx);
- RecordStreamer Streamer(MCCtx);
+ RecordStreamer Streamer(MCCtx, M);
T->createNullTargetStreamer(Streamer);
std::unique_ptr<MemoryBuffer> Buffer(MemoryBuffer::getMemBuffer(InlineAsm));
@@ -195,7 +119,7 @@ void ModuleSymbolTable::CollectAsmSymbols(
if (Parser->Run(false))
return;
- handleSymverAliases(M, Streamer);
+ Streamer.flushSymverDirectives();
for (auto &KV : Streamer) {
StringRef Key = KV.first();
Modified: user/jeff/numa/contrib/llvm/lib/Object/RecordStreamer.cpp
==============================================================================
--- user/jeff/numa/contrib/llvm/lib/Object/RecordStreamer.cpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/lib/Object/RecordStreamer.cpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -8,6 +8,9 @@
//===----------------------------------------------------------------------===//
#include "RecordStreamer.h"
+#include "llvm/IR/Mangler.h"
+#include "llvm/IR/Module.h"
+#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCSymbol.h"
using namespace llvm;
@@ -70,7 +73,8 @@ void RecordStreamer::markUsed(const MCSymbol &Symbol)
void RecordStreamer::visitUsedSymbol(const MCSymbol &Sym) { markUsed(Sym); }
-RecordStreamer::RecordStreamer(MCContext &Context) : MCStreamer(Context) {}
+RecordStreamer::RecordStreamer(MCContext &Context, const Module &M)
+ : MCStreamer(Context), M(M) {}
RecordStreamer::const_iterator RecordStreamer::begin() {
return Symbols.begin();
@@ -112,7 +116,109 @@ void RecordStreamer::EmitCommonSymbol(MCSymbol *Symbol
markDefined(*Symbol);
}
-void RecordStreamer::emitELFSymverDirective(MCSymbol *Alias,
+RecordStreamer::State RecordStreamer::getSymbolState(const MCSymbol *Sym) {
+ auto SI = Symbols.find(Sym->getName());
+ if (SI == Symbols.end())
+ return NeverSeen;
+ return SI->second;
+}
+
+void RecordStreamer::emitELFSymverDirective(StringRef AliasName,
const MCSymbol *Aliasee) {
- SymverAliasMap[Aliasee].push_back(Alias);
+ SymverAliasMap[Aliasee].push_back(AliasName);
+}
+
+void RecordStreamer::flushSymverDirectives() {
+ // Mapping from mangled name to GV.
+ StringMap<const GlobalValue *> MangledNameMap;
+ // The name in the assembler will be mangled, but the name in the IR
+ // might not, so we first compute a mapping from mangled name to GV.
+ Mangler Mang;
+ SmallString<64> MangledName;
+ for (const GlobalValue &GV : M.global_values()) {
+ if (!GV.hasName())
+ continue;
+ MangledName.clear();
+ MangledName.reserve(GV.getName().size() + 1);
+ Mang.getNameWithPrefix(MangledName, &GV, /*CannotUsePrivateLabel=*/false);
+ MangledNameMap[MangledName] = &GV;
+ }
+
+ // Walk all the recorded .symver aliases, and set up the binding
+ // for each alias.
+ for (auto &Symver : SymverAliasMap) {
+ const MCSymbol *Aliasee = Symver.first;
+ MCSymbolAttr Attr = MCSA_Invalid;
+ bool IsDefined = false;
+
+ // First check if the aliasee binding was recorded in the asm.
+ RecordStreamer::State state = getSymbolState(Aliasee);
+ switch (state) {
+ case RecordStreamer::Global:
+ case RecordStreamer::DefinedGlobal:
+ Attr = MCSA_Global;
+ break;
+ case RecordStreamer::UndefinedWeak:
+ case RecordStreamer::DefinedWeak:
+ Attr = MCSA_Weak;
+ break;
+ default:
+ break;
+ }
+
+ switch (state) {
+ case RecordStreamer::Defined:
+ case RecordStreamer::DefinedGlobal:
+ case RecordStreamer::DefinedWeak:
+ IsDefined = true;
+ break;
+ case RecordStreamer::NeverSeen:
+ case RecordStreamer::Global:
+ case RecordStreamer::Used:
+ case RecordStreamer::UndefinedWeak:
+ break;
+ }
+
+ if (Attr == MCSA_Invalid || !IsDefined) {
+ const GlobalValue *GV = M.getNamedValue(Aliasee->getName());
+ if (!GV) {
+ auto MI = MangledNameMap.find(Aliasee->getName());
+ if (MI != MangledNameMap.end())
+ GV = MI->second;
+ }
+ if (GV) {
+ // If we don't have a symbol attribute from assembly, then check if
+ // the aliasee was defined in the IR.
+ if (Attr == MCSA_Invalid) {
+ if (GV->hasExternalLinkage())
+ Attr = MCSA_Global;
+ else if (GV->hasLocalLinkage())
+ Attr = MCSA_Local;
+ else if (GV->isWeakForLinker())
+ Attr = MCSA_Weak;
+ }
+ IsDefined = IsDefined || !GV->isDeclarationForLinker();
+ }
+ }
+
+ // Set the detected binding on each alias with this aliasee.
+ for (auto AliasName : Symver.second) {
+ std::pair<StringRef, StringRef> Split = AliasName.split("@@@");
+ SmallString<128> NewName;
+ if (!Split.second.empty() && !Split.second.startswith("@")) {
+ // Special processing for "@@@" according
+ // https://sourceware.org/binutils/docs/as/Symver.html
+ const char *Separator = IsDefined ? "@@" : "@";
+ AliasName =
+ (Split.first + Separator + Split.second).toStringRef(NewName);
+ }
+ MCSymbol *Alias = getContext().getOrCreateSymbol(AliasName);
+ // TODO: Handle "@@@". Depending on SymbolAttribute value it needs to be
+ // converted into @ or @@.
+ const MCExpr *Value = MCSymbolRefExpr::create(Aliasee, getContext());
+ EmitAssignment(Alias, Value);
+ if (Attr != MCSA_Invalid)
+ EmitSymbolAttribute(Alias, Attr);
+ }
+ }
}
Modified: user/jeff/numa/contrib/llvm/lib/Object/RecordStreamer.h
==============================================================================
--- user/jeff/numa/contrib/llvm/lib/Object/RecordStreamer.h Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/lib/Object/RecordStreamer.h Thu Mar 22 19:38:21 2018 (r331371)
@@ -20,25 +20,32 @@
namespace llvm {
+class GlobalValue;
+class Module;
+
class RecordStreamer : public MCStreamer {
public:
enum State { NeverSeen, Global, Defined, DefinedGlobal, DefinedWeak, Used,
UndefinedWeak};
private:
+ const Module &M;
StringMap<State> Symbols;
// Map of aliases created by .symver directives, saved so we can update
// their symbol binding after parsing complete. This maps from each
// aliasee to its list of aliases.
- DenseMap<const MCSymbol *, std::vector<MCSymbol *>> SymverAliasMap;
+ DenseMap<const MCSymbol *, std::vector<StringRef>> SymverAliasMap;
+ /// Get the state recorded for the given symbol.
+ State getSymbolState(const MCSymbol *Sym);
+
void markDefined(const MCSymbol &Symbol);
void markGlobal(const MCSymbol &Symbol, MCSymbolAttr Attribute);
void markUsed(const MCSymbol &Symbol);
void visitUsedSymbol(const MCSymbol &Sym) override;
public:
- RecordStreamer(MCContext &Context);
+ RecordStreamer(MCContext &Context, const Module &M);
using const_iterator = StringMap<State>::const_iterator;
@@ -54,20 +61,11 @@ class RecordStreamer : public MCStreamer { (public)
void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
unsigned ByteAlignment) override;
/// Record .symver aliases for later processing.
- void emitELFSymverDirective(MCSymbol *Alias,
+ void emitELFSymverDirective(StringRef AliasName,
const MCSymbol *Aliasee) override;
- /// Return the map of .symver aliasee to associated aliases.
- DenseMap<const MCSymbol *, std::vector<MCSymbol *>> &symverAliases() {
- return SymverAliasMap;
- }
-
- /// Get the state recorded for the given symbol.
- State getSymbolState(const MCSymbol *Sym) {
- auto SI = Symbols.find(Sym->getName());
- if (SI == Symbols.end())
- return NeverSeen;
- return SI->second;
- }
+ // Emit ELF .symver aliases and ensure they have the same binding as the
+ // defined symbol they alias with.
+ void flushSymverDirectives();
};
} // end namespace llvm
Modified: user/jeff/numa/contrib/llvm/projects/libunwind/include/__libunwind_config.h
==============================================================================
--- user/jeff/numa/contrib/llvm/projects/libunwind/include/__libunwind_config.h Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/projects/libunwind/include/__libunwind_config.h Thu Mar 22 19:38:21 2018 (r331371)
@@ -53,6 +53,38 @@
# define _LIBUNWIND_CONTEXT_SIZE 64
# define _LIBUNWIND_CURSOR_SIZE 76
# define _LIBUNWIND_MAX_REGISTER 96
+# elif defined(__mips__)
+# if defined(_ABIO32) && _MIPS_SIM == _ABIO32
+# define _LIBUNWIND_TARGET_MIPS_O32 1
+# if defined(__mips_hard_float)
+# define _LIBUNWIND_CONTEXT_SIZE 50
+# define _LIBUNWIND_CURSOR_SIZE 61
+# else
+# define _LIBUNWIND_CONTEXT_SIZE 18
+# define _LIBUNWIND_CURSOR_SIZE 29
+# endif
+# elif defined(_ABIN32) && _MIPS_SIM == _ABIN32
+# define _LIBUNWIND_TARGET_MIPS_NEWABI 1
+# if defined(__mips_hard_float)
+# define _LIBUNWIND_CONTEXT_SIZE 67
+# define _LIBUNWIND_CURSOR_SIZE 78
+# else
+# define _LIBUNWIND_CONTEXT_SIZE 35
+# define _LIBUNWIND_CURSOR_SIZE 46
+# endif
+# elif defined(_ABI64) && _MIPS_SIM == _ABI64
+# define _LIBUNWIND_TARGET_MIPS_NEWABI 1
+# if defined(__mips_hard_float)
+# define _LIBUNWIND_CONTEXT_SIZE 67
+# define _LIBUNWIND_CURSOR_SIZE 79
+# else
+# define _LIBUNWIND_CONTEXT_SIZE 35
+# define _LIBUNWIND_CURSOR_SIZE 47
+# endif
+# else
+# error "Unsupported MIPS ABI and/or environment"
+# endif
+# define _LIBUNWIND_MAX_REGISTER 66
# else
# error "Unsupported architecture."
# endif
@@ -63,6 +95,8 @@
# define _LIBUNWIND_TARGET_AARCH64 1
# define _LIBUNWIND_TARGET_ARM 1
# define _LIBUNWIND_TARGET_OR1K 1
+# define _LIBUNWIND_TARGET_MIPS_O32 1
+# define _LIBUNWIND_TARGET_MIPS_NEWABI 1
# define _LIBUNWIND_CONTEXT_SIZE 128
# define _LIBUNWIND_CURSOR_SIZE 140
# define _LIBUNWIND_MAX_REGISTER 120
Modified: user/jeff/numa/contrib/llvm/projects/libunwind/include/libunwind.h
==============================================================================
--- user/jeff/numa/contrib/llvm/projects/libunwind/include/libunwind.h Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/projects/libunwind/include/libunwind.h Thu Mar 22 19:38:21 2018 (r331371)
@@ -604,4 +604,74 @@ enum {
UNW_RISCV_D31 = 95,
};
+// MIPS registers
+enum {
+ UNW_MIPS_R0 = 0,
+ UNW_MIPS_R1 = 1,
+ UNW_MIPS_R2 = 2,
+ UNW_MIPS_R3 = 3,
+ UNW_MIPS_R4 = 4,
+ UNW_MIPS_R5 = 5,
+ UNW_MIPS_R6 = 6,
+ UNW_MIPS_R7 = 7,
+ UNW_MIPS_R8 = 8,
+ UNW_MIPS_R9 = 9,
+ UNW_MIPS_R10 = 10,
+ UNW_MIPS_R11 = 11,
+ UNW_MIPS_R12 = 12,
+ UNW_MIPS_R13 = 13,
+ UNW_MIPS_R14 = 14,
+ UNW_MIPS_R15 = 15,
+ UNW_MIPS_R16 = 16,
+ UNW_MIPS_R17 = 17,
+ UNW_MIPS_R18 = 18,
+ UNW_MIPS_R19 = 19,
+ UNW_MIPS_R20 = 20,
+ UNW_MIPS_R21 = 21,
+ UNW_MIPS_R22 = 22,
+ UNW_MIPS_R23 = 23,
+ UNW_MIPS_R24 = 24,
+ UNW_MIPS_R25 = 25,
+ UNW_MIPS_R26 = 26,
+ UNW_MIPS_R27 = 27,
+ UNW_MIPS_R28 = 28,
+ UNW_MIPS_R29 = 29,
+ UNW_MIPS_R30 = 30,
+ UNW_MIPS_R31 = 31,
+ UNW_MIPS_F0 = 32,
+ UNW_MIPS_F1 = 33,
+ UNW_MIPS_F2 = 34,
+ UNW_MIPS_F3 = 35,
+ UNW_MIPS_F4 = 36,
+ UNW_MIPS_F5 = 37,
+ UNW_MIPS_F6 = 38,
+ UNW_MIPS_F7 = 39,
+ UNW_MIPS_F8 = 40,
+ UNW_MIPS_F9 = 41,
+ UNW_MIPS_F10 = 42,
+ UNW_MIPS_F11 = 43,
+ UNW_MIPS_F12 = 44,
+ UNW_MIPS_F13 = 45,
+ UNW_MIPS_F14 = 46,
+ UNW_MIPS_F15 = 47,
+ UNW_MIPS_F16 = 48,
+ UNW_MIPS_F17 = 49,
+ UNW_MIPS_F18 = 50,
+ UNW_MIPS_F19 = 51,
+ UNW_MIPS_F20 = 52,
+ UNW_MIPS_F21 = 53,
+ UNW_MIPS_F22 = 54,
+ UNW_MIPS_F23 = 55,
+ UNW_MIPS_F24 = 56,
+ UNW_MIPS_F25 = 57,
+ UNW_MIPS_F26 = 58,
+ UNW_MIPS_F27 = 59,
+ UNW_MIPS_F28 = 60,
+ UNW_MIPS_F29 = 61,
+ UNW_MIPS_F30 = 62,
+ UNW_MIPS_F31 = 63,
+ UNW_MIPS_HI = 64,
+ UNW_MIPS_LO = 65,
+};
+
#endif
Modified: user/jeff/numa/contrib/llvm/projects/libunwind/src/AddressSpace.hpp
==============================================================================
--- user/jeff/numa/contrib/llvm/projects/libunwind/src/AddressSpace.hpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/projects/libunwind/src/AddressSpace.hpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -148,6 +148,7 @@ class __attribute__((visibility("hidden"))) LocalAddre
return val;
}
uintptr_t getP(pint_t addr);
+ uint64_t getRegister(pint_t addr);
static uint64_t getULEB128(pint_t &addr, pint_t end);
static int64_t getSLEB128(pint_t &addr, pint_t end);
@@ -169,6 +170,14 @@ inline uintptr_t LocalAddressSpace::getP(pint_t addr)
#endif
}
+inline uint64_t LocalAddressSpace::getRegister(pint_t addr) {
+#if defined(__LP64__) || defined(__mips64)
+ return get64(addr);
+#else
+ return get32(addr);
+#endif
+}
+
/// Read a ULEB128 into a 64-bit word.
inline uint64_t LocalAddressSpace::getULEB128(pint_t &addr, pint_t end) {
const uint8_t *p = (uint8_t *)addr;
@@ -496,6 +505,7 @@ class OtherAddressSpace { (public)
uint32_t get32(pint_t addr);
uint64_t get64(pint_t addr);
pint_t getP(pint_t addr);
+ uint64_t getRegister(pint_t addr);
uint64_t getULEB128(pint_t &addr, pint_t end);
int64_t getSLEB128(pint_t &addr, pint_t end);
pint_t getEncodedP(pint_t &addr, pint_t end, uint8_t encoding,
@@ -529,6 +539,11 @@ template <typename P> uint64_t OtherAddressSpace<P>::g
template <typename P>
typename P::uint_t OtherAddressSpace<P>::getP(pint_t addr) {
return P::getP(*(uint64_t *)localCopy(addr));
+}
+
+template <typename P>
+typename P::uint_t OtherAddressSpace<P>::getRegister(pint_t addr) {
+ return P::getRegister(*(uint64_t *)localCopy(addr));
}
template <typename P>
Modified: user/jeff/numa/contrib/llvm/projects/libunwind/src/DwarfInstructions.hpp
==============================================================================
--- user/jeff/numa/contrib/llvm/projects/libunwind/src/DwarfInstructions.hpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/projects/libunwind/src/DwarfInstructions.hpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -83,10 +83,10 @@ typename A::pint_t DwarfInstructions<A, R>::getSavedRe
const RegisterLocation &savedReg) {
switch (savedReg.location) {
case CFI_Parser<A>::kRegisterInCFA:
- return addressSpace.getP(cfa + (pint_t)savedReg.value);
+ return addressSpace.getRegister(cfa + (pint_t)savedReg.value);
case CFI_Parser<A>::kRegisterAtExpression:
- return addressSpace.getP(
+ return addressSpace.getRegister(
evaluateExpression((pint_t)savedReg.value, addressSpace,
registers, cfa));
Modified: user/jeff/numa/contrib/llvm/projects/libunwind/src/Registers.hpp
==============================================================================
--- user/jeff/numa/contrib/llvm/projects/libunwind/src/Registers.hpp Thu Mar 22 19:23:02 2018 (r331370)
+++ user/jeff/numa/contrib/llvm/projects/libunwind/src/Registers.hpp Thu Mar 22 19:38:21 2018 (r331371)
@@ -2168,6 +2168,612 @@ inline void Registers_riscv::setVectorRegister(int, v1
_LIBUNWIND_ABORT("no riscv vector register support yet");
}
#endif // _LIBUNWIND_TARGET_RISCV
+
+#if defined(_LIBUNWIND_TARGET_MIPS_O32)
+/// Registers_mips_o32 holds the register state of a thread in a 32-bit MIPS
+/// process.
+class _LIBUNWIND_HIDDEN Registers_mips_o32 {
+public:
+ Registers_mips_o32();
+ Registers_mips_o32(const void *registers);
+
+ bool validRegister(int num) const;
+ uint32_t getRegister(int num) const;
+ void setRegister(int num, uint32_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 65; }
+
+ uint32_t getSP() const { return _registers.__r[29]; }
+ void setSP(uint32_t value) { _registers.__r[29] = value; }
+ uint32_t getIP() const { return _registers.__pc; }
+ void setIP(uint32_t value) { _registers.__pc = value; }
+
+private:
+ struct mips_o32_thread_state_t {
+ uint32_t __r[32];
+ uint32_t __pc;
+ uint32_t __hi;
+ uint32_t __lo;
+ };
+
+ mips_o32_thread_state_t _registers;
+#ifdef __mips_hard_float
+ /// O32 with 32-bit floating point registers only uses half of this
+ /// space. However, using the same layout for 32-bit vs 64-bit
+ /// floating point registers results in a single context size for
+ /// O32 with hard float.
+ uint32_t _padding;
+ double _floats[32];
+#endif
+};
+
+inline Registers_mips_o32::Registers_mips_o32(const void *registers) {
+ static_assert((check_fit<Registers_mips_o32, unw_context_t>::does_fit),
+ "mips_o32 registers do not fit into unw_context_t");
+ memcpy(&_registers, static_cast<const uint8_t *>(registers),
+ sizeof(_registers));
+}
+
+inline Registers_mips_o32::Registers_mips_o32() {
+ memset(&_registers, 0, sizeof(_registers));
+}
+
+inline bool Registers_mips_o32::validRegister(int regNum) const {
+ if (regNum == UNW_REG_IP)
+ return true;
+ if (regNum == UNW_REG_SP)
+ return true;
+ if (regNum < 0)
+ return false;
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list