From owner-svn-src-projects@FreeBSD.ORG Sun Feb 1 01:54:00 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id ED91B6EA; Sun, 1 Feb 2015 01:54:00 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D94A1804; Sun, 1 Feb 2015 01:54:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t111s0n6039375; Sun, 1 Feb 2015 01:54:00 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t111s0X4039373; Sun, 1 Feb 2015 01:54:00 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201502010154.t111s0X4039373@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 1 Feb 2015 01:54:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278019 - projects/clang360-import/contrib/llvm/tools/clang/lib/Basic X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2015 01:54:01 -0000 Author: dim Date: Sun Feb 1 01:53:59 2015 New Revision: 278019 URL: https://svnweb.freebsd.org/changeset/base/278019 Log: Belatedly bump the clang repository URL for 3.6.0 RC2. Modified: projects/clang360-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp Modified: projects/clang360-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp Sun Feb 1 01:42:38 2015 (r278018) +++ projects/clang360-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp Sun Feb 1 01:53:59 2015 (r278019) @@ -36,7 +36,7 @@ std::string getClangRepositoryPath() { // If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_360/rc1/lib/Basic/Version.cpp $"); + StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_360/rc2/lib/Basic/Version.cpp $"); if (URL.empty()) { URL = SVNRepository.slice(SVNRepository.find(':'), SVNRepository.find("/lib/Basic")); From owner-svn-src-projects@FreeBSD.ORG Sun Feb 1 06:45:48 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 21F10DE6; Sun, 1 Feb 2015 06:45:48 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 09D7CC33; Sun, 1 Feb 2015 06:45:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t116jlJj073005; Sun, 1 Feb 2015 06:45:47 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t116jWA0072933; Sun, 1 Feb 2015 06:45:32 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201502010645.t116jWA0072933@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sun, 1 Feb 2015 06:45:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278022 - in projects/pmac_pmu: . bin/expr bin/ps bin/sh cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline cddl/contrib/ope... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2015 06:45:48 -0000 Author: jhibbits Date: Sun Feb 1 06:45:31 2015 New Revision: 278022 URL: https://svnweb.freebsd.org/changeset/base/278022 Log: IFC@r278021 Added: projects/pmac_pmu/sys/dev/hwpmc/hwpmc_armv7.c - copied unchanged from r278021, head/sys/dev/hwpmc/hwpmc_armv7.c projects/pmac_pmu/sys/dev/hwpmc/hwpmc_armv7.h - copied unchanged from r278021, head/sys/dev/hwpmc/hwpmc_armv7.h projects/pmac_pmu/sys/dev/iscsi/icl_conn_if.m - copied unchanged from r278021, head/sys/dev/iscsi/icl_conn_if.m projects/pmac_pmu/sys/dev/iscsi/icl_soft.c - copied unchanged from r278021, head/sys/dev/iscsi/icl_soft.c projects/pmac_pmu/sys/dev/iscsi/icl_wrappers.h - copied unchanged from r278021, head/sys/dev/iscsi/icl_wrappers.h Replaced: projects/pmac_pmu/sys/dev/iscsi/icl.c - copied unchanged from r278021, head/sys/dev/iscsi/icl.c Deleted: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/Makefile Modified: projects/pmac_pmu/UPDATING projects/pmac_pmu/bin/expr/expr.y projects/pmac_pmu/bin/ps/ps.c projects/pmac_pmu/bin/sh/jobs.c projects/pmac_pmu/bin/sh/trap.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dtest.pl projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.baddef1.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.badxlate.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NL.char.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NULL.char.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_STR_NL.string.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.roch.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/offsetof/err.D_UNKNOWN.badmemb.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.fork.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d.out projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/probes/tst.probestar.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.func.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.mod.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.sym.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.selfarray2.d projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.dlclose1.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.forker.c projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh projects/pmac_pmu/contrib/amd/amd/amfs_generic.c projects/pmac_pmu/contrib/amd/amd/amfs_program.c projects/pmac_pmu/contrib/amd/amd/readdir.c projects/pmac_pmu/contrib/amd/hlfsd/homedir.c projects/pmac_pmu/contrib/amd/hlfsd/stubs.c projects/pmac_pmu/contrib/elftoolchain/elfcopy/main.c projects/pmac_pmu/contrib/libcxxrt/exception.cc projects/pmac_pmu/contrib/libcxxrt/stdexcept.cc projects/pmac_pmu/contrib/libcxxrt/typeinfo.cc projects/pmac_pmu/contrib/netbsd-tests/bin/expr/t_expr.sh projects/pmac_pmu/contrib/sendmail/cf/m4/cfhead.m4 projects/pmac_pmu/contrib/tcpdump/print-atm.c projects/pmac_pmu/contrib/tcpdump/print-llc.c projects/pmac_pmu/etc/rc.d/ipfilter projects/pmac_pmu/etc/sendmail/Makefile projects/pmac_pmu/games/fortune/fortune/fortune.6 projects/pmac_pmu/include/semaphore.h projects/pmac_pmu/lib/libc/gen/sem_new.c projects/pmac_pmu/lib/libc/gen/sem_post.3 projects/pmac_pmu/lib/libc/mips/gen/sigsetjmp.S projects/pmac_pmu/lib/libnv/Makefile projects/pmac_pmu/lib/libnv/nv.3 projects/pmac_pmu/lib/libnv/nv.h projects/pmac_pmu/lib/libnv/nvlist.c projects/pmac_pmu/lib/libnv/nvpair.c projects/pmac_pmu/lib/libpmc/libpmc.c projects/pmac_pmu/lib/libproc/proc_sym.c projects/pmac_pmu/lib/libthread_db/arch/i386/libpthread_md.c projects/pmac_pmu/lib/msun/src/s_scalbln.c projects/pmac_pmu/libexec/rtld-elf/rtld.c projects/pmac_pmu/release/Makefile projects/pmac_pmu/release/scripts/make-manifest.sh projects/pmac_pmu/sbin/geom/class/mountver/gmountver.8 projects/pmac_pmu/share/man/man4/sfxge.4 projects/pmac_pmu/share/man/man7/release.7 projects/pmac_pmu/share/man/man9/contigmalloc.9 projects/pmac_pmu/share/man/man9/pmap_enter.9 projects/pmac_pmu/share/misc/committers-src.dot projects/pmac_pmu/sys/amd64/amd64/machdep.c projects/pmac_pmu/sys/amd64/ia32/ia32_signal.c projects/pmac_pmu/sys/arm/allwinner/a10_gpio.c projects/pmac_pmu/sys/arm/altera/socfpga/socfpga_gpio.c projects/pmac_pmu/sys/arm/arm/intr.c projects/pmac_pmu/sys/arm/arm/machdep.c projects/pmac_pmu/sys/arm/broadcom/bcm2835/bcm2835_gpio.c projects/pmac_pmu/sys/arm/freescale/imx/imx_gpio.c projects/pmac_pmu/sys/arm/freescale/vybrid/vf_gpio.c projects/pmac_pmu/sys/arm/include/pmc_mdep.h projects/pmac_pmu/sys/arm/include/profile.h projects/pmac_pmu/sys/arm/lpc/lpc_gpio.c projects/pmac_pmu/sys/arm/rockchip/rk30xx_gpio.c projects/pmac_pmu/sys/arm/samsung/exynos/exynos5_pad.c projects/pmac_pmu/sys/arm/ti/am335x/am335x_prcm.c projects/pmac_pmu/sys/arm/ti/files.ti projects/pmac_pmu/sys/arm/ti/ti_gpio.c projects/pmac_pmu/sys/arm/ti/ti_gpio.h projects/pmac_pmu/sys/arm/ti/ti_pruss.c projects/pmac_pmu/sys/arm/xilinx/zy7_gpio.c projects/pmac_pmu/sys/arm/xscale/ixp425/avila_gpio.c projects/pmac_pmu/sys/arm/xscale/ixp425/cambria_gpio.c projects/pmac_pmu/sys/boot/common/load_elf.c projects/pmac_pmu/sys/boot/efi/libefi/efinet.c projects/pmac_pmu/sys/boot/i386/libi386/libi386.h projects/pmac_pmu/sys/boot/i386/libi386/smbios.c projects/pmac_pmu/sys/boot/powerpc/kboot/conf.c projects/pmac_pmu/sys/boot/powerpc/kboot/host_syscall.S projects/pmac_pmu/sys/boot/powerpc/kboot/host_syscall.h projects/pmac_pmu/sys/boot/powerpc/kboot/hostdisk.c projects/pmac_pmu/sys/boot/powerpc/kboot/kbootfdt.c projects/pmac_pmu/sys/boot/powerpc/kboot/kerneltramp.S projects/pmac_pmu/sys/boot/powerpc/kboot/main.c projects/pmac_pmu/sys/boot/powerpc/kboot/ppc64_elf_freebsd.c projects/pmac_pmu/sys/cam/ctl/ctl.c projects/pmac_pmu/sys/cam/ctl/ctl_frontend_iscsi.c projects/pmac_pmu/sys/cam/scsi/scsi_all.h projects/pmac_pmu/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c projects/pmac_pmu/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/pmac_pmu/sys/conf/Makefile.powerpc projects/pmac_pmu/sys/conf/files projects/pmac_pmu/sys/conf/files.amd64 projects/pmac_pmu/sys/conf/files.arm projects/pmac_pmu/sys/conf/kern.mk projects/pmac_pmu/sys/dev/acpica/acpi.c projects/pmac_pmu/sys/dev/alc/if_alc.c projects/pmac_pmu/sys/dev/ath/ath_hal/ah_internal.h projects/pmac_pmu/sys/dev/ath/ath_rate/sample/sample.c projects/pmac_pmu/sys/dev/ath/ath_rate/sample/sample.h projects/pmac_pmu/sys/dev/drm2/i915/intel_display.c projects/pmac_pmu/sys/dev/drm2/radeon/ni.c projects/pmac_pmu/sys/dev/drm2/radeon/si.c projects/pmac_pmu/sys/dev/fb/fbd.c projects/pmac_pmu/sys/dev/fdt/fdt_clock.c projects/pmac_pmu/sys/dev/gpio/gpio_if.m projects/pmac_pmu/sys/dev/gpio/gpiobus.c projects/pmac_pmu/sys/dev/gpio/gpiobusvar.h projects/pmac_pmu/sys/dev/hwpmc/hwpmc_arm.c projects/pmac_pmu/sys/dev/hwpmc/pmc_events.h projects/pmac_pmu/sys/dev/iscsi/icl.h projects/pmac_pmu/sys/dev/iscsi/iscsi.c projects/pmac_pmu/sys/dev/ofw/openfirm.c projects/pmac_pmu/sys/dev/sfxge/common/efsys.h projects/pmac_pmu/sys/dev/sfxge/common/efx_ev.c projects/pmac_pmu/sys/dev/sfxge/common/efx_tx.c projects/pmac_pmu/sys/dev/sfxge/sfxge.c projects/pmac_pmu/sys/dev/sfxge/sfxge.h projects/pmac_pmu/sys/dev/sfxge/sfxge_dma.c projects/pmac_pmu/sys/dev/sfxge/sfxge_ev.c projects/pmac_pmu/sys/dev/sfxge/sfxge_intr.c projects/pmac_pmu/sys/dev/sfxge/sfxge_port.c projects/pmac_pmu/sys/dev/sfxge/sfxge_tx.c projects/pmac_pmu/sys/dev/sfxge/sfxge_tx.h projects/pmac_pmu/sys/dev/syscons/syscons.c projects/pmac_pmu/sys/dev/usb/input/uhid.c projects/pmac_pmu/sys/dev/virtio/block/virtio_blk.c projects/pmac_pmu/sys/dev/vt/hw/fb/vt_fb.c projects/pmac_pmu/sys/dev/vt/hw/fb/vt_fb.h projects/pmac_pmu/sys/dev/vt/vt.h projects/pmac_pmu/sys/dev/vt/vt_core.c projects/pmac_pmu/sys/fs/cd9660/cd9660_util.c projects/pmac_pmu/sys/fs/fdescfs/fdesc_vfsops.c projects/pmac_pmu/sys/fs/msdosfs/msdosfs_conv.c projects/pmac_pmu/sys/fs/smbfs/smbfs_subr.c projects/pmac_pmu/sys/fs/tmpfs/tmpfs.h projects/pmac_pmu/sys/fs/tmpfs/tmpfs_subr.c projects/pmac_pmu/sys/fs/tmpfs/tmpfs_vfsops.c projects/pmac_pmu/sys/fs/tmpfs/tmpfs_vnops.c projects/pmac_pmu/sys/fs/udf/udf_vnops.c projects/pmac_pmu/sys/i386/i386/machdep.c projects/pmac_pmu/sys/kern/kern_jail.c projects/pmac_pmu/sys/kern/kern_umtx.c projects/pmac_pmu/sys/libkern/strtol.c projects/pmac_pmu/sys/libkern/strtoq.c projects/pmac_pmu/sys/libkern/strtoul.c projects/pmac_pmu/sys/libkern/strtouq.c projects/pmac_pmu/sys/mips/atheros/ar71xx_gpio.c projects/pmac_pmu/sys/mips/atheros/ar71xx_gpiovar.h projects/pmac_pmu/sys/mips/cavium/octeon_gpio.c projects/pmac_pmu/sys/mips/cavium/octeon_gpiovar.h projects/pmac_pmu/sys/mips/mips/freebsd32_machdep.c projects/pmac_pmu/sys/mips/mips/pm_machdep.c projects/pmac_pmu/sys/mips/rt305x/rt305x_gpio.c projects/pmac_pmu/sys/mips/rt305x/rt305x_gpiovar.h projects/pmac_pmu/sys/modules/aesni/Makefile projects/pmac_pmu/sys/modules/ctl/Makefile projects/pmac_pmu/sys/modules/iscsi/Makefile projects/pmac_pmu/sys/netgraph/ng_parse.c projects/pmac_pmu/sys/netinet/sctp_input.c projects/pmac_pmu/sys/netinet/sctp_usrreq.c projects/pmac_pmu/sys/netinet/tcp_syncache.c projects/pmac_pmu/sys/netipsec/key.c projects/pmac_pmu/sys/powerpc/ofw/ofw_machdep.c projects/pmac_pmu/sys/powerpc/powerpc/exec_machdep.c projects/pmac_pmu/sys/powerpc/pseries/plpar_iommu.c projects/pmac_pmu/sys/sparc64/sparc64/machdep.c projects/pmac_pmu/sys/sys/cdefs.h projects/pmac_pmu/sys/sys/conf.h projects/pmac_pmu/sys/sys/eventhandler.h projects/pmac_pmu/sys/sys/jail.h projects/pmac_pmu/sys/sys/param.h projects/pmac_pmu/sys/sys/pmc.h projects/pmac_pmu/sys/sys/proc.h projects/pmac_pmu/sys/sys/ucontext.h projects/pmac_pmu/sys/ufs/ffs/ffs_softdep.c projects/pmac_pmu/sys/ufs/ffs/softdep.h projects/pmac_pmu/sys/ufs/ufs/ufs_quota.c projects/pmac_pmu/sys/ufs/ufs/ufs_vfsops.c projects/pmac_pmu/sys/vm/vm_fault.c projects/pmac_pmu/sys/vm/vm_object.c projects/pmac_pmu/sys/vm/vm_object.h projects/pmac_pmu/sys/x86/x86/tsc.c projects/pmac_pmu/tools/tools/nanobsd/rescue/build.sh projects/pmac_pmu/tools/tools/nanobsd/rescue/common projects/pmac_pmu/usr.bin/grep/Makefile projects/pmac_pmu/usr.bin/sed/main.c projects/pmac_pmu/usr.bin/sed/process.c projects/pmac_pmu/usr.sbin/autofs/autounmountd.c projects/pmac_pmu/usr.sbin/binmiscctl/binmiscctl.c projects/pmac_pmu/usr.sbin/bsdinstall/partedit/partedit_x86.c projects/pmac_pmu/usr.sbin/config/config.8 projects/pmac_pmu/usr.sbin/config/main.c projects/pmac_pmu/usr.sbin/jail/jail.8 projects/pmac_pmu/usr.sbin/pciconf/pciconf.c projects/pmac_pmu/usr.sbin/pmcstudy/pmcstudy.c projects/pmac_pmu/usr.sbin/ppp/command.c projects/pmac_pmu/usr.sbin/ppp/ipcp.c projects/pmac_pmu/usr.sbin/ppp/ipv6cp.c projects/pmac_pmu/usr.sbin/ppp/radius.c projects/pmac_pmu/usr.sbin/ppp/server.c projects/pmac_pmu/usr.sbin/sa/db.c Directory Properties: projects/pmac_pmu/ (props changed) projects/pmac_pmu/cddl/ (props changed) projects/pmac_pmu/cddl/contrib/opensolaris/ (props changed) projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/ (props changed) projects/pmac_pmu/contrib/amd/ (props changed) projects/pmac_pmu/contrib/elftoolchain/ (props changed) projects/pmac_pmu/contrib/libcxxrt/ (props changed) projects/pmac_pmu/contrib/sendmail/ (props changed) projects/pmac_pmu/contrib/tcpdump/ (props changed) projects/pmac_pmu/etc/ (props changed) projects/pmac_pmu/include/ (props changed) projects/pmac_pmu/lib/libc/ (props changed) projects/pmac_pmu/sbin/ (props changed) projects/pmac_pmu/share/ (props changed) projects/pmac_pmu/share/man/man4/ (props changed) projects/pmac_pmu/sys/ (props changed) projects/pmac_pmu/sys/boot/ (props changed) projects/pmac_pmu/sys/boot/powerpc/kboot/ (props changed) projects/pmac_pmu/sys/cddl/contrib/opensolaris/ (props changed) projects/pmac_pmu/sys/conf/ (props changed) projects/pmac_pmu/usr.sbin/jail/ (props changed) Modified: projects/pmac_pmu/UPDATING ============================================================================== --- projects/pmac_pmu/UPDATING Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/UPDATING Sun Feb 1 06:45:31 2015 (r278022) @@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20150131: + The powerpc64 kernel has been changed to a position-independent + executable. This can only be booted with a new version of loader(8), + so make sure to update both world and kernel before rebooting. + 20150118: Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix only release, no new features have been added. Please see the 20141231 Modified: projects/pmac_pmu/bin/expr/expr.y ============================================================================== --- projects/pmac_pmu/bin/expr/expr.y Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/bin/expr/expr.y Sun Feb 1 06:45:31 2015 (r278022) @@ -444,14 +444,26 @@ op_minus(struct val *a, struct val *b) return (r); } +/* + * We depend on undefined behaviour giving a result (in r). + * To test this result, pass it as volatile. This prevents + * optimizing away of the test based on the undefined behaviour. + */ void -assert_times(intmax_t a, intmax_t b, intmax_t r) +assert_times(intmax_t a, intmax_t b, volatile intmax_t r) { /* - * if first operand is 0, no overflow is possible, - * else result of division test must match second operand + * If the first operand is 0, no overflow is possible, + * else the result of the division test must match the + * second operand. + * + * Be careful to avoid overflow in the overflow test, as + * in assert_div(). Overflow in division would kill us + * with a SIGFPE before getting the test wrong. In old + * buggy versions, optimization used to give a null test + * instead of a SIGFPE. */ - if (a != 0 && r / a != b) + if ((a == -1 && b == INTMAX_MIN) || (a != 0 && r / a != b)) errx(ERR_EXIT, "overflow"); } Modified: projects/pmac_pmu/bin/ps/ps.c ============================================================================== --- projects/pmac_pmu/bin/ps/ps.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/bin/ps/ps.c Sun Feb 1 06:45:31 2015 (r278022) @@ -178,7 +178,7 @@ main(int argc, char *argv[]) KINFO *kinfo = NULL, *next_KINFO; KINFO_STR *ks; struct varent *vent; - struct winsize ws; + struct winsize ws = { .ws_row = 0 }; const char *nlistf, *memf, *fmtstr, *str; char *cols; int all, ch, elem, flag, _fmt, i, lineno, linelen, left; Modified: projects/pmac_pmu/bin/sh/jobs.c ============================================================================== --- projects/pmac_pmu/bin/sh/jobs.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/bin/sh/jobs.c Sun Feb 1 06:45:31 2015 (r278022) @@ -87,8 +87,8 @@ static int ttyfd = -1; /* mode flags for dowait */ #define DOWAIT_BLOCK 0x1 /* wait until a child exits */ -#define DOWAIT_SIG 0x2 /* if DOWAIT_BLOCK, abort on SIGINT/SIGQUIT */ -#define DOWAIT_SIG_ANY 0x4 /* if DOWAIT_SIG, abort on any signal */ +#define DOWAIT_SIG 0x2 /* if DOWAIT_BLOCK, abort on signal */ +#define DOWAIT_SIG_TRAP 0x4 /* if DOWAIT_SIG, abort on trapped signal only */ #if JOBS static void restartjob(struct job *); @@ -1028,7 +1028,7 @@ waitforjob(struct job *jp, int *origstat TRACE(("waitforjob(%%%td) called\n", jp - jobtab + 1)); while (jp->state == 0) if (dowait(DOWAIT_BLOCK | (Tflag ? DOWAIT_SIG | - DOWAIT_SIG_ANY : 0), jp) == -1) + DOWAIT_SIG_TRAP : 0), jp) == -1) dotrap(); #if JOBS if (jp->jobctl) { @@ -1120,7 +1120,7 @@ dowait(int mode, struct job *job) TRACE(("wait returns %d, status=%d\n", (int)pid, status)); if (pid == 0 && (mode & DOWAIT_SIG) != 0) { pid = -1; - if (((mode & DOWAIT_SIG_ANY) != 0 ? + if (((mode & DOWAIT_SIG_TRAP) != 0 ? pendingsig : pendingsig_waitcmd) != 0) { errno = EINTR; break; Modified: projects/pmac_pmu/bin/sh/trap.c ============================================================================== --- projects/pmac_pmu/bin/sh/trap.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/bin/sh/trap.c Sun Feb 1 06:45:31 2015 (r278022) @@ -74,7 +74,7 @@ __FBSDID("$FreeBSD$"); static char sigmode[NSIG]; /* current value of signal */ volatile sig_atomic_t pendingsig; /* indicates some signal received */ -volatile sig_atomic_t pendingsig_waitcmd; /* indicates SIGINT/SIGQUIT received */ +volatile sig_atomic_t pendingsig_waitcmd; /* indicates wait builtin should be interrupted */ static int in_dotrap; /* do we execute in a trap handler? */ static char *volatile trap[NSIG]; /* trap handler commands */ static volatile sig_atomic_t gotsig[NSIG]; @@ -400,6 +400,7 @@ onsig(int signo) (signo != SIGCHLD || !ignore_sigchld)) { gotsig[signo] = 1; pendingsig = signo; + pendingsig_waitcmd = signo; } } Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dtest.pl ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dtest.pl Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dtest.pl Sun Feb 1 06:45:31 2015 (r278022) @@ -273,7 +273,7 @@ sub run_tests { } $fullname = "$dir/$name"; - $exe = "./$base.exe"; + $exe = "$dir/$base.exe"; $exe_pid = -1; if ($opt_a && ($status != 0 || $tag != 0 || $droptag != 0 || Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.baddef1.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.baddef1.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.baddef1.d Sun Feb 1 06:45:31 2015 (r278022) @@ -38,4 +38,4 @@ * */ -inline cyc_func_t i = "i am a cyclic function"; +inline dtrace_trap_func_t i = "i am a dtrace trap function"; Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.badxlate.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.badxlate.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.badxlate.d Sun Feb 1 06:45:31 2015 (r278022) @@ -38,4 +38,4 @@ * */ -inline vfs_t *invalid = xlate(curthread->t_procp); +inline struct vnode *invalid = xlate(curthread->td_proc); Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c Sun Feb 1 06:45:31 2015 (r278022) @@ -14,6 +14,8 @@ */ #include +#include +#include #include "usdt.h" #define FMT "{" \ Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NL.char.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NL.char.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NL.char.d Sun Feb 1 06:45:31 2015 (r278022) @@ -36,8 +36,10 @@ BEGIN { - +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Winvalid-pp-token" h = ' '; +#pragma clang diagnostic pop exit(0); } Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NULL.char.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NULL.char.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NULL.char.d Sun Feb 1 06:45:31 2015 (r278022) @@ -36,7 +36,9 @@ BEGIN { - +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Winvalid-pp-token" h = ''; exit(0); +#pragma clang diagnostic pop } Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_STR_NL.string.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_STR_NL.string.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_STR_NL.string.d Sun Feb 1 06:45:31 2015 (r278022) @@ -36,9 +36,11 @@ BEGIN { - +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Winvalid-pp-token" h = "hello there"; exit(0); +#pragma clang diagnostic pop } Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -31,7 +31,6 @@ if [ $# != 1 ]; then fi dtrace=$1 -CC=/usr/bin/gcc CFLAGS= doit() @@ -47,7 +46,7 @@ void main() {} EOF - if $CC $CFLAGS -o $cofile $cfile >/dev/null 2>&1; then + if cc $CFLAGS -o $cofile $cfile >/dev/null 2>&1; then $dtrace -xerrtags -C -s /dev/stdin \ >/dev/null 2>$errfile < @@ -67,11 +66,6 @@ EOF rm -f $cofile $cfile 2>/dev/null } -if [ ! -x $CC ]; then - echo "$0: bad compiler: $CC" >& 2 - exit 1 -fi - concurrency=`psrinfo | wc -l` let concurrency=concurrency*4 let i=0 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.roch.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.roch.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.roch.d Sun Feb 1 06:45:31 2015 (r278022) @@ -74,13 +74,13 @@ fbt:::return (long long)curthread, pid, tid, (int)arg1, (int)arg0); } -mutex_enter:adaptive-acquire +mtx_lock:adaptive-acquire { printf(" %u 0x%llX %d %d lock:0x%llX", timestamp, (long long)curthread, pid, tid, arg0); } -mutex_exit:adaptive-release +mtx_unlock:adaptive-release { printf(" %u 0x%llX %d %d lock:0x%llX", timestamp, (long long) curthread, pid, tid, arg0); Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c Sun Feb 1 06:45:31 2015 (r278022) @@ -28,6 +28,7 @@ #include #include +#include #include #include #include Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/offsetof/err.D_UNKNOWN.badmemb.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/offsetof/err.D_UNKNOWN.badmemb.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/offsetof/err.D_UNKNOWN.badmemb.d Sun Feb 1 06:45:31 2015 (r278022) @@ -40,5 +40,5 @@ BEGIN { - trace(offsetof(vnode_t, v_no_such_member)); + trace(offsetof(struct vnode, v_no_such_member)); } Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c Sun Feb 1 06:45:31 2015 (r278022) @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include +#include #include int Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.fork.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.fork.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.fork.d Sun Feb 1 06:45:31 2015 (r278022) @@ -44,7 +44,7 @@ pid$1:a.out:waiting:entry proc:::create /pid == $1/ { - child = args[0]->pr_pid; + child = args[0]->p_pid; trace(pid); } Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c Sun Feb 1 06:45:31 2015 (r278022) @@ -26,6 +26,8 @@ #pragma ident "%Z%%M% %I% %E% SMI" +#include +#include #include #include #include Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c Sun Feb 1 06:45:31 2015 (r278022) @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include +#include #include /* Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c Sun Feb 1 06:45:31 2015 (r278022) @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include +#include #include /* Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d Sun Feb 1 06:45:31 2015 (r278022) @@ -44,7 +44,7 @@ pid$1:a.out:waiting:entry proc:::create /pid == $1/ { - child = args[0]->pr_pid; + child = args[0]->p_pid; } pid$1:a.out:go: @@ -54,7 +54,7 @@ pid$1:a.out:go: exit(1); } -syscall::rexit:entry +syscall::exit:entry /pid == $1/ { exit(0); Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c Sun Feb 1 06:45:31 2015 (r278022) @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include +#include #include /* Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c Sun Feb 1 06:45:31 2015 (r278022) @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include +#include #include /* Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d Sun Feb 1 06:45:31 2015 (r278022) @@ -25,7 +25,7 @@ BEGIN { - print((void)`p0); + print((void)`proc0); } BEGIN Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d Sun Feb 1 06:45:31 2015 (r278022) @@ -22,13 +22,13 @@ typedef struct pancakes { int i; string s; - timespec_t t; + struct timespec t; } pancakes_t; translator pancakes_t < void *V > { i = 2 * 10; s = strjoin("I like ", "pancakes"); - t = *(timespec_t *)`dtrace_zero; + t = *(struct timespec *)`dtrace_zero; }; BEGIN Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d.out ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d.out Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d.out Sun Feb 1 06:45:31 2015 (r278022) @@ -1,7 +1,7 @@ pancakes_t { int i = 0x14 string s = [ "I like pancakes" ] - timespec_t t = { + struct timespec t = { time_t tv_sec = 0 long tv_nsec = 0 } Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/probes/tst.probestar.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/probes/tst.probestar.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/probes/tst.probestar.d Sun Feb 1 06:45:31 2015 (r278022) @@ -44,7 +44,7 @@ BEGIN i = 0; } -syscall::*lwp*:entry +syscall::*wait*:entry { exit(0); } Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -36,8 +36,9 @@ script() { $dtrace -s /dev/stdin <pr_pid == $child && - args[1]->pr_psargs == "$longsleep" && args[2] == SIGHUP/ + /args[1]->p_pid == $child && + xlate(args[1])->pr_psargs == "$longsleep" && + args[2] == SIGHUP/ { exit(0); } @@ -48,7 +49,7 @@ killer() { while true; do sleep 1 - /usr/bin/kill -HUP $child + kill -HUP $child done } @@ -58,7 +59,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -longsleep="/usr/bin/sleep 10000" +longsleep="/bin/sleep 10000" /usr/bin/nohup $longsleep & child=$! Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -48,7 +48,7 @@ sleeper() { while true; do $longsleep & - /usr/bin/sleep 1 + sleep 1 kill -9 $! done } @@ -59,7 +59,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -longsleep="/usr/bin/sleep 10000" +longsleep="/bin/sleep 10000" sleeper & child=$! @@ -67,9 +67,9 @@ child=$! script status=$? -pstop $child +kill -STOP $child pkill -P $child kill $child -prun $child +kill -CONT $child exit $status Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -37,12 +37,13 @@ script() $dtrace -s /dev/stdin <pr_ppid == $child && - args[1]->pr_psargs == "$longsleep" && args[2] == SIGUSR1/ + xlate(args[1])->pr_psargs == "$longsleep" && + args[2] == SIGUSR1/ { /* * This is guaranteed to not race with signal-handle. */ - target = args[1]->pr_pid; + target = args[1]->p_pid; } proc:::signal-handle @@ -58,7 +59,7 @@ sleeper() while true; do $longsleep & sleep 1 - /usr/bin/kill -USR1 $! + kill -USR1 $! done } @@ -68,7 +69,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -longsleep="/usr/bin/sleep 10000" +longsleep="/bin/sleep 10000" sleeper & child=$! @@ -76,9 +77,9 @@ child=$! script status=$? -pstop $child +kill -STOP $child pkill -P $child kill $child -prun $child +kill -CONT $child exit $status Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.func.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.func.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.func.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -60,14 +60,14 @@ spinny & child=$! # -# This is gutsy -- we're assuming that mutex_enter(9F) will show up in the +# This is gutsy -- we're assuming that mtx_lock(9) will show up in the # output. This is most likely _not_ to show up in the output if the # platform does not support arbitrary resolution interval timers -- but # the above script was stress-tested down to 100 hertz and still ran # successfully on all platforms, so one is hopeful that this test will pass # even in that case. # -script | tee /dev/fd/2 | grep mutex_enter > /dev/null +script | tee /dev/fd/2 | grep mtx_lock > /dev/null status=$? kill $child Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.mod.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.mod.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.mod.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -63,7 +63,7 @@ child=$! # The only thing we can be sure of is that some module named "unix" (or # "genunix") did some work -- so that's all we'll check. # -script | tee /dev/fd/2 | grep unix > /dev/null +script | tee /dev/fd/2 | grep kernel > /dev/null status=$? kill $child Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.sym.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.sym.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.sym.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -63,7 +63,7 @@ child=$! # This is the same gutsy test as that found in the func() test; see that # test for the rationale. # -script | tee /dev/fd/2 | grep mutex_enter > /dev/null +script | tee /dev/fd/2 | grep mtx_lock > /dev/null status=$? kill $child Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.selfarray2.d ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.selfarray2.d Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.selfarray2.d Sun Feb 1 06:45:31 2015 (r278022) @@ -31,8 +31,8 @@ #pragma D option dynvarsize=1m struct bar { - int pid; - kthread_t *curthread; + pid_t pid; + struct thread *curthread; }; self struct bar foo[int]; Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -42,7 +42,7 @@ fi dtrace=$1 -bname=`/usr/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -43,7 +43,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/usr/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file @@ -77,7 +77,7 @@ fi #Get the groupid of the calling process using ps -groupid=`ps -o pid,pgid | grep "$$ " | awk '{print $2}' 2>/dev/null` +groupid=`ps -x -o pid,egid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -93,5 +93,5 @@ fi #Cleanup leftovers -/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -userid=`ps -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` +userid=`ps -x -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -groupid=`ps -o pid,gid | grep "$$ " | awk '{print $2}' 2>/dev/null` +groupid=`ps -x -o pid,gid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file @@ -75,12 +75,12 @@ fi #Pass current pid (I mean parent pid for .d script). -$dfilename $$ >/dev/null 2>&1 +$dfilename $$ #>/dev/null 2>&1 if [ $? -ne 0 ]; then print -u2 "Error in executing $dfilename" exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -projectid=`ps -o pid,projid | grep "$$ " | awk '{print $2}' 2>/dev/null` +projectid=`ps -x -o pid,projid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -sessionid=`ps -o pid,sid | grep "$$ " | awk '{print $2}' 2>/dev/null` +sessionid=`ps -x -o pid,sid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get sid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -taskidval=`ps -o pid,taskid | grep "$$ " | awk '{print $2}' 2>/dev/null` +taskidval=`ps -x -o pid,taskid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -userid=`ps -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` +userid=`ps -x -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c Sun Feb 1 06:45:31 2015 (r278022) @@ -28,6 +28,7 @@ #include #include +#include /*ARGSUSED*/ int Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -48,7 +48,7 @@ fi dtrace="$1" startdir="$PWD" -dir=$(mktemp -td drtiXXXXXX) +dir=$(mktemp -d -t drtiXXXXXX) if (( $? != 0 )); then print -u2 'Could not create safe temporary directory' exit 2 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.dlclose1.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.dlclose1.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.dlclose1.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -106,11 +106,13 @@ cat > main.c < #include #include +#include int main(int argc, char **argv) { void *live; + sigset_t mask; if ((live = dlopen("./livelib.so", RTLD_LAZY | RTLD_LOCAL)) == NULL) { printf("dlopen of livelib.so failed: %s\n", dlerror()); @@ -119,7 +121,8 @@ main(int argc, char **argv) (void) dlclose(live); - pause(); + (void) sigemptyset(&mask); + (void) sigsuspend(&mask); return (0); } @@ -133,7 +136,7 @@ fi script() { $dtrace -w -x bufsize=1k -c ./main -qs /dev/stdin < +#include + +#include #include #include "forker.h" Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -51,7 +51,7 @@ provider test_prov { }; EOF -gcc -c test.c +cc -c test.c if [ $? -ne 0 ]; then print -u2 "failed to compile test.c" exit 1 @@ -61,7 +61,7 @@ if [ $? -ne 0 ]; then print -u2 "failed to create DOF" exit 1 fi -gcc -o test test.o prov.o +cc -o test test.o prov.o if [ $? -ne 0 ]; then print -u2 "failed to link final executable" exit 1 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -51,7 +51,7 @@ provider test_prov { }; EOF -gcc -c test.c +cc -c test.c if [ $? -ne 0 ]; then print -u2 "failed to compile test.c" exit 1 @@ -61,7 +61,7 @@ if [ $? -ne 0 ]; then print -u2 "failed to create DOF" exit 1 fi -gcc -o test test.o prov.o +cc -o test test.o prov.o if [ $? -ne 0 ]; then print -u2 "failed to link final executable" exit 1 Modified: projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh ============================================================================== --- projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh Sun Feb 1 06:45:31 2015 (r278022) @@ -51,7 +51,7 @@ provider test_prov { }; EOF -gcc -c test.c +cc -c test.c if [ $? -ne 0 ]; then print -u2 "failed to compile test.c" exit 1 @@ -61,7 +61,7 @@ if [ $? -ne 0 ]; then print -u2 "failed to create DOF" exit 1 fi -gcc -o test test.o prov.o +cc -o test test.o prov.o if [ $? -ne 0 ]; then print -u2 "failed to link final executable" exit 1 Modified: projects/pmac_pmu/contrib/amd/amd/amfs_generic.c ============================================================================== --- projects/pmac_pmu/contrib/amd/amd/amfs_generic.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/contrib/amd/amd/amfs_generic.c Sun Feb 1 06:45:31 2015 (r278022) @@ -1113,7 +1113,7 @@ amfs_generic_mount_child(am_node *new_mp new_mp->am_transp = (SVCXPRT *) xmalloc(sizeof(SVCXPRT)); *(new_mp->am_transp) = *current_transp; } - if (error && (new_mp->am_mnt->mf_ops == &amfs_error_ops)) + if (error && new_mp->am_mnt && (new_mp->am_mnt->mf_ops == &amfs_error_ops)) new_mp->am_error = error; if (new_mp->am_error > 0) Modified: projects/pmac_pmu/contrib/amd/amd/amfs_program.c ============================================================================== --- projects/pmac_pmu/contrib/amd/amd/amfs_program.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/contrib/amd/amd/amfs_program.c Sun Feb 1 06:45:31 2015 (r278022) @@ -147,10 +147,12 @@ amfs_program_exec(char *info) (void) fclose(stdout); if (!logfp) logfp = stderr; /* initialize before possible first use */ - (void) dup(fileno(logfp)); + if (dup(fileno(logfp)) == -1) + return errno; if (fileno(logfp) != fileno(stderr)) { (void) fclose(stderr); - (void) dup(fileno(logfp)); + if (dup(fileno(logfp)) == -1) + return errno; } /* Modified: projects/pmac_pmu/contrib/amd/amd/readdir.c ============================================================================== --- projects/pmac_pmu/contrib/amd/amd/readdir.c Sun Feb 1 02:29:58 2015 (r278021) +++ projects/pmac_pmu/contrib/amd/amd/readdir.c Sun Feb 1 06:45:31 2015 (r278022) @@ -63,6 +63,7 @@ static int key_already_in_chain(char *ke static nfsentry *make_entry_chain(am_node *mp, const nfsentry *current_chain, int fully_browsable); static int amfs_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count, int fully_browsable); +static const u_int dotdotcookie = DOT_DOT_COOKIE; /**************************************************************************** *** FUNCTIONS *** @@ -178,8 +179,9 @@ make_entry_chain(am_node *mp, const nfse /* we have space. put entry in next cell */ ++last_cookie; - chain[num_entries].ne_fileid = (u_int) last_cookie; - *(u_int *) chain[num_entries].ne_cookie = (u_int) last_cookie; + chain[num_entries].ne_fileid = last_cookie; + (void)memcpy(chain[num_entries].ne_cookie, &last_cookie, + sizeof(last_cookie)); chain[num_entries].ne_name = key; if (num_entries < max_entries - 1) { /* link to next one */ chain[num_entries].ne_nextentry = &chain[num_entries + 1]; @@ -253,7 +255,7 @@ amfs_readdir_browsable(am_node *mp, nfsc ep[0].ne_fileid = mp->am_gen; ep[0].ne_name = "."; ep[0].ne_nextentry = &ep[1]; - *(u_int *) ep[0].ne_cookie = 0; + (void)memset(ep[0].ne_cookie, 0, sizeof(u_int)); /* construct ".." */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Feb 2 03:45:18 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A21CD546; Mon, 2 Feb 2015 03:45:18 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A97D8F; Mon, 2 Feb 2015 03:45:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t123jIiW094765; Mon, 2 Feb 2015 03:45:18 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t123j3Hm094594; Mon, 2 Feb 2015 03:45:03 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201502020345.t123j3Hm094594@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Mon, 2 Feb 2015 03:45:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278050 - in projects/building-blocks: . bin/ps bin/sh cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline cddl/contrib/opens... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2015 03:45:18 -0000 Author: ngie Date: Mon Feb 2 03:45:02 2015 New Revision: 278050 URL: https://svnweb.freebsd.org/changeset/base/278050 Log: MFhead @ r278049 Added: projects/building-blocks/sys/dev/iscsi/icl_conn_if.m - copied unchanged from r278049, head/sys/dev/iscsi/icl_conn_if.m projects/building-blocks/sys/dev/iscsi/icl_soft.c - copied unchanged from r278049, head/sys/dev/iscsi/icl_soft.c projects/building-blocks/sys/dev/iscsi/icl_wrappers.h - copied unchanged from r278049, head/sys/dev/iscsi/icl_wrappers.h Replaced: projects/building-blocks/sys/dev/iscsi/icl.c - copied unchanged from r278049, head/sys/dev/iscsi/icl.c Deleted: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/Makefile Modified: projects/building-blocks/UPDATING projects/building-blocks/bin/ps/ps.c projects/building-blocks/bin/sh/jobs.c projects/building-blocks/bin/sh/trap.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dtest.pl projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.baddef1.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.badxlate.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NL.char.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NULL.char.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_STR_NL.string.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.roch.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/offsetof/err.D_UNKNOWN.badmemb.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.fork.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d.out projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/probes/tst.probestar.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.func.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.mod.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.sym.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.selfarray2.d projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.dlclose1.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.forker.c projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh projects/building-blocks/contrib/amd/amd/amfs_program.c projects/building-blocks/contrib/amd/amd/readdir.c projects/building-blocks/contrib/amd/hlfsd/homedir.c projects/building-blocks/contrib/amd/hlfsd/stubs.c projects/building-blocks/contrib/gcc/config/arm/unwind-arm.c projects/building-blocks/contrib/gcc/config/arm/unwind-arm.h projects/building-blocks/contrib/libcxxrt/exception.cc projects/building-blocks/contrib/libcxxrt/stdexcept.cc projects/building-blocks/contrib/libcxxrt/typeinfo.cc projects/building-blocks/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c projects/building-blocks/contrib/tcpdump/print-atm.c projects/building-blocks/contrib/tcpdump/print-llc.c projects/building-blocks/games/fortune/fortune/fortune.6 projects/building-blocks/include/semaphore.h projects/building-blocks/lib/libc/gen/ttyname.c projects/building-blocks/lib/libc/mips/gen/sigsetjmp.S projects/building-blocks/lib/libc/rpc/crypt_client.c projects/building-blocks/lib/libc/rpc/svc_vc.c projects/building-blocks/lib/libnv/Makefile projects/building-blocks/lib/libnv/nv.3 projects/building-blocks/lib/libnv/nv.h projects/building-blocks/lib/libnv/nvlist.c projects/building-blocks/lib/libnv/nvpair.c projects/building-blocks/lib/libproc/proc_sym.c projects/building-blocks/lib/msun/src/s_scalbln.c projects/building-blocks/libexec/rtld-elf/rtld.c projects/building-blocks/share/man/man4/sfxge.4 projects/building-blocks/share/man/man9/contigmalloc.9 projects/building-blocks/share/misc/committers-src.dot projects/building-blocks/sys/amd64/amd64/machdep.c projects/building-blocks/sys/amd64/ia32/ia32_signal.c projects/building-blocks/sys/arm/allwinner/a10_gpio.c projects/building-blocks/sys/arm/altera/socfpga/socfpga_gpio.c projects/building-blocks/sys/arm/arm/busdma_machdep-v6.c projects/building-blocks/sys/arm/arm/machdep.c projects/building-blocks/sys/arm/broadcom/bcm2835/bcm2835_gpio.c projects/building-blocks/sys/arm/freescale/imx/imx_gpio.c projects/building-blocks/sys/arm/freescale/vybrid/vf_gpio.c projects/building-blocks/sys/arm/include/profile.h projects/building-blocks/sys/arm/lpc/lpc_gpio.c projects/building-blocks/sys/arm/rockchip/rk30xx_gpio.c projects/building-blocks/sys/arm/samsung/exynos/exynos5_pad.c projects/building-blocks/sys/arm/ti/ti_gpio.c projects/building-blocks/sys/arm/ti/ti_gpio.h projects/building-blocks/sys/arm/ti/ti_pruss.c projects/building-blocks/sys/arm/xilinx/zy7_gpio.c projects/building-blocks/sys/arm/xscale/ixp425/avila_gpio.c projects/building-blocks/sys/arm/xscale/ixp425/cambria_gpio.c projects/building-blocks/sys/boot/common/load_elf.c projects/building-blocks/sys/boot/efi/libefi/efinet.c projects/building-blocks/sys/boot/fdt/fdt_loader_cmd.c projects/building-blocks/sys/boot/i386/libi386/libi386.h projects/building-blocks/sys/boot/i386/libi386/smbios.c projects/building-blocks/sys/boot/powerpc/kboot/conf.c projects/building-blocks/sys/boot/powerpc/kboot/host_syscall.S projects/building-blocks/sys/boot/powerpc/kboot/host_syscall.h projects/building-blocks/sys/boot/powerpc/kboot/hostdisk.c projects/building-blocks/sys/boot/powerpc/kboot/kbootfdt.c projects/building-blocks/sys/boot/powerpc/kboot/kerneltramp.S projects/building-blocks/sys/boot/powerpc/kboot/main.c projects/building-blocks/sys/boot/powerpc/kboot/ppc64_elf_freebsd.c projects/building-blocks/sys/cam/ctl/ctl.c projects/building-blocks/sys/cam/ctl/ctl_frontend.c projects/building-blocks/sys/cam/ctl/ctl_frontend.h projects/building-blocks/sys/cam/ctl/ctl_frontend_iscsi.c projects/building-blocks/sys/cam/ctl/ctl_frontend_iscsi.h projects/building-blocks/sys/cam/ctl/ctl_ioctl.h projects/building-blocks/sys/cam/ctl/ctl_private.h projects/building-blocks/sys/cam/ctl/ctl_tpc_local.c projects/building-blocks/sys/cam/scsi/scsi_all.h projects/building-blocks/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c projects/building-blocks/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/building-blocks/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c projects/building-blocks/sys/conf/Makefile.powerpc projects/building-blocks/sys/conf/files projects/building-blocks/sys/conf/files.amd64 projects/building-blocks/sys/conf/kern.mk projects/building-blocks/sys/dev/ahci/ahci.h projects/building-blocks/sys/dev/ahci/ahci_pci.c projects/building-blocks/sys/dev/alc/if_alc.c projects/building-blocks/sys/dev/drm2/i915/intel_display.c projects/building-blocks/sys/dev/drm2/radeon/ni.c projects/building-blocks/sys/dev/drm2/radeon/si.c projects/building-blocks/sys/dev/fdt/fdt_clock.c projects/building-blocks/sys/dev/gpio/gpio_if.m projects/building-blocks/sys/dev/gpio/gpiobus.c projects/building-blocks/sys/dev/gpio/gpiobusvar.h projects/building-blocks/sys/dev/iscsi/icl.h projects/building-blocks/sys/dev/iscsi/iscsi.c projects/building-blocks/sys/dev/ofw/openfirm.c projects/building-blocks/sys/dev/sfxge/common/efsys.h projects/building-blocks/sys/dev/sfxge/common/efx_ev.c projects/building-blocks/sys/dev/sfxge/common/efx_tx.c projects/building-blocks/sys/dev/sfxge/sfxge.c projects/building-blocks/sys/dev/sfxge/sfxge.h projects/building-blocks/sys/dev/sfxge/sfxge_dma.c projects/building-blocks/sys/dev/sfxge/sfxge_ev.c projects/building-blocks/sys/dev/sfxge/sfxge_intr.c projects/building-blocks/sys/dev/sfxge/sfxge_port.c projects/building-blocks/sys/dev/sfxge/sfxge_tx.c projects/building-blocks/sys/dev/sfxge/sfxge_tx.h projects/building-blocks/sys/dev/usb/input/uhid.c projects/building-blocks/sys/fs/cd9660/cd9660_util.c projects/building-blocks/sys/fs/msdosfs/msdosfs_conv.c projects/building-blocks/sys/fs/smbfs/smbfs_subr.c projects/building-blocks/sys/fs/tmpfs/tmpfs_subr.c projects/building-blocks/sys/fs/tmpfs/tmpfs_vnops.c projects/building-blocks/sys/fs/udf/udf_vnops.c projects/building-blocks/sys/i386/i386/machdep.c projects/building-blocks/sys/kern/kern_umtx.c projects/building-blocks/sys/libkern/strtol.c projects/building-blocks/sys/libkern/strtoq.c projects/building-blocks/sys/libkern/strtoul.c projects/building-blocks/sys/libkern/strtouq.c projects/building-blocks/sys/mips/atheros/ar71xx_gpio.c projects/building-blocks/sys/mips/atheros/ar71xx_gpiovar.h projects/building-blocks/sys/mips/cavium/octeon_gpio.c projects/building-blocks/sys/mips/cavium/octeon_gpiovar.h projects/building-blocks/sys/mips/mips/freebsd32_machdep.c projects/building-blocks/sys/mips/mips/pm_machdep.c projects/building-blocks/sys/mips/rt305x/rt305x_gpio.c projects/building-blocks/sys/mips/rt305x/rt305x_gpiovar.h projects/building-blocks/sys/modules/aesni/Makefile projects/building-blocks/sys/modules/ctl/Makefile projects/building-blocks/sys/modules/iscsi/Makefile projects/building-blocks/sys/netgraph/ng_parse.c projects/building-blocks/sys/netinet/tcp_syncache.c projects/building-blocks/sys/powerpc/ofw/ofw_machdep.c projects/building-blocks/sys/powerpc/powerpc/exec_machdep.c projects/building-blocks/sys/sparc64/sparc64/machdep.c projects/building-blocks/sys/sys/cdefs.h projects/building-blocks/sys/sys/conf.h projects/building-blocks/sys/sys/param.h projects/building-blocks/sys/sys/proc.h projects/building-blocks/sys/sys/ucontext.h projects/building-blocks/sys/ufs/ffs/ffs_softdep.c projects/building-blocks/sys/ufs/ffs/softdep.h projects/building-blocks/sys/x86/x86/tsc.c projects/building-blocks/tools/build/mk/OptionalObsoleteFiles.inc projects/building-blocks/tools/tools/nanobsd/rescue/build.sh projects/building-blocks/tools/tools/nanobsd/rescue/common projects/building-blocks/usr.bin/grep/Makefile projects/building-blocks/usr.sbin/bsdinstall/partedit/partedit_x86.c projects/building-blocks/usr.sbin/config/config.8 projects/building-blocks/usr.sbin/config/main.c projects/building-blocks/usr.sbin/ctladm/ctladm.8 projects/building-blocks/usr.sbin/ctladm/ctladm.c projects/building-blocks/usr.sbin/ctld/ctl.conf.5 projects/building-blocks/usr.sbin/ctld/ctld.c projects/building-blocks/usr.sbin/ctld/ctld.h projects/building-blocks/usr.sbin/ctld/kernel.c projects/building-blocks/usr.sbin/ctld/parse.y Directory Properties: projects/building-blocks/ (props changed) projects/building-blocks/cddl/ (props changed) projects/building-blocks/cddl/contrib/opensolaris/ (props changed) projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/ (props changed) projects/building-blocks/contrib/amd/ (props changed) projects/building-blocks/contrib/gcc/ (props changed) projects/building-blocks/contrib/libcxxrt/ (props changed) projects/building-blocks/contrib/tcpdump/ (props changed) projects/building-blocks/include/ (props changed) projects/building-blocks/lib/libc/ (props changed) projects/building-blocks/share/ (props changed) projects/building-blocks/share/man/man4/ (props changed) projects/building-blocks/sys/ (props changed) projects/building-blocks/sys/boot/ (props changed) projects/building-blocks/sys/boot/powerpc/kboot/ (props changed) projects/building-blocks/sys/cddl/contrib/opensolaris/ (props changed) projects/building-blocks/sys/conf/ (props changed) Modified: projects/building-blocks/UPDATING ============================================================================== --- projects/building-blocks/UPDATING Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/UPDATING Mon Feb 2 03:45:02 2015 (r278050) @@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20150131: + The powerpc64 kernel has been changed to a position-independent + executable. This can only be booted with a new version of loader(8), + so make sure to update both world and kernel before rebooting. + 20150118: Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix only release, no new features have been added. Please see the 20141231 Modified: projects/building-blocks/bin/ps/ps.c ============================================================================== --- projects/building-blocks/bin/ps/ps.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/bin/ps/ps.c Mon Feb 2 03:45:02 2015 (r278050) @@ -178,7 +178,7 @@ main(int argc, char *argv[]) KINFO *kinfo = NULL, *next_KINFO; KINFO_STR *ks; struct varent *vent; - struct winsize ws; + struct winsize ws = { .ws_row = 0 }; const char *nlistf, *memf, *fmtstr, *str; char *cols; int all, ch, elem, flag, _fmt, i, lineno, linelen, left; Modified: projects/building-blocks/bin/sh/jobs.c ============================================================================== --- projects/building-blocks/bin/sh/jobs.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/bin/sh/jobs.c Mon Feb 2 03:45:02 2015 (r278050) @@ -87,8 +87,8 @@ static int ttyfd = -1; /* mode flags for dowait */ #define DOWAIT_BLOCK 0x1 /* wait until a child exits */ -#define DOWAIT_SIG 0x2 /* if DOWAIT_BLOCK, abort on SIGINT/SIGQUIT */ -#define DOWAIT_SIG_ANY 0x4 /* if DOWAIT_SIG, abort on any signal */ +#define DOWAIT_SIG 0x2 /* if DOWAIT_BLOCK, abort on signal */ +#define DOWAIT_SIG_TRAP 0x4 /* if DOWAIT_SIG, abort on trapped signal only */ #if JOBS static void restartjob(struct job *); @@ -1028,7 +1028,7 @@ waitforjob(struct job *jp, int *origstat TRACE(("waitforjob(%%%td) called\n", jp - jobtab + 1)); while (jp->state == 0) if (dowait(DOWAIT_BLOCK | (Tflag ? DOWAIT_SIG | - DOWAIT_SIG_ANY : 0), jp) == -1) + DOWAIT_SIG_TRAP : 0), jp) == -1) dotrap(); #if JOBS if (jp->jobctl) { @@ -1120,7 +1120,7 @@ dowait(int mode, struct job *job) TRACE(("wait returns %d, status=%d\n", (int)pid, status)); if (pid == 0 && (mode & DOWAIT_SIG) != 0) { pid = -1; - if (((mode & DOWAIT_SIG_ANY) != 0 ? + if (((mode & DOWAIT_SIG_TRAP) != 0 ? pendingsig : pendingsig_waitcmd) != 0) { errno = EINTR; break; Modified: projects/building-blocks/bin/sh/trap.c ============================================================================== --- projects/building-blocks/bin/sh/trap.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/bin/sh/trap.c Mon Feb 2 03:45:02 2015 (r278050) @@ -74,7 +74,7 @@ __FBSDID("$FreeBSD$"); static char sigmode[NSIG]; /* current value of signal */ volatile sig_atomic_t pendingsig; /* indicates some signal received */ -volatile sig_atomic_t pendingsig_waitcmd; /* indicates SIGINT/SIGQUIT received */ +volatile sig_atomic_t pendingsig_waitcmd; /* indicates wait builtin should be interrupted */ static int in_dotrap; /* do we execute in a trap handler? */ static char *volatile trap[NSIG]; /* trap handler commands */ static volatile sig_atomic_t gotsig[NSIG]; @@ -400,6 +400,7 @@ onsig(int signo) (signo != SIGCHLD || !ignore_sigchld)) { gotsig[signo] = 1; pendingsig = signo; + pendingsig_waitcmd = signo; } } Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dtest.pl ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dtest.pl Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/cmd/scripts/dtest.pl Mon Feb 2 03:45:02 2015 (r278050) @@ -273,7 +273,7 @@ sub run_tests { } $fullname = "$dir/$name"; - $exe = "./$base.exe"; + $exe = "$dir/$base.exe"; $exe_pid = -1; if ($opt_a && ($status != 0 || $tag != 0 || $droptag != 0 || Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.baddef1.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.baddef1.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.baddef1.d Mon Feb 2 03:45:02 2015 (r278050) @@ -38,4 +38,4 @@ * */ -inline cyc_func_t i = "i am a cyclic function"; +inline dtrace_trap_func_t i = "i am a dtrace trap function"; Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.badxlate.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.badxlate.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/inline/err.D_OP_INCOMPAT.badxlate.d Mon Feb 2 03:45:02 2015 (r278050) @@ -38,4 +38,4 @@ * */ -inline vfs_t *invalid = xlate(curthread->t_procp); +inline struct vnode *invalid = xlate(curthread->td_proc); Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c Mon Feb 2 03:45:02 2015 (r278050) @@ -14,6 +14,8 @@ */ #include +#include +#include #include "usdt.h" #define FMT "{" \ Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NL.char.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NL.char.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NL.char.d Mon Feb 2 03:45:02 2015 (r278050) @@ -36,8 +36,10 @@ BEGIN { - +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Winvalid-pp-token" h = ' '; +#pragma clang diagnostic pop exit(0); } Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NULL.char.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NULL.char.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_CHR_NULL.char.d Mon Feb 2 03:45:02 2015 (r278050) @@ -36,7 +36,9 @@ BEGIN { - +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Winvalid-pp-token" h = ''; exit(0); +#pragma clang diagnostic pop } Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_STR_NL.string.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_STR_NL.string.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/lexer/err.D_STR_NL.string.d Mon Feb 2 03:45:02 2015 (r278050) @@ -36,9 +36,11 @@ BEGIN { - +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Winvalid-pp-token" h = "hello there"; exit(0); +#pragma clang diagnostic pop } Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -31,7 +31,6 @@ if [ $# != 1 ]; then fi dtrace=$1 -CC=/usr/bin/gcc CFLAGS= doit() @@ -47,7 +46,7 @@ void main() {} EOF - if $CC $CFLAGS -o $cofile $cfile >/dev/null 2>&1; then + if cc $CFLAGS -o $cofile $cfile >/dev/null 2>&1; then $dtrace -xerrtags -C -s /dev/stdin \ >/dev/null 2>$errfile < @@ -67,11 +66,6 @@ EOF rm -f $cofile $cfile 2>/dev/null } -if [ ! -x $CC ]; then - echo "$0: bad compiler: $CC" >& 2 - exit 1 -fi - concurrency=`psrinfo | wc -l` let concurrency=concurrency*4 let i=0 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.roch.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.roch.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.roch.d Mon Feb 2 03:45:02 2015 (r278050) @@ -74,13 +74,13 @@ fbt:::return (long long)curthread, pid, tid, (int)arg1, (int)arg0); } -mutex_enter:adaptive-acquire +mtx_lock:adaptive-acquire { printf(" %u 0x%llX %d %d lock:0x%llX", timestamp, (long long)curthread, pid, tid, arg0); } -mutex_exit:adaptive-release +mtx_unlock:adaptive-release { printf(" %u 0x%llX %d %d lock:0x%llX", timestamp, (long long) curthread, pid, tid, arg0); Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/nfs/tst.call3.c Mon Feb 2 03:45:02 2015 (r278050) @@ -28,6 +28,7 @@ #include #include +#include #include #include #include Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/offsetof/err.D_UNKNOWN.badmemb.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/offsetof/err.D_UNKNOWN.badmemb.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/offsetof/err.D_UNKNOWN.badmemb.d Mon Feb 2 03:45:02 2015 (r278050) @@ -40,5 +40,5 @@ BEGIN { - trace(offsetof(vnode_t, v_no_such_member)); + trace(offsetof(struct vnode, v_no_such_member)); } Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.args1.c Mon Feb 2 03:45:02 2015 (r278050) @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include +#include #include int Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.fork.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.fork.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.fork.d Mon Feb 2 03:45:02 2015 (r278050) @@ -44,7 +44,7 @@ pid$1:a.out:waiting:entry proc:::create /pid == $1/ { - child = args[0]->pr_pid; + child = args[0]->p_pid; trace(pid); } Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.gcc.c Mon Feb 2 03:45:02 2015 (r278050) @@ -26,6 +26,8 @@ #pragma ident "%Z%%M% %I% %E% SMI" +#include +#include #include #include #include Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret1.c Mon Feb 2 03:45:02 2015 (r278050) @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include +#include #include /* Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.ret2.c Mon Feb 2 03:45:02 2015 (r278050) @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include +#include #include /* Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d Mon Feb 2 03:45:02 2015 (r278050) @@ -44,7 +44,7 @@ pid$1:a.out:waiting:entry proc:::create /pid == $1/ { - child = args[0]->pr_pid; + child = args[0]->p_pid; } pid$1:a.out:go: @@ -54,7 +54,7 @@ pid$1:a.out:go: exit(1); } -syscall::rexit:entry +syscall::exit:entry /pid == $1/ { exit(0); Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak1.c Mon Feb 2 03:45:02 2015 (r278050) @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include +#include #include /* Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.weak2.c Mon Feb 2 03:45:02 2015 (r278050) @@ -27,6 +27,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" #include +#include #include /* Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d Mon Feb 2 03:45:02 2015 (r278050) @@ -25,7 +25,7 @@ BEGIN { - print((void)`p0); + print((void)`proc0); } BEGIN Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d Mon Feb 2 03:45:02 2015 (r278050) @@ -22,13 +22,13 @@ typedef struct pancakes { int i; string s; - timespec_t t; + struct timespec t; } pancakes_t; translator pancakes_t < void *V > { i = 2 * 10; s = strjoin("I like ", "pancakes"); - t = *(timespec_t *)`dtrace_zero; + t = *(struct timespec *)`dtrace_zero; }; BEGIN Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d.out ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d.out Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print/tst.xlate.d.out Mon Feb 2 03:45:02 2015 (r278050) @@ -1,7 +1,7 @@ pancakes_t { int i = 0x14 string s = [ "I like pancakes" ] - timespec_t t = { + struct timespec t = { time_t tv_sec = 0 long tv_nsec = 0 } Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/probes/tst.probestar.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/probes/tst.probestar.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/probes/tst.probestar.d Mon Feb 2 03:45:02 2015 (r278050) @@ -44,7 +44,7 @@ BEGIN i = 0; } -syscall::*lwp*:entry +syscall::*wait*:entry { exit(0); } Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -36,8 +36,9 @@ script() { $dtrace -s /dev/stdin <pr_pid == $child && - args[1]->pr_psargs == "$longsleep" && args[2] == SIGHUP/ + /args[1]->p_pid == $child && + xlate(args[1])->pr_psargs == "$longsleep" && + args[2] == SIGHUP/ { exit(0); } @@ -48,7 +49,7 @@ killer() { while true; do sleep 1 - /usr/bin/kill -HUP $child + kill -HUP $child done } @@ -58,7 +59,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -longsleep="/usr/bin/sleep 10000" +longsleep="/bin/sleep 10000" /usr/bin/nohup $longsleep & child=$! Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -48,7 +48,7 @@ sleeper() { while true; do $longsleep & - /usr/bin/sleep 1 + sleep 1 kill -9 $! done } @@ -59,7 +59,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -longsleep="/usr/bin/sleep 10000" +longsleep="/bin/sleep 10000" sleeper & child=$! @@ -67,9 +67,9 @@ child=$! script status=$? -pstop $child +kill -STOP $child pkill -P $child kill $child -prun $child +kill -CONT $child exit $status Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -37,12 +37,13 @@ script() $dtrace -s /dev/stdin <pr_ppid == $child && - args[1]->pr_psargs == "$longsleep" && args[2] == SIGUSR1/ + xlate(args[1])->pr_psargs == "$longsleep" && + args[2] == SIGUSR1/ { /* * This is guaranteed to not race with signal-handle. */ - target = args[1]->pr_pid; + target = args[1]->p_pid; } proc:::signal-handle @@ -58,7 +59,7 @@ sleeper() while true; do $longsleep & sleep 1 - /usr/bin/kill -USR1 $! + kill -USR1 $! done } @@ -68,7 +69,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -longsleep="/usr/bin/sleep 10000" +longsleep="/bin/sleep 10000" sleeper & child=$! @@ -76,9 +77,9 @@ child=$! script status=$? -pstop $child +kill -STOP $child pkill -P $child kill $child -prun $child +kill -CONT $child exit $status Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.func.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.func.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.func.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -60,14 +60,14 @@ spinny & child=$! # -# This is gutsy -- we're assuming that mutex_enter(9F) will show up in the +# This is gutsy -- we're assuming that mtx_lock(9) will show up in the # output. This is most likely _not_ to show up in the output if the # platform does not support arbitrary resolution interval timers -- but # the above script was stress-tested down to 100 hertz and still ran # successfully on all platforms, so one is hopeful that this test will pass # even in that case. # -script | tee /dev/fd/2 | grep mutex_enter > /dev/null +script | tee /dev/fd/2 | grep mtx_lock > /dev/null status=$? kill $child Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.mod.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.mod.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.mod.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -63,7 +63,7 @@ child=$! # The only thing we can be sure of is that some module named "unix" (or # "genunix") did some work -- so that's all we'll check. # -script | tee /dev/fd/2 | grep unix > /dev/null +script | tee /dev/fd/2 | grep kernel > /dev/null status=$? kill $child Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.sym.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.sym.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/profile-n/tst.sym.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -63,7 +63,7 @@ child=$! # This is the same gutsy test as that found in the func() test; see that # test for the rationale. # -script | tee /dev/fd/2 | grep mutex_enter > /dev/null +script | tee /dev/fd/2 | grep mtx_lock > /dev/null status=$? kill $child Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.selfarray2.d ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.selfarray2.d Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scalars/tst.selfarray2.d Mon Feb 2 03:45:02 2015 (r278050) @@ -31,8 +31,8 @@ #pragma D option dynvarsize=1m struct bar { - int pid; - kthread_t *curthread; + pid_t pid; + struct thread *curthread; }; self struct bar foo[int]; Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -42,7 +42,7 @@ fi dtrace=$1 -bname=`/usr/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -43,7 +43,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/usr/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file @@ -77,7 +77,7 @@ fi #Get the groupid of the calling process using ps -groupid=`ps -o pid,pgid | grep "$$ " | awk '{print $2}' 2>/dev/null` +groupid=`ps -x -o pid,egid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -93,5 +93,5 @@ fi #Cleanup leftovers -/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -userid=`ps -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` +userid=`ps -x -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -groupid=`ps -o pid,gid | grep "$$ " | awk '{print $2}' 2>/dev/null` +groupid=`ps -x -o pid,gid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file @@ -75,12 +75,12 @@ fi #Pass current pid (I mean parent pid for .d script). -$dfilename $$ >/dev/null 2>&1 +$dfilename $$ #>/dev/null 2>&1 if [ $? -ne 0 ]; then print -u2 "Error in executing $dfilename" exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -projectid=`ps -o pid,projid | grep "$$ " | awk '{print $2}' 2>/dev/null` +projectid=`ps -x -o pid,projid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -sessionid=`ps -o pid,sid | grep "$$ " | awk '{print $2}' 2>/dev/null` +sessionid=`ps -x -o pid,sid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get sid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -taskidval=`ps -o pid,taskid | grep "$$ " | awk '{print $2}' 2>/dev/null` +taskidval=`ps -x -o pid,taskid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -userid=`ps -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` +userid=`ps -x -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c Mon Feb 2 03:45:02 2015 (r278050) @@ -28,6 +28,7 @@ #include #include +#include /*ARGSUSED*/ int Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -48,7 +48,7 @@ fi dtrace="$1" startdir="$PWD" -dir=$(mktemp -td drtiXXXXXX) +dir=$(mktemp -d -t drtiXXXXXX) if (( $? != 0 )); then print -u2 'Could not create safe temporary directory' exit 2 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.dlclose1.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.dlclose1.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.dlclose1.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -106,11 +106,13 @@ cat > main.c < #include #include +#include int main(int argc, char **argv) { void *live; + sigset_t mask; if ((live = dlopen("./livelib.so", RTLD_LAZY | RTLD_LOCAL)) == NULL) { printf("dlopen of livelib.so failed: %s\n", dlerror()); @@ -119,7 +121,8 @@ main(int argc, char **argv) (void) dlclose(live); - pause(); + (void) sigemptyset(&mask); + (void) sigsuspend(&mask); return (0); } @@ -133,7 +136,7 @@ fi script() { $dtrace -w -x bufsize=1k -c ./main -qs /dev/stdin < +#include + +#include #include #include "forker.h" Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -51,7 +51,7 @@ provider test_prov { }; EOF -gcc -c test.c +cc -c test.c if [ $? -ne 0 ]; then print -u2 "failed to compile test.c" exit 1 @@ -61,7 +61,7 @@ if [ $? -ne 0 ]; then print -u2 "failed to create DOF" exit 1 fi -gcc -o test test.o prov.o +cc -o test test.o prov.o if [ $? -ne 0 ]; then print -u2 "failed to link final executable" exit 1 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -51,7 +51,7 @@ provider test_prov { }; EOF -gcc -c test.c +cc -c test.c if [ $? -ne 0 ]; then print -u2 "failed to compile test.c" exit 1 @@ -61,7 +61,7 @@ if [ $? -ne 0 ]; then print -u2 "failed to create DOF" exit 1 fi -gcc -o test test.o prov.o +cc -o test test.o prov.o if [ $? -ne 0 ]; then print -u2 "failed to link final executable" exit 1 Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh Mon Feb 2 03:45:02 2015 (r278050) @@ -51,7 +51,7 @@ provider test_prov { }; EOF -gcc -c test.c +cc -c test.c if [ $? -ne 0 ]; then print -u2 "failed to compile test.c" exit 1 @@ -61,7 +61,7 @@ if [ $? -ne 0 ]; then print -u2 "failed to create DOF" exit 1 fi -gcc -o test test.o prov.o +cc -o test test.o prov.o if [ $? -ne 0 ]; then print -u2 "failed to link final executable" exit 1 Modified: projects/building-blocks/contrib/amd/amd/amfs_program.c ============================================================================== --- projects/building-blocks/contrib/amd/amd/amfs_program.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/contrib/amd/amd/amfs_program.c Mon Feb 2 03:45:02 2015 (r278050) @@ -147,10 +147,12 @@ amfs_program_exec(char *info) (void) fclose(stdout); if (!logfp) logfp = stderr; /* initialize before possible first use */ - (void) dup(fileno(logfp)); + if (dup(fileno(logfp)) == -1) + return errno; if (fileno(logfp) != fileno(stderr)) { (void) fclose(stderr); - (void) dup(fileno(logfp)); + if (dup(fileno(logfp)) == -1) + return errno; } /* Modified: projects/building-blocks/contrib/amd/amd/readdir.c ============================================================================== --- projects/building-blocks/contrib/amd/amd/readdir.c Mon Feb 2 02:56:29 2015 (r278049) +++ projects/building-blocks/contrib/amd/amd/readdir.c Mon Feb 2 03:45:02 2015 (r278050) @@ -63,6 +63,7 @@ static int key_already_in_chain(char *ke static nfsentry *make_entry_chain(am_node *mp, const nfsentry *current_chain, int fully_browsable); static int amfs_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count, int fully_browsable); +static const u_int dotdotcookie = DOT_DOT_COOKIE; /**************************************************************************** *** FUNCTIONS *** @@ -178,8 +179,9 @@ make_entry_chain(am_node *mp, const nfse /* we have space. put entry in next cell */ ++last_cookie; - chain[num_entries].ne_fileid = (u_int) last_cookie; - *(u_int *) chain[num_entries].ne_cookie = (u_int) last_cookie; + chain[num_entries].ne_fileid = last_cookie; + (void)memcpy(chain[num_entries].ne_cookie, &last_cookie, + sizeof(last_cookie)); chain[num_entries].ne_name = key; if (num_entries < max_entries - 1) { /* link to next one */ chain[num_entries].ne_nextentry = &chain[num_entries + 1]; @@ -253,7 +255,7 @@ amfs_readdir_browsable(am_node *mp, nfsc ep[0].ne_fileid = mp->am_gen; ep[0].ne_name = "."; ep[0].ne_nextentry = &ep[1]; - *(u_int *) ep[0].ne_cookie = 0; + (void)memset(ep[0].ne_cookie, 0, sizeof(u_int)); /* construct ".." */ if (mp->am_parent) @@ -300,9 +302,12 @@ amfs_readdir_browsable(am_node *mp, nfsc nfsentry *ne; for (j = 0, ne = te; ne; ne = ne->ne_nextentry) plog(XLOG_DEBUG, "gen2 key %4d \"%s\"", j++, ne->ne_name); - for (j = 0, ne = ep; ne; ne = ne->ne_nextentry) + for (j = 0, ne = ep; ne; ne = ne->ne_nextentry) { + u_int cookie; + (void)memcpy(&cookie, ne->ne_cookie, sizeof(cookie)); plog(XLOG_DEBUG, "gen2+ key %4d \"%s\" fi=%d ck=%d", - j++, ne->ne_name, ne->ne_fileid, *(u_int *)ne->ne_cookie); + j++, ne->ne_name, ne->ne_fileid, cookie); + } plog(XLOG_DEBUG, "EOF is %d", dp->dl_eof); } return 0; @@ -412,7 +417,7 @@ amfs_generic_readdir(am_node *mp, nfscoo ep[0].ne_fileid = mp->am_gen; ep[0].ne_name = "."; ep[0].ne_nextentry = &ep[1]; - *(u_int *) ep[0].ne_cookie = 0; + (void)memset(ep[0].ne_cookie, 0, sizeof(u_int)); /* construct ".." */ if (mp->am_parent) @@ -429,9 +434,12 @@ amfs_generic_readdir(am_node *mp, nfscoo if (amuDebug(D_READDIR)) { nfsentry *ne; int j; - for (j = 0, ne = ep; ne; ne = ne->ne_nextentry) + for (j = 0, ne = ep; ne; ne = ne->ne_nextentry) { + u_int cookie; + (void)memcpy(&cookie, ne->ne_cookie, sizeof(cookie)); plog(XLOG_DEBUG, "gen1 key %4d \"%s\" fi=%d ck=%d", - j++, ne->ne_name, ne->ne_fileid, *(u_int *)ne->ne_cookie); + j++, ne->ne_name, ne->ne_fileid, cookie); + } } return 0; } @@ -460,9 +468,9 @@ amfs_generic_readdir(am_node *mp, nfscoo am_node *xp_next = next_nonerror_node(xp->am_osib); if (xp_next) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Feb 2 06:33:00 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8FCAAAF5; Mon, 2 Feb 2015 06:33:00 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5F1222A1; Mon, 2 Feb 2015 06:33:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t126X0Ze075315; Mon, 2 Feb 2015 06:33:00 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t126X0Q5075314; Mon, 2 Feb 2015 06:33:00 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201502020633.t126X0Q5075314@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Mon, 2 Feb 2015 06:33:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278056 - projects/pmac_pmu/sys/dev/pci X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2015 06:33:00 -0000 Author: jhibbits Date: Mon Feb 2 06:32:59 2015 New Revision: 278056 URL: https://svnweb.freebsd.org/changeset/base/278056 Log: Fix mismerge. I want to eliminate implementations of device_suspend()/device_resume() from buses. Modified: projects/pmac_pmu/sys/dev/pci/pci.c Modified: projects/pmac_pmu/sys/dev/pci/pci.c ============================================================================== --- projects/pmac_pmu/sys/dev/pci/pci.c Mon Feb 2 05:46:36 2015 (r278055) +++ projects/pmac_pmu/sys/dev/pci/pci.c Mon Feb 2 06:32:59 2015 (r278056) @@ -131,8 +131,6 @@ static device_method_t pci_methods[] = { DEVMETHOD(device_detach, bus_generic_detach), #endif DEVMETHOD(device_shutdown, bus_generic_shutdown), - DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, pci_resume), /* Bus interface */ DEVMETHOD(bus_print_child, pci_print_child), @@ -159,8 +157,6 @@ static device_method_t pci_methods[] = { DEVMETHOD(bus_child_pnpinfo_str, pci_child_pnpinfo_str_method), DEVMETHOD(bus_child_location_str, pci_child_location_str_method), DEVMETHOD(bus_remap_intr, pci_remap_intr_method), - DEVMETHOD(bus_suspend_child, pci_suspend_child), - DEVMETHOD(bus_resume_child, pci_resume_child), /* PCI interface */ DEVMETHOD(pci_read_config, pci_read_config_method), @@ -3712,45 +3708,6 @@ pci_resume_child(device_t dev, device_t return (0); } -int -pci_resume(device_t dev) -{ - device_t child, *devlist; - int error, i, numdevs; - - if ((error = device_get_children(dev, &devlist, &numdevs)) != 0) - return (error); - - /* - * Resume critical devices first, then everything else later. - */ - for (i = 0; i < numdevs; i++) { - child = devlist[i]; - switch (pci_get_class(child)) { - case PCIC_DISPLAY: - case PCIC_MEMORY: - case PCIC_BRIDGE: - case PCIC_BASEPERIPH: - BUS_RESUME_CHILD(dev, child); - break; - } - } - for (i = 0; i < numdevs; i++) { - child = devlist[i]; - switch (pci_get_class(child)) { - case PCIC_DISPLAY: - case PCIC_MEMORY: - case PCIC_BRIDGE: - case PCIC_BASEPERIPH: - break; - default: - BUS_RESUME_CHILD(dev, child); - } - } - free(devlist, M_TEMP); - return (0); -} - static void pci_load_vendor_data(void) { From owner-svn-src-projects@FreeBSD.ORG Mon Feb 2 06:34:39 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 67D53BE2; Mon, 2 Feb 2015 06:34:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 53E422B2; Mon, 2 Feb 2015 06:34:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t126YdhO075559; Mon, 2 Feb 2015 06:34:39 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t126Ydio075558; Mon, 2 Feb 2015 06:34:39 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201502020634.t126Ydio075558@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Mon, 2 Feb 2015 06:34:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278057 - projects/pmac_pmu/sys/kern X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2015 06:34:39 -0000 Author: jhibbits Date: Mon Feb 2 06:34:38 2015 New Revision: 278057 URL: https://svnweb.freebsd.org/changeset/base/278057 Log: Clean up some printf()s. Modified: projects/pmac_pmu/sys/kern/subr_bus.c Modified: projects/pmac_pmu/sys/kern/subr_bus.c ============================================================================== --- projects/pmac_pmu/sys/kern/subr_bus.c Mon Feb 2 06:32:59 2015 (r278056) +++ projects/pmac_pmu/sys/kern/subr_bus.c Mon Feb 2 06:34:38 2015 (r278057) @@ -4598,14 +4598,14 @@ root_suspend(device_t dev) TAILQ_FOREACH_REVERSE(dl, &passes, driver_list, passlink) { bus_current_pass = dl->pass; - printf("New pass: %d\n", bus_current_pass); + if (bootverbose) + printf("New pass: %d\n", bus_current_pass); error = bus_generic_suspend(dev); if (error != 0) break; } if (error != 0) { - printf("Error %d\n", error); TAILQ_FOREACH_FROM(dl, &passes, passlink) { if (dl->pass <= bus_current_pass) continue; From owner-svn-src-projects@FreeBSD.ORG Mon Feb 2 20:18:58 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 44FDA6D8; Mon, 2 Feb 2015 20:18:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2D716D02; Mon, 2 Feb 2015 20:18:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t12KIwtj065579; Mon, 2 Feb 2015 20:18:58 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t12KImYr065491; Mon, 2 Feb 2015 20:18:48 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201502022018.t12KImYr065491@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 2 Feb 2015 20:18:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278110 - in projects/clang360-import: cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid cddl/contrib/opensolaris/cmd/dtra... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2015 20:18:58 -0000 Author: dim Date: Mon Feb 2 20:18:47 2015 New Revision: 278110 URL: https://svnweb.freebsd.org/changeset/base/278110 Log: Merge ^/head r278005 through r278109. Added: projects/clang360-import/contrib/llvm/patches/patch-06-clang-add-mips-triples.diff - copied, changed from r278109, head/contrib/llvm/patches/patch-29-clang-add-mips-triples.diff Deleted: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/Makefile Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh projects/clang360-import/contrib/gcc/config/arm/unwind-arm.c projects/clang360-import/contrib/gcc/config/arm/unwind-arm.h projects/clang360-import/contrib/libcxxrt/exception.cc projects/clang360-import/contrib/libcxxrt/typeinfo.cc projects/clang360-import/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c projects/clang360-import/etc/rc.d/Makefile projects/clang360-import/lib/libc/gen/ttyname.c projects/clang360-import/lib/libc/rpc/crypt_client.c projects/clang360-import/lib/libc/rpc/svc_vc.c projects/clang360-import/release/doc/share/mk/doc.relnotes.mk projects/clang360-import/sbin/Makefile projects/clang360-import/sbin/ifconfig/af_inet6.c projects/clang360-import/sbin/ifconfig/ifconfig.c projects/clang360-import/sys/arm/arm/busdma_machdep-v6.c projects/clang360-import/sys/arm/ti/am335x/am335x_prcm.c projects/clang360-import/sys/boot/fdt/fdt_loader_cmd.c projects/clang360-import/sys/boot/powerpc/kboot/host_syscall.S projects/clang360-import/sys/boot/powerpc/kboot/host_syscall.h projects/clang360-import/sys/boot/powerpc/kboot/hostdisk.c projects/clang360-import/sys/cam/ctl/ctl.c projects/clang360-import/sys/cam/ctl/ctl_frontend.c projects/clang360-import/sys/cam/ctl/ctl_frontend.h projects/clang360-import/sys/cam/ctl/ctl_frontend_iscsi.c projects/clang360-import/sys/cam/ctl/ctl_frontend_iscsi.h projects/clang360-import/sys/cam/ctl/ctl_ioctl.h projects/clang360-import/sys/cam/ctl/ctl_private.h projects/clang360-import/sys/cam/ctl/ctl_tpc_local.c projects/clang360-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/clang360-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c projects/clang360-import/sys/conf/options projects/clang360-import/sys/dev/ahci/ahci.h projects/clang360-import/sys/dev/ahci/ahci_pci.c projects/clang360-import/sys/dev/gpio/gpiobus.c projects/clang360-import/sys/dev/gpio/gpiobusvar.h projects/clang360-import/sys/dev/gpio/ofw_gpiobus.c projects/clang360-import/sys/dev/iscsi/iscsi_proto.h projects/clang360-import/sys/dev/usb/controller/xhci.c projects/clang360-import/sys/dev/usb/usb_core.h projects/clang360-import/sys/dev/usb/usb_msctest.c projects/clang360-import/sys/dev/usb/usb_transfer.c projects/clang360-import/sys/mips/atheros/if_argevar.h projects/clang360-import/sys/netinet/ip_output.c projects/clang360-import/sys/rpc/svc_vc.c projects/clang360-import/tools/build/mk/OptionalObsoleteFiles.inc projects/clang360-import/usr.sbin/ctladm/ctladm.8 projects/clang360-import/usr.sbin/ctladm/ctladm.c projects/clang360-import/usr.sbin/ctld/ctl.conf.5 projects/clang360-import/usr.sbin/ctld/ctld.c projects/clang360-import/usr.sbin/ctld/ctld.h projects/clang360-import/usr.sbin/ctld/kernel.c projects/clang360-import/usr.sbin/ctld/parse.y Directory Properties: projects/clang360-import/ (props changed) projects/clang360-import/cddl/ (props changed) projects/clang360-import/cddl/contrib/opensolaris/ (props changed) projects/clang360-import/contrib/gcc/ (props changed) projects/clang360-import/contrib/libcxxrt/ (props changed) projects/clang360-import/contrib/llvm/ (props changed) projects/clang360-import/etc/ (props changed) projects/clang360-import/lib/libc/ (props changed) projects/clang360-import/sbin/ (props changed) projects/clang360-import/sys/ (props changed) projects/clang360-import/sys/boot/ (props changed) projects/clang360-import/sys/boot/powerpc/kboot/ (props changed) projects/clang360-import/sys/cddl/contrib/opensolaris/ (props changed) projects/clang360-import/sys/conf/ (props changed) Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/misc/tst.include.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -31,7 +31,6 @@ if [ $# != 1 ]; then fi dtrace=$1 -CC=/usr/bin/gcc CFLAGS= doit() @@ -47,7 +46,7 @@ void main() {} EOF - if $CC $CFLAGS -o $cofile $cfile >/dev/null 2>&1; then + if cc $CFLAGS -o $cofile $cfile >/dev/null 2>&1; then $dtrace -xerrtags -C -s /dev/stdin \ >/dev/null 2>$errfile < @@ -67,11 +66,6 @@ EOF rm -f $cofile $cfile 2>/dev/null } -if [ ! -x $CC ]; then - echo "$0: bad compiler: $CC" >& 2 - exit 1 -fi - concurrency=`psrinfo | wc -l` let concurrency=concurrency*4 let i=0 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.vfork.d Mon Feb 2 20:18:47 2015 (r278110) @@ -54,7 +54,7 @@ pid$1:a.out:go: exit(1); } -syscall::rexit:entry +syscall::exit:entry /pid == $1/ { exit(0); Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.discard.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -37,7 +37,8 @@ script() $dtrace -s /dev/stdin <p_pid == $child && - args[1]->pr_psargs == "$longsleep" && args[2] == SIGHUP/ + xlate(args[1])->pr_psargs == "$longsleep" && + args[2] == SIGHUP/ { exit(0); } @@ -48,7 +49,7 @@ killer() { while true; do sleep 1 - /usr/bin/kill -HUP $child + kill -HUP $child done } @@ -58,7 +59,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -longsleep="/usr/bin/sleep 10000" +longsleep="/bin/sleep 10000" /usr/bin/nohup $longsleep & child=$! Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.exitkilled.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -48,7 +48,7 @@ sleeper() { while true; do $longsleep & - /usr/bin/sleep 1 + sleep 1 kill -9 $! done } @@ -59,7 +59,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -longsleep="/usr/bin/sleep 10000" +longsleep="/bin/sleep 10000" sleeper & child=$! @@ -67,9 +67,9 @@ child=$! script status=$? -pstop $child +kill -STOP $child pkill -P $child kill $child -prun $child +kill -CONT $child exit $status Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/proc/tst.signal.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -37,7 +37,8 @@ script() $dtrace -s /dev/stdin <pr_ppid == $child && - args[1]->pr_psargs == "$longsleep" && args[2] == SIGUSR1/ + xlate(args[1])->pr_psargs == "$longsleep" && + args[2] == SIGUSR1/ { /* * This is guaranteed to not race with signal-handle. @@ -58,7 +59,7 @@ sleeper() while true; do $longsleep & sleep 1 - /usr/bin/kill -USR1 $! + kill -USR1 $! done } @@ -68,7 +69,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -longsleep="/usr/bin/sleep 10000" +longsleep="/bin/sleep 10000" sleeper & child=$! @@ -76,9 +77,9 @@ child=$! script status=$? -pstop $child +kill -STOP $child pkill -P $child kill $child -prun $child +kill -CONT $child exit $status Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.D_MACRO_UNUSED.overflow.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.arguments.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -42,7 +42,7 @@ fi dtrace=$1 -bname=`/usr/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -43,7 +43,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/usr/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file @@ -77,7 +77,7 @@ fi #Get the groupid of the calling process using ps -groupid=`ps -o pid,pgid | grep "$$ " | awk '{print $2}' 2>/dev/null` +groupid=`ps -x -o pid,egid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -93,5 +93,5 @@ fi #Cleanup leftovers -/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.euid.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -userid=`ps -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` +userid=`ps -x -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.gid.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -groupid=`ps -o pid,gid | grep "$$ " | awk '{print $2}' 2>/dev/null` +groupid=`ps -x -o pid,gid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.ppid.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file @@ -75,12 +75,12 @@ fi #Pass current pid (I mean parent pid for .d script). -$dfilename $$ >/dev/null 2>&1 +$dfilename $$ #>/dev/null 2>&1 if [ $? -ne 0 ]; then print -u2 "Error in executing $dfilename" exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -projectid=`ps -o pid,projid | grep "$$ " | awk '{print $2}' 2>/dev/null` +projectid=`ps -x -o pid,projid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.sid.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -sessionid=`ps -o pid,sid | grep "$$ " | awk '{print $2}' 2>/dev/null` +sessionid=`ps -x -o pid,sid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get sid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.stringmacro.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$.d ## Create .d file Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.taskid.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -taskidval=`ps -o pid,taskid | grep "$$ " | awk '{print $2}' 2>/dev/null` +taskidval=`ps -x -o pid,taskid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/scripting/tst.uid.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -41,7 +41,7 @@ if [ $# != 1 ]; then fi dtrace=$1 -bname=`/bin/basename $0` +bname=`basename $0` dfilename=/var/tmp/$bname.$$ ## Create .d file @@ -69,7 +69,7 @@ EOF chmod 555 $dfilename -userid=`ps -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` +userid=`ps -x -o pid,uid | grep "$$ " | awk '{print $2}' 2>/dev/null` if [ $? -ne 0 ]; then print -u2 "unable to get uid of the current process with pid = $$" exit 1 @@ -82,5 +82,5 @@ if [ $? -ne 0 ]; then exit 1 fi -#/bin/rm -f $dfilename +rm -f $dfilename exit 0 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -48,7 +48,7 @@ fi dtrace="$1" startdir="$PWD" -dir=$(mktemp -td drtiXXXXXX) +dir=$(mktemp -d -t drtiXXXXXX) if (( $? != 0 )); then print -u2 'Could not create safe temporary directory' exit 2 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreap.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -51,7 +51,7 @@ provider test_prov { }; EOF -gcc -c test.c +cc -c test.c if [ $? -ne 0 ]; then print -u2 "failed to compile test.c" exit 1 @@ -61,7 +61,7 @@ if [ $? -ne 0 ]; then print -u2 "failed to create DOF" exit 1 fi -gcc -o test test.o prov.o +cc -o test test.o prov.o if [ $? -ne 0 ]; then print -u2 "failed to link final executable" exit 1 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.noreapring.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -51,7 +51,7 @@ provider test_prov { }; EOF -gcc -c test.c +cc -c test.c if [ $? -ne 0 ]; then print -u2 "failed to compile test.c" exit 1 @@ -61,7 +61,7 @@ if [ $? -ne 0 ]; then print -u2 "failed to create DOF" exit 1 fi -gcc -o test test.o prov.o +cc -o test test.o prov.o if [ $? -ne 0 ]; then print -u2 "failed to link final executable" exit 1 Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.reap.ksh Mon Feb 2 20:18:47 2015 (r278110) @@ -51,7 +51,7 @@ provider test_prov { }; EOF -gcc -c test.c +cc -c test.c if [ $? -ne 0 ]; then print -u2 "failed to compile test.c" exit 1 @@ -61,7 +61,7 @@ if [ $? -ne 0 ]; then print -u2 "failed to create DOF" exit 1 fi -gcc -o test test.o prov.o +cc -o test test.o prov.o if [ $? -ne 0 ]; then print -u2 "failed to link final executable" exit 1 Modified: projects/clang360-import/contrib/gcc/config/arm/unwind-arm.c ============================================================================== --- projects/clang360-import/contrib/gcc/config/arm/unwind-arm.c Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/contrib/gcc/config/arm/unwind-arm.c Mon Feb 2 20:18:47 2015 (r278110) @@ -25,6 +25,7 @@ along with this program; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#define __ARM_STATIC_INLINE #include "unwind.h" /* We add a prototype for abort here to avoid creating a dependency on @@ -1089,4 +1090,11 @@ _Unwind_GetIPInfo (struct _Unwind_Contex *ip_before_insn = 0; return _Unwind_GetGR (context, 15) & ~(_Unwind_Word)1; } + +void +_Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val) +{ + _Unwind_SetGR (context, 15, val | (_Unwind_GetGR (context, 15) & 1)); +} + #endif Modified: projects/clang360-import/contrib/gcc/config/arm/unwind-arm.h ============================================================================== --- projects/clang360-import/contrib/gcc/config/arm/unwind-arm.h Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/contrib/gcc/config/arm/unwind-arm.h Mon Feb 2 20:18:47 2015 (r278110) @@ -34,6 +34,10 @@ #define __ARM_EABI_UNWINDER__ 1 +#ifndef __ARM_STATIC_INLINE +#define __ARM_STATIC_INLINE static inline +#endif + #ifdef __cplusplus extern "C" { #endif @@ -245,7 +249,7 @@ extern "C" { return tmp; } - static inline _Unwind_Word + __ARM_STATIC_INLINE _Unwind_Word _Unwind_GetGR (_Unwind_Context *context, int regno) { _uw val; @@ -253,6 +257,12 @@ extern "C" { return val; } + __ARM_STATIC_INLINE void + _Unwind_SetGR (_Unwind_Context *context, int regno, _Unwind_Word val) + { + _Unwind_VRS_Set (context, _UVRSC_CORE, regno, _UVRSD_UINT32, &val); + } + #ifndef __FreeBSD__ /* Return the address of the instruction, not the actual IP value. */ #define _Unwind_GetIP(context) \ @@ -260,21 +270,16 @@ extern "C" { #define _Unwind_GetIPInfo(context, ip_before_insn) \ (*ip_before_insn = 0, _Unwind_GetGR (context, 15) & ~(_Unwind_Word)1) -#else - _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *); - _Unwind_Ptr _Unwind_GetIPInfo (struct _Unwind_Context *, int *); -#endif - - static inline void - _Unwind_SetGR (_Unwind_Context *context, int regno, _Unwind_Word val) - { - _Unwind_VRS_Set (context, _UVRSC_CORE, regno, _UVRSD_UINT32, &val); - } /* The dwarf unwinder doesn't understand arm/thumb state. We assume the landing pad uses the same instruction set as the call site. */ #define _Unwind_SetIP(context, val) \ _Unwind_SetGR (context, 15, val | (_Unwind_GetGR (context, 15) & 1)) +#else + _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *); + _Unwind_Ptr _Unwind_GetIPInfo (struct _Unwind_Context *, int *); + void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr); +#endif #ifdef __cplusplus } /* extern "C" */ Modified: projects/clang360-import/contrib/libcxxrt/exception.cc ============================================================================== --- projects/clang360-import/contrib/libcxxrt/exception.cc Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/contrib/libcxxrt/exception.cc Mon Feb 2 20:18:47 2015 (r278110) @@ -673,7 +673,7 @@ static _Unwind_Reason_Code trace(struct * If the failure happened by falling off the end of the stack without finding * a handler, prints a back trace before aborting. */ -#if __GNUC__ > 3 && __GNUC_MINOR__ > 2 +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) extern "C" void *__cxa_begin_catch(void *e) throw(); #else extern "C" void *__cxa_begin_catch(void *e); @@ -1191,7 +1191,7 @@ BEGIN_PERSONALITY_FUNCTION(__gxx_persona * pointer to the caught exception, which is either the adjusted pointer (for * C++ exceptions) of the unadjusted pointer (for foreign exceptions). */ -#if __GNUC__ > 3 && __GNUC_MINOR__ > 2 +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) extern "C" void *__cxa_begin_catch(void *e) throw() #else extern "C" void *__cxa_begin_catch(void *e) Modified: projects/clang360-import/contrib/libcxxrt/typeinfo.cc ============================================================================== --- projects/clang360-import/contrib/libcxxrt/typeinfo.cc Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/contrib/libcxxrt/typeinfo.cc Mon Feb 2 20:18:47 2015 (r278110) @@ -35,23 +35,15 @@ type_info::~type_info() {} bool type_info::operator==(const type_info &other) const { -#ifdef LIBCXXRT_MERGED_TYPEINFO return __type_name == other.__type_name; -#else - return __type_name == other.__type_name || strcmp(__type_name, other.__type_name) == 0; -#endif } bool type_info::operator!=(const type_info &other) const { - return !operator==(other); + return __type_name != other.__type_name; } bool type_info::before(const type_info &other) const { -#ifdef LIBCXXRT_MERGED_TYPEINFO return __type_name < other.__type_name; -#else - return strcmp(__type_name, other.__type_name) < 0; -#endif } const char* type_info::name() const { Copied and modified: projects/clang360-import/contrib/llvm/patches/patch-06-clang-add-mips-triples.diff (from r278109, head/contrib/llvm/patches/patch-29-clang-add-mips-triples.diff) ============================================================================== --- head/contrib/llvm/patches/patch-29-clang-add-mips-triples.diff Mon Feb 2 20:05:52 2015 (r278109, copy source) +++ projects/clang360-import/contrib/llvm/patches/patch-06-clang-add-mips-triples.diff Mon Feb 2 20:18:47 2015 (r278110) @@ -13,7 +13,7 @@ Index: tools/clang/lib/Driver/Tools.cpp =================================================================== --- tools/clang/lib/Driver/Tools.cpp +++ tools/clang/lib/Driver/Tools.cpp -@@ -6592,6 +6592,17 @@ void freebsd::Link::ConstructJob(Compilation &C, c +@@ -6651,6 +6651,17 @@ void freebsd::Link::ConstructJob(Compilation &C, c CmdArgs.push_back("elf32ppc_fbsd"); } Modified: projects/clang360-import/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c ============================================================================== --- projects/clang360-import/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c Mon Feb 2 20:18:47 2015 (r278110) @@ -107,9 +107,6 @@ ATF_TC_BODY(ttyname_r_err, tc) ATF_REQUIRE(rv == ERANGE); } -#ifdef __FreeBSD__ - atf_tc_expect_fail("FreeBSD returns ENOTTY instead of EBADF; see bin/191936"); -#endif rv = ttyname_r(-1, buf, ttymax); ATF_REQUIRE(rv == EBADF); Modified: projects/clang360-import/etc/rc.d/Makefile ============================================================================== --- projects/clang360-import/etc/rc.d/Makefile Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/etc/rc.d/Makefile Mon Feb 2 20:18:47 2015 (r278110) @@ -43,7 +43,6 @@ FILES= DAEMON \ growfs \ gssd \ ${_hcsecd} \ - hostapd \ hostid \ hostid_save \ hostname \ @@ -137,7 +136,6 @@ FILES= DAEMON \ var \ virecover \ watchdogd \ - wpa_supplicant \ ypbind \ yppasswdd \ ypserv \ Modified: projects/clang360-import/lib/libc/gen/ttyname.c ============================================================================== --- projects/clang360-import/lib/libc/gen/ttyname.c Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/lib/libc/gen/ttyname.c Mon Feb 2 20:18:47 2015 (r278110) @@ -65,7 +65,7 @@ ttyname_r(int fd, char *buf, size_t len) /* Must be a terminal. */ if (!isatty(fd)) - return (ENOTTY); + return (errno); /* Must have enough room */ if (len <= sizeof(_PATH_DEV)) return (ERANGE); @@ -73,7 +73,7 @@ ttyname_r(int fd, char *buf, size_t len) strcpy(buf, _PATH_DEV); used = strlen(buf); if (fdevname_r(fd, buf + used, len - used) == NULL) - return (ENOTTY); + return (errno == EINVAL ? ERANGE : errno); return (0); } Modified: projects/clang360-import/lib/libc/rpc/crypt_client.c ============================================================================== --- projects/clang360-import/lib/libc/rpc/crypt_client.c Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/lib/libc/rpc/crypt_client.c Mon Feb 2 20:18:47 2015 (r278110) @@ -64,6 +64,7 @@ _des_crypt_call(buf, len, dparms) } if (nconf == NULL) { warnx("getnetconfig: %s", nc_sperror()); + endnetconfig(localhandle); return(DESERR_HWERROR); } clnt = clnt_tp_create(NULL, CRYPT_PROG, CRYPT_VERS, nconf); Modified: projects/clang360-import/lib/libc/rpc/svc_vc.c ============================================================================== --- projects/clang360-import/lib/libc/rpc/svc_vc.c Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/lib/libc/rpc/svc_vc.c Mon Feb 2 20:18:47 2015 (r278110) @@ -128,7 +128,7 @@ svc_vc_create(fd, sendsize, recvsize) u_int sendsize; u_int recvsize; { - SVCXPRT *xprt; + SVCXPRT *xprt = NULL; struct cf_rendezvous *r = NULL; struct __rpc_sockinfo si; struct sockaddr_storage sslocal; Modified: projects/clang360-import/release/doc/share/mk/doc.relnotes.mk ============================================================================== --- projects/clang360-import/release/doc/share/mk/doc.relnotes.mk Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/release/doc/share/mk/doc.relnotes.mk Mon Feb 2 20:18:47 2015 (r278110) @@ -17,6 +17,7 @@ PROFILING+= --param profile.attribute "' XSLTPROCFLAGS+= --param release.url "'${RELEASEURL}'" XSLTPROCFLAGS+= --param release.branch "'${RELEASEBRANCH}'" XSLTPROCFLAGS+= --param release.maillist "'${RELEASEMAILLIST}'" +XSLTPROCFLAGS+= --param toc.section.depth "'3'" # Find the RELNOTESng document catalogs EXTRA_CATALOGS+= file://${RELN_ROOT}/${LANGCODE}/share/xml/catalog.xml \ Modified: projects/clang360-import/sbin/Makefile ============================================================================== --- projects/clang360-import/sbin/Makefile Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/sbin/Makefile Mon Feb 2 20:18:47 2015 (r278110) @@ -91,6 +91,11 @@ SUBDIR+= hastctl SUBDIR+= hastd .endif +.if ${MK_INET6} != "no" +SUBDIR+= ping6 +SUBDIR+= rtsol +.endif + .if ${MK_IPFILTER} != "no" SUBDIR+= ipf .endif @@ -114,15 +119,6 @@ SUBDIR+= pfctl SUBDIR+= pflogd .endif -.if ${MK_INET6} != "no" -SUBDIR+= ping6 -SUBDIR+= rtsol -.endif - -.if ${MK_ISCSI} != "no" -SUBDIR+= iscontrol -.endif - .if ${MK_QUOTAS} != "no" SUBDIR+= quotacheck .endif Modified: projects/clang360-import/sbin/ifconfig/af_inet6.c ============================================================================== --- projects/clang360-import/sbin/ifconfig/af_inet6.c Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/sbin/ifconfig/af_inet6.c Mon Feb 2 20:18:47 2015 (r278110) @@ -58,8 +58,8 @@ static const char rcsid[] = #include "ifconfig.h" static struct in6_ifreq in6_ridreq; -static struct in6_aliasreq in6_addreq = - { .ifra_flags = 0, +static struct in6_aliasreq in6_addreq = + { .ifra_flags = 0, .ifra_lifetime = { 0, 0, ND6_INFINITE_LIFETIME, ND6_INFINITE_LIFETIME } }; static int ip6lifetime; @@ -265,14 +265,16 @@ in6_status(int s __unused, const struct printf("pltime "); if (lifetime.ia6t_preferred) { printf("%s ", lifetime.ia6t_preferred < now.tv_sec - ? "0" : sec2str(lifetime.ia6t_preferred - now.tv_sec)); + ? "0" : + sec2str(lifetime.ia6t_preferred - now.tv_sec)); } else printf("infty "); printf("vltime "); if (lifetime.ia6t_expire) { printf("%s ", lifetime.ia6t_expire < now.tv_sec - ? "0" : sec2str(lifetime.ia6t_expire - now.tv_sec)); + ? "0" : + sec2str(lifetime.ia6t_expire - now.tv_sec)); } else printf("infty "); } @@ -347,25 +349,25 @@ in6_getaddr(const char *s, int which) static int prefix(void *val, int size) { - u_char *name = (u_char *)val; - int byte, bit, plen = 0; + u_char *name = (u_char *)val; + int byte, bit, plen = 0; - for (byte = 0; byte < size; byte++, plen += 8) - if (name[byte] != 0xff) - break; + for (byte = 0; byte < size; byte++, plen += 8) + if (name[byte] != 0xff) + break; if (byte == size) return (plen); for (bit = 7; bit != 0; bit--, plen++) - if (!(name[byte] & (1 << bit))) - break; - for (; bit != 0; bit--) - if (name[byte] & (1 << bit)) - return(0); - byte++; - for (; byte < size; byte++) - if (name[byte]) - return(0); - return (plen); + if (!(name[byte] & (1 << bit))) + break; + for (; bit != 0; bit--) + if (name[byte] & (1 << bit)) + return(0); + byte++; + for (; byte < size; byte++) + if (name[byte]) + return(0); + return (plen); } static char * @@ -509,7 +511,11 @@ in6_Lopt_cb(const char *optarg __unused) { ip6lifetime++; /* print IPv6 address lifetime */ } -static struct option in6_Lopt = { .opt = "L", .opt_usage = "[-L]", .cb = in6_Lopt_cb }; +static struct option in6_Lopt = { + .opt = "L", + .opt_usage = "[-L]", + .cb = in6_Lopt_cb +}; static __constructor void inet6_ctor(void) Modified: projects/clang360-import/sbin/ifconfig/ifconfig.c ============================================================================== --- projects/clang360-import/sbin/ifconfig/ifconfig.c Mon Feb 2 20:05:52 2015 (r278109) +++ projects/clang360-import/sbin/ifconfig/ifconfig.c Mon Feb 2 20:18:47 2015 (r278110) @@ -47,6 +47,7 @@ static const char rcsid[] = #include #include #include +#include #include #include @@ -110,6 +111,15 @@ static void af_other_status(int); static struct option *opts = NULL; +struct ifa_order_elt { + int if_order; + int af_orders[255]; + struct ifaddrs *ifa; + TAILQ_ENTRY(ifa_order_elt) link; +}; + +TAILQ_HEAD(ifa_queue, ifa_order_elt); + void opt_register(struct option *p) { @@ -141,16 +151,165 @@ usage(void) exit(1); } +#define ORDERS_SIZE(x) sizeof(x) / sizeof(x[0]) + +static int +calcorders(struct ifaddrs *ifa, struct ifa_queue *q) +{ + struct ifaddrs *prev; + struct ifa_order_elt *cur; + unsigned int ord, af, ifa_ord; + + prev = NULL; + cur = NULL; + ord = 0; + ifa_ord = 0; + + while (ifa != NULL) { + if (prev == NULL || + strcmp(ifa->ifa_name, prev->ifa_name) != 0) { + cur = calloc(1, sizeof(*cur)); + + if (cur == NULL) + return (-1); + + TAILQ_INSERT_TAIL(q, cur, link); + cur->if_order = ifa_ord ++; + cur->ifa = ifa; + ord = 0; + } + + if (ifa->ifa_addr) { + af = ifa->ifa_addr->sa_family; + + if (af < ORDERS_SIZE(cur->af_orders) && + cur->af_orders[af] == 0) + cur->af_orders[af] = ++ord; + } + prev = ifa; + ifa = ifa->ifa_next; + } + + return (0); +} + +static int +cmpifaddrs(struct ifaddrs *a, struct ifaddrs *b, struct ifa_queue *q) +{ + struct ifa_order_elt *cur, *e1, *e2; + unsigned int af1, af2; + int ret; + + e1 = e2 = NULL; + + ret = strcmp(a->ifa_name, b->ifa_name); + if (ret != 0) { + TAILQ_FOREACH(cur, q, link) { + if (e1 && e2) + break; + + if (strcmp(cur->ifa->ifa_name, a->ifa_name) == 0) + e1 = cur; + else if (strcmp(cur->ifa->ifa_name, b->ifa_name) == 0) + e2 = cur; + } + + if (!e1 || !e2) + return (0); + else + return (e1->if_order - e2->if_order); + + } else if (a->ifa_addr != NULL && b->ifa_addr != NULL) { + TAILQ_FOREACH(cur, q, link) { + if (strcmp(cur->ifa->ifa_name, a->ifa_name) == 0) { + e1 = cur; + break; + } + } + + if (!e1) + return (0); + + af1 = a->ifa_addr->sa_family; + af2 = b->ifa_addr->sa_family; + + if (af1 < ORDERS_SIZE(e1->af_orders) && + af2 < ORDERS_SIZE(e1->af_orders)) + return (e1->af_orders[af1] - e1->af_orders[af2]); + } + + return (0); +} + +#undef ORDERS_SIZE + +static struct ifaddrs * +sortifaddrs(struct ifaddrs *list, + int (*compare)(struct ifaddrs *, struct ifaddrs *, struct ifa_queue *), + struct ifa_queue *q) +{ + struct ifaddrs *right, *temp, *last, *result, *next, *tail; + + right = list; + temp = list; + last = list; + result = NULL; + next = NULL; + tail = NULL; + + if (!list || !list->ifa_next) + return (list); + + while (temp && temp->ifa_next) { + last = right; + right = right->ifa_next; + temp = temp->ifa_next->ifa_next; + } + + last->ifa_next = NULL; + + list = sortifaddrs(list, compare, q); + right = sortifaddrs(right, compare, q); + + while (list || right) { + + if (!right) { + next = list; + list = list->ifa_next; + } else if (!list) { + next = right; + right = right->ifa_next; + } else if (compare(list, right, q) <= 0) { + next = list; + list = list->ifa_next; + } else { + next = right; + right = right->ifa_next; + } + + if (!result) + result = next; + else + tail->ifa_next = next; + + tail = next; + } + + return (result); +} + int main(int argc, char *argv[]) { int c, all, namesonly, downonly, uponly; const struct afswtch *afp = NULL; int ifindex; - struct ifaddrs *ifap, *ifa; + struct ifaddrs *ifap, *sifap, *ifa; struct ifreq paifr; const struct sockaddr_dl *sdl; char options[1024], *cp, *namecp = NULL; + struct ifa_queue q = TAILQ_HEAD_INITIALIZER(q); + struct ifa_order_elt *cur, *tmp; const char *ifname; struct option *p; size_t iflen; @@ -285,9 +444,19 @@ main(int argc, char *argv[]) if (getifaddrs(&ifap) != 0) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Feb 2 20:34:45 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C13B39C; Mon, 2 Feb 2015 20:34:45 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AA9B7F0F; Mon, 2 Feb 2015 20:34:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t12KYjaG074765; Mon, 2 Feb 2015 20:34:45 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t12KYfrL074744; Mon, 2 Feb 2015 20:34:41 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201502022034.t12KYfrL074744@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 2 Feb 2015 20:34:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278112 - in projects/clang360-import: contrib/llvm/include/llvm/Target contrib/llvm/lib/CodeGen contrib/llvm/lib/Target/X86 lib/clang/libllvmx86codegen X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2015 20:34:46 -0000 Author: dim Date: Mon Feb 2 20:34:40 2015 New Revision: 278112 URL: https://svnweb.freebsd.org/changeset/base/278112 Log: Pull in r227752 from upstream llvm trunk (by Michael Kuperstein): [X86] Convert esp-relative movs of function arguments to pushes, step 2 This moves the transformation introduced in r223757 into a separate MI pass. This allows it to cover many more cases (not only cases where there must be a reserved call frame), and perform rudimentary call folding. It still doesn't have a heuristic, so it is enabled only for optsize/minsize, with stack alignment <= 8, where it ought to be a fairly clear win. (Re-commit of r227728) Differential Revision: http://reviews.llvm.org/D6789 This helps to get sys/boot/i386/boot2 below the required size again, when optimizing with -Oz. Added: projects/clang360-import/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp Modified: projects/clang360-import/contrib/llvm/include/llvm/Target/TargetFrameLowering.h projects/clang360-import/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp projects/clang360-import/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp projects/clang360-import/contrib/llvm/lib/Target/X86/X86.h projects/clang360-import/contrib/llvm/lib/Target/X86/X86FastISel.cpp projects/clang360-import/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp projects/clang360-import/contrib/llvm/lib/Target/X86/X86FrameLowering.h projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrCompiler.td projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrInfo.h projects/clang360-import/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.h projects/clang360-import/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp projects/clang360-import/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp projects/clang360-import/lib/clang/libllvmx86codegen/Makefile Modified: projects/clang360-import/contrib/llvm/include/llvm/Target/TargetFrameLowering.h ============================================================================== --- projects/clang360-import/contrib/llvm/include/llvm/Target/TargetFrameLowering.h Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/include/llvm/Target/TargetFrameLowering.h Mon Feb 2 20:34:40 2015 (r278112) @@ -193,6 +193,11 @@ public: return hasReservedCallFrame(MF) || hasFP(MF); } + // needsFrameIndexResolution - Do we need to perform FI resolution for + // this function. Normally, this is required only when the function + // has any stack objects. However, targets may want to override this. + virtual bool needsFrameIndexResolution(const MachineFunction &MF) const; + /// getFrameIndexOffset - Returns the displacement from the frame register to /// the stack frame of the specified index. virtual int getFrameIndexOffset(const MachineFunction &MF, int FI) const; Modified: projects/clang360-import/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp Mon Feb 2 20:34:40 2015 (r278112) @@ -703,7 +703,8 @@ void PEI::insertPrologEpilogCode(Machine /// register references and actual offsets. /// void PEI::replaceFrameIndices(MachineFunction &Fn) { - if (!Fn.getFrameInfo()->hasStackObjects()) return; // Nothing to do? + const TargetFrameLowering &TFI = *Fn.getSubtarget().getFrameLowering(); + if (!TFI.needsFrameIndexResolution(Fn)) return; // Store SPAdj at exit of a basic block. SmallVector SPState; @@ -769,13 +770,6 @@ void PEI::replaceFrameIndices(MachineBas continue; } - // If we are looking at a call sequence, we need to keep track of - // the SP adjustment made by each instruction in the sequence. - // This includes both the frame setup/destroy pseudos (handled above), - // as well as other instructions that have side effects w.r.t the SP. - if (InsideCallSequence) - SPAdj += TII.getSPAdjust(I); - MachineInstr *MI = I; bool DoIncr = true; for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { @@ -854,6 +848,16 @@ void PEI::replaceFrameIndices(MachineBas break; } + // If we are looking at a call sequence, we need to keep track of + // the SP adjustment made by each instruction in the sequence. + // This includes both the frame setup/destroy pseudos (handled above), + // as well as other instructions that have side effects w.r.t the SP. + // Note that this must come after eliminateFrameIndex, because + // if I itself referred to a frame index, we shouldn't count its own + // adjustment. + if (MI && InsideCallSequence) + SPAdj += TII.getSPAdjust(MI); + if (DoIncr && I != BB->end()) ++I; // Update register states. Modified: projects/clang360-import/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp Mon Feb 2 20:34:40 2015 (r278112) @@ -42,3 +42,8 @@ int TargetFrameLowering::getFrameIndexRe FrameReg = RI->getFrameRegister(MF); return getFrameIndexOffset(MF, FI); } + +bool TargetFrameLowering::needsFrameIndexResolution( + const MachineFunction &MF) const { + return MF.getFrameInfo()->hasStackObjects(); +} Modified: projects/clang360-import/contrib/llvm/lib/Target/X86/X86.h ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/X86/X86.h Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86.h Mon Feb 2 20:34:40 2015 (r278112) @@ -67,6 +67,11 @@ FunctionPass *createX86PadShortFunctions /// to eliminate execution delays in some Atom processors. FunctionPass *createX86FixupLEAs(); +/// createX86CallFrameOptimization - Return a pass that optimizes +/// the code-size of x86 call sequences. This is done by replacing +/// esp-relative movs with pushes. +FunctionPass *createX86CallFrameOptimization(); + } // End llvm namespace #endif Added: projects/clang360-import/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp Mon Feb 2 20:34:40 2015 (r278112) @@ -0,0 +1,400 @@ +//===----- X86CallFrameOptimization.cpp - Optimize x86 call sequences -----===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines a pass that optimizes call sequences on x86. +// Currently, it converts movs of function parameters onto the stack into +// pushes. This is beneficial for two main reasons: +// 1) The push instruction encoding is much smaller than an esp-relative mov +// 2) It is possible to push memory arguments directly. So, if the +// the transformation is preformed pre-reg-alloc, it can help relieve +// register pressure. +// +//===----------------------------------------------------------------------===// + +#include + +#include "X86.h" +#include "X86InstrInfo.h" +#include "X86Subtarget.h" +#include "X86MachineFunctionInfo.h" +#include "llvm/ADT/Statistic.h" +#include "llvm/CodeGen/MachineFunctionPass.h" +#include "llvm/CodeGen/MachineInstrBuilder.h" +#include "llvm/CodeGen/MachineRegisterInfo.h" +#include "llvm/CodeGen/Passes.h" +#include "llvm/IR/Function.h" +#include "llvm/Support/Debug.h" +#include "llvm/Support/raw_ostream.h" +#include "llvm/Target/TargetInstrInfo.h" + +using namespace llvm; + +#define DEBUG_TYPE "x86-cf-opt" + +cl::opt NoX86CFOpt("no-x86-call-frame-opt", + cl::desc("Avoid optimizing x86 call frames for size"), + cl::init(false), cl::Hidden); + +namespace { +class X86CallFrameOptimization : public MachineFunctionPass { +public: + X86CallFrameOptimization() : MachineFunctionPass(ID) {} + + bool runOnMachineFunction(MachineFunction &MF) override; + +private: + bool shouldPerformTransformation(MachineFunction &MF); + + bool adjustCallSequence(MachineFunction &MF, MachineBasicBlock &MBB, + MachineBasicBlock::iterator I); + + MachineInstr *canFoldIntoRegPush(MachineBasicBlock::iterator FrameSetup, + unsigned Reg); + + const char *getPassName() const override { + return "X86 Optimize Call Frame"; + } + + const TargetInstrInfo *TII; + const TargetFrameLowering *TFL; + const MachineRegisterInfo *MRI; + static char ID; +}; + +char X86CallFrameOptimization::ID = 0; +} + +FunctionPass *llvm::createX86CallFrameOptimization() { + return new X86CallFrameOptimization(); +} + +// This checks whether the transformation is legal and profitable +bool X86CallFrameOptimization::shouldPerformTransformation(MachineFunction &MF) { + if (NoX86CFOpt.getValue()) + return false; + + // We currently only support call sequences where *all* parameters. + // are passed on the stack. + // No point in running this in 64-bit mode, since some arguments are + // passed in-register in all common calling conventions, so the pattern + // we're looking for will never match. + const X86Subtarget &STI = MF.getTarget().getSubtarget(); + if (STI.is64Bit()) + return false; + + // You would expect straight-line code between call-frame setup and + // call-frame destroy. You would be wrong. There are circumstances (e.g. + // CMOV_GR8 expansion of a select that feeds a function call!) where we can + // end up with the setup and the destroy in different basic blocks. + // This is bad, and breaks SP adjustment. + // So, check that all of the frames in the function are closed inside + // the same block, and, for good measure, that there are no nested frames. + int FrameSetupOpcode = TII->getCallFrameSetupOpcode(); + int FrameDestroyOpcode = TII->getCallFrameDestroyOpcode(); + for (MachineBasicBlock &BB : MF) { + bool InsideFrameSequence = false; + for (MachineInstr &MI : BB) { + if (MI.getOpcode() == FrameSetupOpcode) { + if (InsideFrameSequence) + return false; + InsideFrameSequence = true; + } + else if (MI.getOpcode() == FrameDestroyOpcode) { + if (!InsideFrameSequence) + return false; + InsideFrameSequence = false; + } + } + + if (InsideFrameSequence) + return false; + } + + // Now that we know the transformation is legal, check if it is + // profitable. + // TODO: Add a heuristic that actually looks at the function, + // and enable this for more cases. + + // This transformation is always a win when we expected to have + // a reserved call frame. Under other circumstances, it may be either + // a win or a loss, and requires a heuristic. + // For now, enable it only for the relatively clear win cases. + bool CannotReserveFrame = MF.getFrameInfo()->hasVarSizedObjects(); + if (CannotReserveFrame) + return true; + + // For now, don't even try to evaluate the profitability when + // not optimizing for size. + AttributeSet FnAttrs = MF.getFunction()->getAttributes(); + bool OptForSize = + FnAttrs.hasAttribute(AttributeSet::FunctionIndex, + Attribute::OptimizeForSize) || + FnAttrs.hasAttribute(AttributeSet::FunctionIndex, Attribute::MinSize); + + if (!OptForSize) + return false; + + // Stack re-alignment can make this unprofitable even in terms of size. + // As mentioned above, a better heuristic is needed. For now, don't do this + // when the required alignment is above 8. (4 would be the safe choice, but + // some experimentation showed 8 is generally good). + if (TFL->getStackAlignment() > 8) + return false; + + return true; +} + +bool X86CallFrameOptimization::runOnMachineFunction(MachineFunction &MF) { + TII = MF.getSubtarget().getInstrInfo(); + TFL = MF.getSubtarget().getFrameLowering(); + MRI = &MF.getRegInfo(); + + if (!shouldPerformTransformation(MF)) + return false; + + int FrameSetupOpcode = TII->getCallFrameSetupOpcode(); + + bool Changed = false; + + for (MachineFunction::iterator BB = MF.begin(), E = MF.end(); BB != E; ++BB) + for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ++I) + if (I->getOpcode() == FrameSetupOpcode) + Changed |= adjustCallSequence(MF, *BB, I); + + return Changed; +} + +bool X86CallFrameOptimization::adjustCallSequence(MachineFunction &MF, + MachineBasicBlock &MBB, + MachineBasicBlock::iterator I) { + + // Check that this particular call sequence is amenable to the + // transformation. + const X86RegisterInfo &RegInfo = *static_cast( + MF.getSubtarget().getRegisterInfo()); + unsigned StackPtr = RegInfo.getStackRegister(); + int FrameDestroyOpcode = TII->getCallFrameDestroyOpcode(); + + // We expect to enter this at the beginning of a call sequence + assert(I->getOpcode() == TII->getCallFrameSetupOpcode()); + MachineBasicBlock::iterator FrameSetup = I++; + + + // For globals in PIC mode, we can have some LEAs here. + // Ignore them, they don't bother us. + // TODO: Extend this to something that covers more cases. + while (I->getOpcode() == X86::LEA32r) + ++I; + + // We expect a copy instruction here. + // TODO: The copy instruction is a lowering artifact. + // We should also support a copy-less version, where the stack + // pointer is used directly. + if (!I->isCopy() || !I->getOperand(0).isReg()) + return false; + MachineBasicBlock::iterator SPCopy = I++; + StackPtr = SPCopy->getOperand(0).getReg(); + + // Scan the call setup sequence for the pattern we're looking for. + // We only handle a simple case - a sequence of MOV32mi or MOV32mr + // instructions, that push a sequence of 32-bit values onto the stack, with + // no gaps between them. + SmallVector MovVector(4, nullptr); + unsigned int MaxAdjust = FrameSetup->getOperand(0).getImm() / 4; + if (MaxAdjust > 4) + MovVector.resize(MaxAdjust, nullptr); + + do { + int Opcode = I->getOpcode(); + if (Opcode != X86::MOV32mi && Opcode != X86::MOV32mr) + break; + + // We only want movs of the form: + // movl imm/r32, k(%esp) + // If we run into something else, bail. + // Note that AddrBaseReg may, counter to its name, not be a register, + // but rather a frame index. + // TODO: Support the fi case. This should probably work now that we + // have the infrastructure to track the stack pointer within a call + // sequence. + if (!I->getOperand(X86::AddrBaseReg).isReg() || + (I->getOperand(X86::AddrBaseReg).getReg() != StackPtr) || + !I->getOperand(X86::AddrScaleAmt).isImm() || + (I->getOperand(X86::AddrScaleAmt).getImm() != 1) || + (I->getOperand(X86::AddrIndexReg).getReg() != X86::NoRegister) || + (I->getOperand(X86::AddrSegmentReg).getReg() != X86::NoRegister) || + !I->getOperand(X86::AddrDisp).isImm()) + return false; + + int64_t StackDisp = I->getOperand(X86::AddrDisp).getImm(); + assert(StackDisp >= 0 && "Negative stack displacement when passing parameters"); + + // We really don't want to consider the unaligned case. + if (StackDisp % 4) + return false; + StackDisp /= 4; + + assert((size_t)StackDisp < MovVector.size() && + "Function call has more parameters than the stack is adjusted for."); + + // If the same stack slot is being filled twice, something's fishy. + if (MovVector[StackDisp] != nullptr) + return false; + MovVector[StackDisp] = I; + + ++I; + } while (I != MBB.end()); + + // We now expect the end of the sequence - a call and a stack adjust. + if (I == MBB.end()) + return false; + + // For PCrel calls, we expect an additional COPY of the basereg. + // If we find one, skip it. + if (I->isCopy()) { + if (I->getOperand(1).getReg() == + MF.getInfo()->getGlobalBaseReg()) + ++I; + else + return false; + } + + if (!I->isCall()) + return false; + MachineBasicBlock::iterator Call = I; + if ((++I)->getOpcode() != FrameDestroyOpcode) + return false; + + // Now, go through the vector, and see that we don't have any gaps, + // but only a series of 32-bit MOVs. + + int64_t ExpectedDist = 0; + auto MMI = MovVector.begin(), MME = MovVector.end(); + for (; MMI != MME; ++MMI, ExpectedDist += 4) + if (*MMI == nullptr) + break; + + // If the call had no parameters, do nothing + if (!ExpectedDist) + return false; + + // We are either at the last parameter, or a gap. + // Make sure it's not a gap + for (; MMI != MME; ++MMI) + if (*MMI != nullptr) + return false; + + // Ok, we can in fact do the transformation for this call. + // Do not remove the FrameSetup instruction, but adjust the parameters. + // PEI will end up finalizing the handling of this. + FrameSetup->getOperand(1).setImm(ExpectedDist); + + DebugLoc DL = I->getDebugLoc(); + // Now, iterate through the vector in reverse order, and replace the movs + // with pushes. MOVmi/MOVmr doesn't have any defs, so no need to + // replace uses. + for (int Idx = (ExpectedDist / 4) - 1; Idx >= 0; --Idx) { + MachineBasicBlock::iterator MOV = *MovVector[Idx]; + MachineOperand PushOp = MOV->getOperand(X86::AddrNumOperands); + if (MOV->getOpcode() == X86::MOV32mi) { + unsigned PushOpcode = X86::PUSHi32; + // If the operand is a small (8-bit) immediate, we can use a + // PUSH instruction with a shorter encoding. + // Note that isImm() may fail even though this is a MOVmi, because + // the operand can also be a symbol. + if (PushOp.isImm()) { + int64_t Val = PushOp.getImm(); + if (isInt<8>(Val)) + PushOpcode = X86::PUSH32i8; + } + BuildMI(MBB, Call, DL, TII->get(PushOpcode)).addOperand(PushOp); + } else { + unsigned int Reg = PushOp.getReg(); + + // If PUSHrmm is not slow on this target, try to fold the source of the + // push into the instruction. + const X86Subtarget &ST = MF.getTarget().getSubtarget(); + bool SlowPUSHrmm = ST.isAtom() || ST.isSLM(); + + // Check that this is legal to fold. Right now, we're extremely + // conservative about that. + MachineInstr *DefMov = nullptr; + if (!SlowPUSHrmm && (DefMov = canFoldIntoRegPush(FrameSetup, Reg))) { + MachineInstr *Push = BuildMI(MBB, Call, DL, TII->get(X86::PUSH32rmm)); + + unsigned NumOps = DefMov->getDesc().getNumOperands(); + for (unsigned i = NumOps - X86::AddrNumOperands; i != NumOps; ++i) + Push->addOperand(DefMov->getOperand(i)); + + DefMov->eraseFromParent(); + } else { + BuildMI(MBB, Call, DL, TII->get(X86::PUSH32r)).addReg(Reg).getInstr(); + } + } + + MBB.erase(MOV); + } + + // The stack-pointer copy is no longer used in the call sequences. + // There should not be any other users, but we can't commit to that, so: + if (MRI->use_empty(SPCopy->getOperand(0).getReg())) + SPCopy->eraseFromParent(); + + // Once we've done this, we need to make sure PEI doesn't assume a reserved + // frame. + X86MachineFunctionInfo *FuncInfo = MF.getInfo(); + FuncInfo->setHasPushSequences(true); + + return true; +} + +MachineInstr *X86CallFrameOptimization::canFoldIntoRegPush( + MachineBasicBlock::iterator FrameSetup, unsigned Reg) { + // Do an extremely restricted form of load folding. + // ISel will often create patterns like: + // movl 4(%edi), %eax + // movl 8(%edi), %ecx + // movl 12(%edi), %edx + // movl %edx, 8(%esp) + // movl %ecx, 4(%esp) + // movl %eax, (%esp) + // call + // Get rid of those with prejudice. + if (!TargetRegisterInfo::isVirtualRegister(Reg)) + return nullptr; + + // Make sure this is the only use of Reg. + if (!MRI->hasOneNonDBGUse(Reg)) + return nullptr; + + MachineBasicBlock::iterator DefMI = MRI->getVRegDef(Reg); + + // Make sure the def is a MOV from memory. + // If the def is an another block, give up. + if (DefMI->getOpcode() != X86::MOV32rm || + DefMI->getParent() != FrameSetup->getParent()) + return nullptr; + + // Be careful with movs that load from a stack slot, since it may get + // resolved incorrectly. + // TODO: Again, we already have the infrastructure, so this should work. + if (!DefMI->getOperand(1).isReg()) + return nullptr; + + // Now, make sure everything else up until the ADJCALLSTACK is a sequence + // of MOVs. To be less conservative would require duplicating a lot of the + // logic from PeepholeOptimizer. + // FIXME: A possibly better approach would be to teach the PeepholeOptimizer + // to be smarter about folding into pushes. + for (auto I = DefMI; I != FrameSetup; ++I) + if (I->getOpcode() != X86::MOV32rm) + return nullptr; + + return DefMI; +} Modified: projects/clang360-import/contrib/llvm/lib/Target/X86/X86FastISel.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/X86/X86FastISel.cpp Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86FastISel.cpp Mon Feb 2 20:34:40 2015 (r278112) @@ -2735,7 +2735,7 @@ bool X86FastISel::fastLowerCall(CallLowe // Issue CALLSEQ_START unsigned AdjStackDown = TII.getCallFrameSetupOpcode(); BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(AdjStackDown)) - .addImm(NumBytes); + .addImm(NumBytes).addImm(0); // Walk the register/memloc assignments, inserting copies/loads. const X86RegisterInfo *RegInfo = static_cast( Modified: projects/clang360-import/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp Mon Feb 2 20:34:40 2015 (r278112) @@ -38,7 +38,34 @@ using namespace llvm; extern cl::opt ForceStackAlign; bool X86FrameLowering::hasReservedCallFrame(const MachineFunction &MF) const { - return !MF.getFrameInfo()->hasVarSizedObjects(); + return !MF.getFrameInfo()->hasVarSizedObjects() && + !MF.getInfo()->getHasPushSequences(); +} + +/// canSimplifyCallFramePseudos - If there is a reserved call frame, the +/// call frame pseudos can be simplified. Having a FP, as in the default +/// implementation, is not sufficient here since we can't always use it. +/// Use a more nuanced condition. +bool +X86FrameLowering::canSimplifyCallFramePseudos(const MachineFunction &MF) const { + const X86RegisterInfo *TRI = static_cast + (MF.getSubtarget().getRegisterInfo()); + return hasReservedCallFrame(MF) || + (hasFP(MF) && !TRI->needsStackRealignment(MF)) + || TRI->hasBasePointer(MF); +} + +// needsFrameIndexResolution - Do we need to perform FI resolution for +// this function. Normally, this is required only when the function +// has any stack objects. However, FI resolution actually has another job, +// not apparent from the title - it resolves callframesetup/destroy +// that were not simplified earlier. +// So, this is required for x86 functions that have push sequences even +// when there are no stack objects. +bool +X86FrameLowering::needsFrameIndexResolution(const MachineFunction &MF) const { + return MF.getFrameInfo()->hasStackObjects() || + MF.getInfo()->getHasPushSequences(); } /// hasFP - Return true if the specified function should have a dedicated frame @@ -93,16 +120,6 @@ static unsigned getANDriOpcode(bool IsLP return X86::AND32ri; } -static unsigned getPUSHiOpcode(bool IsLP64, MachineOperand MO) { - // We don't support LP64 for now. - assert(!IsLP64); - - if (MO.isImm() && isInt<8>(MO.getImm())) - return X86::PUSH32i8; - - return X86::PUSHi32;; -} - static unsigned getLEArOpcode(unsigned IsLP64) { return IsLP64 ? X86::LEA64r : X86::LEA32r; } @@ -1848,100 +1865,6 @@ void X86FrameLowering::adjustForHiPEProl #endif } -bool X86FrameLowering:: -convertArgMovsToPushes(MachineFunction &MF, MachineBasicBlock &MBB, - MachineBasicBlock::iterator I, uint64_t Amount) const { - const TargetInstrInfo &TII = *MF.getSubtarget().getInstrInfo(); - const X86RegisterInfo &RegInfo = *static_cast( - MF.getSubtarget().getRegisterInfo()); - unsigned StackPtr = RegInfo.getStackRegister(); - - // Scan the call setup sequence for the pattern we're looking for. - // We only handle a simple case now - a sequence of MOV32mi or MOV32mr - // instructions, that push a sequence of 32-bit values onto the stack, with - // no gaps. - std::map MovMap; - do { - int Opcode = I->getOpcode(); - if (Opcode != X86::MOV32mi && Opcode != X86::MOV32mr) - break; - - // We only want movs of the form: - // movl imm/r32, k(%ecx) - // If we run into something else, bail - // Note that AddrBaseReg may, counterintuitively, not be a register... - if (!I->getOperand(X86::AddrBaseReg).isReg() || - (I->getOperand(X86::AddrBaseReg).getReg() != StackPtr) || - !I->getOperand(X86::AddrScaleAmt).isImm() || - (I->getOperand(X86::AddrScaleAmt).getImm() != 1) || - (I->getOperand(X86::AddrIndexReg).getReg() != X86::NoRegister) || - (I->getOperand(X86::AddrSegmentReg).getReg() != X86::NoRegister) || - !I->getOperand(X86::AddrDisp).isImm()) - return false; - - int64_t StackDisp = I->getOperand(X86::AddrDisp).getImm(); - - // We don't want to consider the unaligned case. - if (StackDisp % 4) - return false; - - // If the same stack slot is being filled twice, something's fishy. - if (!MovMap.insert(std::pair(StackDisp, I)).second) - return false; - - ++I; - } while (I != MBB.end()); - - // We now expect the end of the sequence - a call and a stack adjust. - if (I == MBB.end()) - return false; - if (!I->isCall()) - return false; - MachineBasicBlock::iterator Call = I; - if ((++I)->getOpcode() != TII.getCallFrameDestroyOpcode()) - return false; - - // Now, go through the map, and see that we don't have any gaps, - // but only a series of 32-bit MOVs. - // Since std::map provides ordered iteration, the original order - // of the MOVs doesn't matter. - int64_t ExpectedDist = 0; - for (auto MMI = MovMap.begin(), MME = MovMap.end(); MMI != MME; - ++MMI, ExpectedDist += 4) - if (MMI->first != ExpectedDist) - return false; - - // Ok, everything looks fine. Do the transformation. - DebugLoc DL = I->getDebugLoc(); - - // It's possible the original stack adjustment amount was larger than - // that done by the pushes. If so, we still need a SUB. - Amount -= ExpectedDist; - if (Amount) { - MachineInstr* Sub = BuildMI(MBB, Call, DL, - TII.get(getSUBriOpcode(false, Amount)), StackPtr) - .addReg(StackPtr).addImm(Amount); - Sub->getOperand(3).setIsDead(); - } - - // Now, iterate through the map in reverse order, and replace the movs - // with pushes. MOVmi/MOVmr doesn't have any defs, so need to replace uses. - for (auto MMI = MovMap.rbegin(), MME = MovMap.rend(); MMI != MME; ++MMI) { - MachineBasicBlock::iterator MOV = MMI->second; - MachineOperand PushOp = MOV->getOperand(X86::AddrNumOperands); - - // Replace MOVmr with PUSH32r, and MOVmi with PUSHi of appropriate size - int PushOpcode = X86::PUSH32r; - if (MOV->getOpcode() == X86::MOV32mi) - PushOpcode = getPUSHiOpcode(false, PushOp); - - BuildMI(MBB, Call, DL, TII.get(PushOpcode)).addOperand(PushOp); - MBB.erase(MOV); - } - - return true; -} - void X86FrameLowering:: eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const { @@ -1956,7 +1879,7 @@ eliminateCallFramePseudoInstr(MachineFun bool IsLP64 = STI.isTarget64BitLP64(); DebugLoc DL = I->getDebugLoc(); uint64_t Amount = !reserveCallFrame ? I->getOperand(0).getImm() : 0; - uint64_t CalleeAmt = isDestroy ? I->getOperand(1).getImm() : 0; + uint64_t InternalAmt = (isDestroy || Amount) ? I->getOperand(1).getImm() : 0; I = MBB.erase(I); if (!reserveCallFrame) { @@ -1976,24 +1899,18 @@ eliminateCallFramePseudoInstr(MachineFun Amount = (Amount + StackAlign - 1) / StackAlign * StackAlign; MachineInstr *New = nullptr; - if (Opcode == TII.getCallFrameSetupOpcode()) { - // Try to convert movs to the stack into pushes. - // We currently only look for a pattern that appears in 32-bit - // calling conventions. - if (!IsLP64 && convertArgMovsToPushes(MF, MBB, I, Amount)) - return; - New = BuildMI(MF, DL, TII.get(getSUBriOpcode(IsLP64, Amount)), - StackPtr) - .addReg(StackPtr) - .addImm(Amount); - } else { - assert(Opcode == TII.getCallFrameDestroyOpcode()); - - // Factor out the amount the callee already popped. - Amount -= CalleeAmt; + // Factor out the amount that gets handled inside the sequence + // (Pushes of argument for frame setup, callee pops for frame destroy) + Amount -= InternalAmt; + + if (Amount) { + if (Opcode == TII.getCallFrameSetupOpcode()) { + New = BuildMI(MF, DL, TII.get(getSUBriOpcode(IsLP64, Amount)), StackPtr) + .addReg(StackPtr).addImm(Amount); + } else { + assert(Opcode == TII.getCallFrameDestroyOpcode()); - if (Amount) { unsigned Opc = getADDriOpcode(IsLP64, Amount); New = BuildMI(MF, DL, TII.get(Opc), StackPtr) .addReg(StackPtr).addImm(Amount); @@ -2011,13 +1928,13 @@ eliminateCallFramePseudoInstr(MachineFun return; } - if (Opcode == TII.getCallFrameDestroyOpcode() && CalleeAmt) { + if (Opcode == TII.getCallFrameDestroyOpcode() && InternalAmt) { // If we are performing frame pointer elimination and if the callee pops // something off the stack pointer, add it back. We do this until we have // more advanced stack pointer tracking ability. - unsigned Opc = getSUBriOpcode(IsLP64, CalleeAmt); + unsigned Opc = getSUBriOpcode(IsLP64, InternalAmt); MachineInstr *New = BuildMI(MF, DL, TII.get(Opc), StackPtr) - .addReg(StackPtr).addImm(CalleeAmt); + .addReg(StackPtr).addImm(InternalAmt); // The EFLAGS implicit def is dead. New->getOperand(3).setIsDead(); Modified: projects/clang360-import/contrib/llvm/lib/Target/X86/X86FrameLowering.h ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/X86/X86FrameLowering.h Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86FrameLowering.h Mon Feb 2 20:34:40 2015 (r278112) @@ -64,6 +64,8 @@ public: bool hasFP(const MachineFunction &MF) const override; bool hasReservedCallFrame(const MachineFunction &MF) const override; + bool canSimplifyCallFramePseudos(const MachineFunction &MF) const override; + bool needsFrameIndexResolution(const MachineFunction &MF) const override; int getFrameIndexOffset(const MachineFunction &MF, int FI) const override; int getFrameIndexReference(const MachineFunction &MF, int FI, Modified: projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrCompiler.td ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrCompiler.td Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrCompiler.td Mon Feb 2 20:34:40 2015 (r278112) @@ -43,15 +43,18 @@ let hasSideEffects = 0, isNotDuplicable // Pessimistically assume ADJCALLSTACKDOWN / ADJCALLSTACKUP will become // sub / add which can clobber EFLAGS. let Defs = [ESP, EFLAGS], Uses = [ESP] in { -def ADJCALLSTACKDOWN32 : I<0, Pseudo, (outs), (ins i32imm:$amt), +def ADJCALLSTACKDOWN32 : I<0, Pseudo, (outs), (ins i32imm:$amt1, i32imm:$amt2), "#ADJCALLSTACKDOWN", - [(X86callseq_start timm:$amt)]>, + []>, Requires<[NotLP64]>; def ADJCALLSTACKUP32 : I<0, Pseudo, (outs), (ins i32imm:$amt1, i32imm:$amt2), "#ADJCALLSTACKUP", [(X86callseq_end timm:$amt1, timm:$amt2)]>, Requires<[NotLP64]>; } +def : Pat<(X86callseq_start timm:$amt1), + (ADJCALLSTACKDOWN32 i32imm:$amt1, 0)>, Requires<[NotLP64]>; + // ADJCALLSTACKDOWN/UP implicitly use/def RSP because they may be expanded into // a stack adjustment and the codegen must know that they may modify the stack @@ -59,16 +62,17 @@ def ADJCALLSTACKUP32 : I<0, Pseudo, (o // Pessimistically assume ADJCALLSTACKDOWN / ADJCALLSTACKUP will become // sub / add which can clobber EFLAGS. let Defs = [RSP, EFLAGS], Uses = [RSP] in { -def ADJCALLSTACKDOWN64 : I<0, Pseudo, (outs), (ins i32imm:$amt), +def ADJCALLSTACKDOWN64 : I<0, Pseudo, (outs), (ins i32imm:$amt1, i32imm:$amt2), "#ADJCALLSTACKDOWN", - [(X86callseq_start timm:$amt)]>, + []>, Requires<[IsLP64]>; def ADJCALLSTACKUP64 : I<0, Pseudo, (outs), (ins i32imm:$amt1, i32imm:$amt2), "#ADJCALLSTACKUP", [(X86callseq_end timm:$amt1, timm:$amt2)]>, Requires<[IsLP64]>; } - +def : Pat<(X86callseq_start timm:$amt1), + (ADJCALLSTACKDOWN64 i32imm:$amt1, 0)>, Requires<[IsLP64]>; // x86-64 va_start lowering magic. Modified: projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp Mon Feb 2 20:34:40 2015 (r278112) @@ -1692,6 +1692,58 @@ X86InstrInfo::isCoalescableExtInstr(cons return false; } +int X86InstrInfo::getSPAdjust(const MachineInstr *MI) const { + const MachineFunction *MF = MI->getParent()->getParent(); + const TargetFrameLowering *TFI = MF->getSubtarget().getFrameLowering(); + + if (MI->getOpcode() == getCallFrameSetupOpcode() || + MI->getOpcode() == getCallFrameDestroyOpcode()) { + unsigned StackAlign = TFI->getStackAlignment(); + int SPAdj = (MI->getOperand(0).getImm() + StackAlign - 1) / StackAlign * + StackAlign; + + SPAdj -= MI->getOperand(1).getImm(); + + if (MI->getOpcode() == getCallFrameSetupOpcode()) + return SPAdj; + else + return -SPAdj; + } + + // To know whether a call adjusts the stack, we need information + // that is bound to the following ADJCALLSTACKUP pseudo. + // Look for the next ADJCALLSTACKUP that follows the call. + if (MI->isCall()) { + const MachineBasicBlock* MBB = MI->getParent(); + auto I = ++MachineBasicBlock::const_iterator(MI); + for (auto E = MBB->end(); I != E; ++I) { + if (I->getOpcode() == getCallFrameDestroyOpcode() || + I->isCall()) + break; + } + + // If we could not find a frame destroy opcode, then it has already + // been simplified, so we don't care. + if (I->getOpcode() != getCallFrameDestroyOpcode()) + return 0; + + return -(I->getOperand(1).getImm()); + } + + // Currently handle only PUSHes we can reasonably expect to see + // in call sequences + switch (MI->getOpcode()) { + default: + return 0; + case X86::PUSH32i8: + case X86::PUSH32r: + case X86::PUSH32rmm: + case X86::PUSH32rmr: + case X86::PUSHi32: + return 4; + } +} + /// isFrameOperand - Return true and the FrameIndex if the specified /// operand and follow operands form a reference to the stack frame. bool X86InstrInfo::isFrameOperand(const MachineInstr *MI, unsigned int Op, Modified: projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrInfo.h ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrInfo.h Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86InstrInfo.h Mon Feb 2 20:34:40 2015 (r278112) @@ -175,6 +175,11 @@ public: /// const X86RegisterInfo &getRegisterInfo() const { return RI; } + /// getSPAdjust - This returns the stack pointer adjustment made by + /// this instruction. For x86, we need to handle more complex call + /// sequences involving PUSHes. + int getSPAdjust(const MachineInstr *MI) const override; + /// isCoalescableExtInstr - Return true if the instruction is a "coalescable" /// extension instruction. That is, it's like a copy where it's legal for the /// source to overlap the destination. e.g. X86::MOVSX64rr32. If this returns Modified: projects/clang360-import/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.h ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.h Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.h Mon Feb 2 20:34:40 2015 (r278112) @@ -77,6 +77,9 @@ class X86MachineFunctionInfo : public Ma unsigned ArgumentStackSize; /// NumLocalDynamics - Number of local-dynamic TLS accesses. unsigned NumLocalDynamics; + /// HasPushSequences - Keeps track of whether this function uses sequences + /// of pushes to pass function parameters. + bool HasPushSequences; private: /// ForwardedMustTailRegParms - A list of virtual and physical registers @@ -97,7 +100,8 @@ public: VarArgsGPOffset(0), VarArgsFPOffset(0), ArgumentStackSize(0), - NumLocalDynamics(0) {} + NumLocalDynamics(0), + HasPushSequences(false) {} explicit X86MachineFunctionInfo(MachineFunction &MF) : ForceFramePointer(false), @@ -113,11 +117,15 @@ public: VarArgsGPOffset(0), VarArgsFPOffset(0), ArgumentStackSize(0), - NumLocalDynamics(0) {} + NumLocalDynamics(0), + HasPushSequences(false) {} bool getForceFramePointer() const { return ForceFramePointer;} void setForceFramePointer(bool forceFP) { ForceFramePointer = forceFP; } + bool getHasPushSequences() const { return HasPushSequences; } + void setHasPushSequences(bool HasPush) { HasPushSequences = HasPush; } + bool getRestoreBasePointer() const { return RestoreBasePointerOffset!=0; } void setRestoreBasePointer(const MachineFunction *MF); int getRestoreBasePointerOffset() const {return RestoreBasePointerOffset; } Modified: projects/clang360-import/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp Mon Feb 2 20:34:40 2015 (r278112) @@ -468,8 +468,6 @@ void X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj, unsigned FIOperandNum, RegScavenger *RS) const { - assert(SPAdj == 0 && "Unexpected"); - MachineInstr &MI = *II; MachineFunction &MF = *MI.getParent()->getParent(); const TargetFrameLowering *TFI = MF.getSubtarget().getFrameLowering(); @@ -506,6 +504,9 @@ X86RegisterInfo::eliminateFrameIndex(Mac } else FIOffset = TFI->getFrameIndexOffset(MF, FrameIndex); + if (BasePtr == StackPtr) + FIOffset += SPAdj; + // The frame index format for stackmaps and patchpoints is different from the // X86 format. It only has a FI and an offset. if (Opc == TargetOpcode::STACKMAP || Opc == TargetOpcode::PATCHPOINT) { Modified: projects/clang360-import/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp Mon Feb 2 20:34:40 2015 (r278112) @@ -154,6 +154,7 @@ public: void addIRPasses() override; bool addInstSelector() override; bool addILPOpts() override; + void addPreRegAlloc() override; void addPostRegAlloc() override; void addPreEmitPass() override; }; @@ -187,6 +188,10 @@ bool X86PassConfig::addILPOpts() { return true; } +void X86PassConfig::addPreRegAlloc() { + addPass(createX86CallFrameOptimization()); +} + void X86PassConfig::addPostRegAlloc() { addPass(createX86FloatingPointStackifierPass()); } Modified: projects/clang360-import/lib/clang/libllvmx86codegen/Makefile ============================================================================== --- projects/clang360-import/lib/clang/libllvmx86codegen/Makefile Mon Feb 2 20:23:05 2015 (r278111) +++ projects/clang360-import/lib/clang/libllvmx86codegen/Makefile Mon Feb 2 20:34:40 2015 (r278112) @@ -6,6 +6,7 @@ LIB= llvmx86codegen SRCDIR= lib/Target/X86 SRCS= X86AsmPrinter.cpp \ + X86CallFrameOptimization.cpp \ X86FastISel.cpp \ X86FixupLEAs.cpp \ X86FloatingPoint.cpp \ From owner-svn-src-projects@FreeBSD.ORG Mon Feb 2 20:36:17 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A3A39186; Mon, 2 Feb 2015 20:36:17 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8E80AF1C; Mon, 2 Feb 2015 20:36:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t12KaHb9075044; Mon, 2 Feb 2015 20:36:17 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t12KaHbD075043; Mon, 2 Feb 2015 20:36:17 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201502022036.t12KaHbD075043@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 2 Feb 2015 20:36:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278113 - projects/clang360-import/contrib/llvm/patches X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2015 20:36:17 -0000 Author: dim Date: Mon Feb 2 20:36:16 2015 New Revision: 278113 URL: https://svnweb.freebsd.org/changeset/base/278113 Log: Add the llvm patch corresponding to r278112. Added: projects/clang360-import/contrib/llvm/patches/patch-07-llvm-r227752-boot2-shrink.diff Added: projects/clang360-import/contrib/llvm/patches/patch-07-llvm-r227752-boot2-shrink.diff ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang360-import/contrib/llvm/patches/patch-07-llvm-r227752-boot2-shrink.diff Mon Feb 2 20:36:16 2015 (r278113) @@ -0,0 +1,1271 @@ +Pull in r227752 from upstream llvm trunk (by Michael Kuperstein): + + [X86] Convert esp-relative movs of function arguments to pushes, step 2 + + This moves the transformation introduced in r223757 into a separate MI pass. + This allows it to cover many more cases (not only cases where there must be a + reserved call frame), and perform rudimentary call folding. It still doesn't + have a heuristic, so it is enabled only for optsize/minsize, with stack + alignment <= 8, where it ought to be a fairly clear win. + + (Re-commit of r227728) + + Differential Revision: http://reviews.llvm.org/D6789 + +This helps to get sys/boot/i386/boot2 below the required size again, +when optimizing with -Oz. + +Introduced here: http://svnweb.freebsd.org/changeset/base/278112 + +Index: include/llvm/Target/TargetFrameLowering.h +=================================================================== +--- include/llvm/Target/TargetFrameLowering.h ++++ include/llvm/Target/TargetFrameLowering.h +@@ -193,6 +193,11 @@ class TargetFrameLowering { + return hasReservedCallFrame(MF) || hasFP(MF); + } + ++ // needsFrameIndexResolution - Do we need to perform FI resolution for ++ // this function. Normally, this is required only when the function ++ // has any stack objects. However, targets may want to override this. ++ virtual bool needsFrameIndexResolution(const MachineFunction &MF) const; ++ + /// getFrameIndexOffset - Returns the displacement from the frame register to + /// the stack frame of the specified index. + virtual int getFrameIndexOffset(const MachineFunction &MF, int FI) const; +Index: lib/CodeGen/PrologEpilogInserter.cpp +=================================================================== +--- lib/CodeGen/PrologEpilogInserter.cpp ++++ lib/CodeGen/PrologEpilogInserter.cpp +@@ -703,7 +703,8 @@ void PEI::insertPrologEpilogCode(MachineFunction & + /// register references and actual offsets. + /// + void PEI::replaceFrameIndices(MachineFunction &Fn) { +- if (!Fn.getFrameInfo()->hasStackObjects()) return; // Nothing to do? ++ const TargetFrameLowering &TFI = *Fn.getSubtarget().getFrameLowering(); ++ if (!TFI.needsFrameIndexResolution(Fn)) return; + + // Store SPAdj at exit of a basic block. + SmallVector SPState; +@@ -769,13 +770,6 @@ void PEI::replaceFrameIndices(MachineBasicBlock *B + continue; + } + +- // If we are looking at a call sequence, we need to keep track of +- // the SP adjustment made by each instruction in the sequence. +- // This includes both the frame setup/destroy pseudos (handled above), +- // as well as other instructions that have side effects w.r.t the SP. +- if (InsideCallSequence) +- SPAdj += TII.getSPAdjust(I); +- + MachineInstr *MI = I; + bool DoIncr = true; + for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { +@@ -854,6 +848,16 @@ void PEI::replaceFrameIndices(MachineBasicBlock *B + break; + } + ++ // If we are looking at a call sequence, we need to keep track of ++ // the SP adjustment made by each instruction in the sequence. ++ // This includes both the frame setup/destroy pseudos (handled above), ++ // as well as other instructions that have side effects w.r.t the SP. ++ // Note that this must come after eliminateFrameIndex, because ++ // if I itself referred to a frame index, we shouldn't count its own ++ // adjustment. ++ if (MI && InsideCallSequence) ++ SPAdj += TII.getSPAdjust(MI); ++ + if (DoIncr && I != BB->end()) ++I; + + // Update register states. +Index: lib/CodeGen/TargetFrameLoweringImpl.cpp +=================================================================== +--- lib/CodeGen/TargetFrameLoweringImpl.cpp ++++ lib/CodeGen/TargetFrameLoweringImpl.cpp +@@ -42,3 +42,8 @@ int TargetFrameLowering::getFrameIndexReference(co + FrameReg = RI->getFrameRegister(MF); + return getFrameIndexOffset(MF, FI); + } ++ ++bool TargetFrameLowering::needsFrameIndexResolution( ++ const MachineFunction &MF) const { ++ return MF.getFrameInfo()->hasStackObjects(); ++} +Index: lib/Target/X86/CMakeLists.txt +=================================================================== +--- lib/Target/X86/CMakeLists.txt ++++ lib/Target/X86/CMakeLists.txt +@@ -14,6 +14,7 @@ add_public_tablegen_target(X86CommonTableGen) + + set(sources + X86AsmPrinter.cpp ++ X86CallFrameOptimization.cpp + X86FastISel.cpp + X86FloatingPoint.cpp + X86FrameLowering.cpp +Index: lib/Target/X86/X86.h +=================================================================== +--- lib/Target/X86/X86.h ++++ lib/Target/X86/X86.h +@@ -67,6 +67,11 @@ FunctionPass *createX86PadShortFunctions(); + /// to eliminate execution delays in some Atom processors. + FunctionPass *createX86FixupLEAs(); + ++/// createX86CallFrameOptimization - Return a pass that optimizes ++/// the code-size of x86 call sequences. This is done by replacing ++/// esp-relative movs with pushes. ++FunctionPass *createX86CallFrameOptimization(); ++ + } // End llvm namespace + + #endif +Index: lib/Target/X86/X86CallFrameOptimization.cpp +=================================================================== +--- lib/Target/X86/X86CallFrameOptimization.cpp ++++ lib/Target/X86/X86CallFrameOptimization.cpp +@@ -0,0 +1,400 @@ ++//===----- X86CallFrameOptimization.cpp - Optimize x86 call sequences -----===// ++// ++// The LLVM Compiler Infrastructure ++// ++// This file is distributed under the University of Illinois Open Source ++// License. See LICENSE.TXT for details. ++// ++//===----------------------------------------------------------------------===// ++// ++// This file defines a pass that optimizes call sequences on x86. ++// Currently, it converts movs of function parameters onto the stack into ++// pushes. This is beneficial for two main reasons: ++// 1) The push instruction encoding is much smaller than an esp-relative mov ++// 2) It is possible to push memory arguments directly. So, if the ++// the transformation is preformed pre-reg-alloc, it can help relieve ++// register pressure. ++// ++//===----------------------------------------------------------------------===// ++ ++#include ++ ++#include "X86.h" ++#include "X86InstrInfo.h" ++#include "X86Subtarget.h" ++#include "X86MachineFunctionInfo.h" ++#include "llvm/ADT/Statistic.h" ++#include "llvm/CodeGen/MachineFunctionPass.h" ++#include "llvm/CodeGen/MachineInstrBuilder.h" ++#include "llvm/CodeGen/MachineRegisterInfo.h" ++#include "llvm/CodeGen/Passes.h" ++#include "llvm/IR/Function.h" ++#include "llvm/Support/Debug.h" ++#include "llvm/Support/raw_ostream.h" ++#include "llvm/Target/TargetInstrInfo.h" ++ ++using namespace llvm; ++ ++#define DEBUG_TYPE "x86-cf-opt" ++ ++cl::opt NoX86CFOpt("no-x86-call-frame-opt", ++ cl::desc("Avoid optimizing x86 call frames for size"), ++ cl::init(false), cl::Hidden); ++ ++namespace { ++class X86CallFrameOptimization : public MachineFunctionPass { ++public: ++ X86CallFrameOptimization() : MachineFunctionPass(ID) {} ++ ++ bool runOnMachineFunction(MachineFunction &MF) override; ++ ++private: ++ bool shouldPerformTransformation(MachineFunction &MF); ++ ++ bool adjustCallSequence(MachineFunction &MF, MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I); ++ ++ MachineInstr *canFoldIntoRegPush(MachineBasicBlock::iterator FrameSetup, ++ unsigned Reg); ++ ++ const char *getPassName() const override { ++ return "X86 Optimize Call Frame"; ++ } ++ ++ const TargetInstrInfo *TII; ++ const TargetFrameLowering *TFL; ++ const MachineRegisterInfo *MRI; ++ static char ID; ++}; ++ ++char X86CallFrameOptimization::ID = 0; ++} ++ ++FunctionPass *llvm::createX86CallFrameOptimization() { ++ return new X86CallFrameOptimization(); ++} ++ ++// This checks whether the transformation is legal and profitable ++bool X86CallFrameOptimization::shouldPerformTransformation(MachineFunction &MF) { ++ if (NoX86CFOpt.getValue()) ++ return false; ++ ++ // We currently only support call sequences where *all* parameters. ++ // are passed on the stack. ++ // No point in running this in 64-bit mode, since some arguments are ++ // passed in-register in all common calling conventions, so the pattern ++ // we're looking for will never match. ++ const X86Subtarget &STI = MF.getTarget().getSubtarget(); ++ if (STI.is64Bit()) ++ return false; ++ ++ // You would expect straight-line code between call-frame setup and ++ // call-frame destroy. You would be wrong. There are circumstances (e.g. ++ // CMOV_GR8 expansion of a select that feeds a function call!) where we can ++ // end up with the setup and the destroy in different basic blocks. ++ // This is bad, and breaks SP adjustment. ++ // So, check that all of the frames in the function are closed inside ++ // the same block, and, for good measure, that there are no nested frames. ++ int FrameSetupOpcode = TII->getCallFrameSetupOpcode(); ++ int FrameDestroyOpcode = TII->getCallFrameDestroyOpcode(); ++ for (MachineBasicBlock &BB : MF) { ++ bool InsideFrameSequence = false; ++ for (MachineInstr &MI : BB) { ++ if (MI.getOpcode() == FrameSetupOpcode) { ++ if (InsideFrameSequence) ++ return false; ++ InsideFrameSequence = true; ++ } ++ else if (MI.getOpcode() == FrameDestroyOpcode) { ++ if (!InsideFrameSequence) ++ return false; ++ InsideFrameSequence = false; ++ } ++ } ++ ++ if (InsideFrameSequence) ++ return false; ++ } ++ ++ // Now that we know the transformation is legal, check if it is ++ // profitable. ++ // TODO: Add a heuristic that actually looks at the function, ++ // and enable this for more cases. ++ ++ // This transformation is always a win when we expected to have ++ // a reserved call frame. Under other circumstances, it may be either ++ // a win or a loss, and requires a heuristic. ++ // For now, enable it only for the relatively clear win cases. ++ bool CannotReserveFrame = MF.getFrameInfo()->hasVarSizedObjects(); ++ if (CannotReserveFrame) ++ return true; ++ ++ // For now, don't even try to evaluate the profitability when ++ // not optimizing for size. ++ AttributeSet FnAttrs = MF.getFunction()->getAttributes(); ++ bool OptForSize = ++ FnAttrs.hasAttribute(AttributeSet::FunctionIndex, ++ Attribute::OptimizeForSize) || ++ FnAttrs.hasAttribute(AttributeSet::FunctionIndex, Attribute::MinSize); ++ ++ if (!OptForSize) ++ return false; ++ ++ // Stack re-alignment can make this unprofitable even in terms of size. ++ // As mentioned above, a better heuristic is needed. For now, don't do this ++ // when the required alignment is above 8. (4 would be the safe choice, but ++ // some experimentation showed 8 is generally good). ++ if (TFL->getStackAlignment() > 8) ++ return false; ++ ++ return true; ++} ++ ++bool X86CallFrameOptimization::runOnMachineFunction(MachineFunction &MF) { ++ TII = MF.getSubtarget().getInstrInfo(); ++ TFL = MF.getSubtarget().getFrameLowering(); ++ MRI = &MF.getRegInfo(); ++ ++ if (!shouldPerformTransformation(MF)) ++ return false; ++ ++ int FrameSetupOpcode = TII->getCallFrameSetupOpcode(); ++ ++ bool Changed = false; ++ ++ for (MachineFunction::iterator BB = MF.begin(), E = MF.end(); BB != E; ++BB) ++ for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ++I) ++ if (I->getOpcode() == FrameSetupOpcode) ++ Changed |= adjustCallSequence(MF, *BB, I); ++ ++ return Changed; ++} ++ ++bool X86CallFrameOptimization::adjustCallSequence(MachineFunction &MF, ++ MachineBasicBlock &MBB, ++ MachineBasicBlock::iterator I) { ++ ++ // Check that this particular call sequence is amenable to the ++ // transformation. ++ const X86RegisterInfo &RegInfo = *static_cast( ++ MF.getSubtarget().getRegisterInfo()); ++ unsigned StackPtr = RegInfo.getStackRegister(); ++ int FrameDestroyOpcode = TII->getCallFrameDestroyOpcode(); ++ ++ // We expect to enter this at the beginning of a call sequence ++ assert(I->getOpcode() == TII->getCallFrameSetupOpcode()); ++ MachineBasicBlock::iterator FrameSetup = I++; ++ ++ ++ // For globals in PIC mode, we can have some LEAs here. ++ // Ignore them, they don't bother us. ++ // TODO: Extend this to something that covers more cases. ++ while (I->getOpcode() == X86::LEA32r) ++ ++I; ++ ++ // We expect a copy instruction here. ++ // TODO: The copy instruction is a lowering artifact. ++ // We should also support a copy-less version, where the stack ++ // pointer is used directly. ++ if (!I->isCopy() || !I->getOperand(0).isReg()) ++ return false; ++ MachineBasicBlock::iterator SPCopy = I++; ++ StackPtr = SPCopy->getOperand(0).getReg(); ++ ++ // Scan the call setup sequence for the pattern we're looking for. ++ // We only handle a simple case - a sequence of MOV32mi or MOV32mr ++ // instructions, that push a sequence of 32-bit values onto the stack, with ++ // no gaps between them. ++ SmallVector MovVector(4, nullptr); ++ unsigned int MaxAdjust = FrameSetup->getOperand(0).getImm() / 4; ++ if (MaxAdjust > 4) ++ MovVector.resize(MaxAdjust, nullptr); ++ ++ do { ++ int Opcode = I->getOpcode(); ++ if (Opcode != X86::MOV32mi && Opcode != X86::MOV32mr) ++ break; ++ ++ // We only want movs of the form: ++ // movl imm/r32, k(%esp) ++ // If we run into something else, bail. ++ // Note that AddrBaseReg may, counter to its name, not be a register, ++ // but rather a frame index. ++ // TODO: Support the fi case. This should probably work now that we ++ // have the infrastructure to track the stack pointer within a call ++ // sequence. ++ if (!I->getOperand(X86::AddrBaseReg).isReg() || ++ (I->getOperand(X86::AddrBaseReg).getReg() != StackPtr) || ++ !I->getOperand(X86::AddrScaleAmt).isImm() || ++ (I->getOperand(X86::AddrScaleAmt).getImm() != 1) || ++ (I->getOperand(X86::AddrIndexReg).getReg() != X86::NoRegister) || ++ (I->getOperand(X86::AddrSegmentReg).getReg() != X86::NoRegister) || ++ !I->getOperand(X86::AddrDisp).isImm()) ++ return false; ++ ++ int64_t StackDisp = I->getOperand(X86::AddrDisp).getImm(); ++ assert(StackDisp >= 0 && "Negative stack displacement when passing parameters"); ++ ++ // We really don't want to consider the unaligned case. ++ if (StackDisp % 4) ++ return false; ++ StackDisp /= 4; ++ ++ assert((size_t)StackDisp < MovVector.size() && ++ "Function call has more parameters than the stack is adjusted for."); ++ ++ // If the same stack slot is being filled twice, something's fishy. ++ if (MovVector[StackDisp] != nullptr) ++ return false; ++ MovVector[StackDisp] = I; ++ ++ ++I; ++ } while (I != MBB.end()); ++ ++ // We now expect the end of the sequence - a call and a stack adjust. ++ if (I == MBB.end()) ++ return false; ++ ++ // For PCrel calls, we expect an additional COPY of the basereg. ++ // If we find one, skip it. ++ if (I->isCopy()) { ++ if (I->getOperand(1).getReg() == ++ MF.getInfo()->getGlobalBaseReg()) ++ ++I; ++ else ++ return false; ++ } ++ ++ if (!I->isCall()) ++ return false; ++ MachineBasicBlock::iterator Call = I; ++ if ((++I)->getOpcode() != FrameDestroyOpcode) ++ return false; ++ ++ // Now, go through the vector, and see that we don't have any gaps, ++ // but only a series of 32-bit MOVs. ++ ++ int64_t ExpectedDist = 0; ++ auto MMI = MovVector.begin(), MME = MovVector.end(); ++ for (; MMI != MME; ++MMI, ExpectedDist += 4) ++ if (*MMI == nullptr) ++ break; ++ ++ // If the call had no parameters, do nothing ++ if (!ExpectedDist) ++ return false; ++ ++ // We are either at the last parameter, or a gap. ++ // Make sure it's not a gap ++ for (; MMI != MME; ++MMI) ++ if (*MMI != nullptr) ++ return false; ++ ++ // Ok, we can in fact do the transformation for this call. ++ // Do not remove the FrameSetup instruction, but adjust the parameters. ++ // PEI will end up finalizing the handling of this. ++ FrameSetup->getOperand(1).setImm(ExpectedDist); ++ ++ DebugLoc DL = I->getDebugLoc(); ++ // Now, iterate through the vector in reverse order, and replace the movs ++ // with pushes. MOVmi/MOVmr doesn't have any defs, so no need to ++ // replace uses. ++ for (int Idx = (ExpectedDist / 4) - 1; Idx >= 0; --Idx) { ++ MachineBasicBlock::iterator MOV = *MovVector[Idx]; ++ MachineOperand PushOp = MOV->getOperand(X86::AddrNumOperands); ++ if (MOV->getOpcode() == X86::MOV32mi) { ++ unsigned PushOpcode = X86::PUSHi32; ++ // If the operand is a small (8-bit) immediate, we can use a ++ // PUSH instruction with a shorter encoding. ++ // Note that isImm() may fail even though this is a MOVmi, because ++ // the operand can also be a symbol. ++ if (PushOp.isImm()) { ++ int64_t Val = PushOp.getImm(); ++ if (isInt<8>(Val)) ++ PushOpcode = X86::PUSH32i8; ++ } ++ BuildMI(MBB, Call, DL, TII->get(PushOpcode)).addOperand(PushOp); ++ } else { ++ unsigned int Reg = PushOp.getReg(); ++ ++ // If PUSHrmm is not slow on this target, try to fold the source of the ++ // push into the instruction. ++ const X86Subtarget &ST = MF.getTarget().getSubtarget(); ++ bool SlowPUSHrmm = ST.isAtom() || ST.isSLM(); ++ ++ // Check that this is legal to fold. Right now, we're extremely ++ // conservative about that. ++ MachineInstr *DefMov = nullptr; ++ if (!SlowPUSHrmm && (DefMov = canFoldIntoRegPush(FrameSetup, Reg))) { ++ MachineInstr *Push = BuildMI(MBB, Call, DL, TII->get(X86::PUSH32rmm)); ++ ++ unsigned NumOps = DefMov->getDesc().getNumOperands(); ++ for (unsigned i = NumOps - X86::AddrNumOperands; i != NumOps; ++i) ++ Push->addOperand(DefMov->getOperand(i)); ++ ++ DefMov->eraseFromParent(); ++ } else { ++ BuildMI(MBB, Call, DL, TII->get(X86::PUSH32r)).addReg(Reg).getInstr(); ++ } ++ } ++ ++ MBB.erase(MOV); ++ } ++ ++ // The stack-pointer copy is no longer used in the call sequences. ++ // There should not be any other users, but we can't commit to that, so: ++ if (MRI->use_empty(SPCopy->getOperand(0).getReg())) ++ SPCopy->eraseFromParent(); ++ ++ // Once we've done this, we need to make sure PEI doesn't assume a reserved ++ // frame. ++ X86MachineFunctionInfo *FuncInfo = MF.getInfo(); ++ FuncInfo->setHasPushSequences(true); ++ ++ return true; ++} ++ ++MachineInstr *X86CallFrameOptimization::canFoldIntoRegPush( ++ MachineBasicBlock::iterator FrameSetup, unsigned Reg) { ++ // Do an extremely restricted form of load folding. ++ // ISel will often create patterns like: ++ // movl 4(%edi), %eax ++ // movl 8(%edi), %ecx ++ // movl 12(%edi), %edx ++ // movl %edx, 8(%esp) ++ // movl %ecx, 4(%esp) ++ // movl %eax, (%esp) ++ // call ++ // Get rid of those with prejudice. ++ if (!TargetRegisterInfo::isVirtualRegister(Reg)) ++ return nullptr; ++ ++ // Make sure this is the only use of Reg. ++ if (!MRI->hasOneNonDBGUse(Reg)) ++ return nullptr; ++ ++ MachineBasicBlock::iterator DefMI = MRI->getVRegDef(Reg); ++ ++ // Make sure the def is a MOV from memory. ++ // If the def is an another block, give up. ++ if (DefMI->getOpcode() != X86::MOV32rm || ++ DefMI->getParent() != FrameSetup->getParent()) ++ return nullptr; ++ ++ // Be careful with movs that load from a stack slot, since it may get ++ // resolved incorrectly. ++ // TODO: Again, we already have the infrastructure, so this should work. ++ if (!DefMI->getOperand(1).isReg()) ++ return nullptr; ++ ++ // Now, make sure everything else up until the ADJCALLSTACK is a sequence ++ // of MOVs. To be less conservative would require duplicating a lot of the ++ // logic from PeepholeOptimizer. ++ // FIXME: A possibly better approach would be to teach the PeepholeOptimizer ++ // to be smarter about folding into pushes. ++ for (auto I = DefMI; I != FrameSetup; ++I) ++ if (I->getOpcode() != X86::MOV32rm) ++ return nullptr; ++ ++ return DefMI; ++} +Index: lib/Target/X86/X86FastISel.cpp +=================================================================== +--- lib/Target/X86/X86FastISel.cpp ++++ lib/Target/X86/X86FastISel.cpp +@@ -2735,7 +2735,7 @@ bool X86FastISel::fastLowerCall(CallLoweringInfo & + // Issue CALLSEQ_START + unsigned AdjStackDown = TII.getCallFrameSetupOpcode(); + BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(AdjStackDown)) +- .addImm(NumBytes); ++ .addImm(NumBytes).addImm(0); + + // Walk the register/memloc assignments, inserting copies/loads. + const X86RegisterInfo *RegInfo = static_cast( +Index: lib/Target/X86/X86FrameLowering.cpp +=================================================================== +--- lib/Target/X86/X86FrameLowering.cpp ++++ lib/Target/X86/X86FrameLowering.cpp +@@ -38,9 +38,36 @@ using namespace llvm; + extern cl::opt ForceStackAlign; + + bool X86FrameLowering::hasReservedCallFrame(const MachineFunction &MF) const { +- return !MF.getFrameInfo()->hasVarSizedObjects(); ++ return !MF.getFrameInfo()->hasVarSizedObjects() && ++ !MF.getInfo()->getHasPushSequences(); + } + ++/// canSimplifyCallFramePseudos - If there is a reserved call frame, the ++/// call frame pseudos can be simplified. Having a FP, as in the default ++/// implementation, is not sufficient here since we can't always use it. ++/// Use a more nuanced condition. ++bool ++X86FrameLowering::canSimplifyCallFramePseudos(const MachineFunction &MF) const { ++ const X86RegisterInfo *TRI = static_cast ++ (MF.getSubtarget().getRegisterInfo()); ++ return hasReservedCallFrame(MF) || ++ (hasFP(MF) && !TRI->needsStackRealignment(MF)) ++ || TRI->hasBasePointer(MF); ++} ++ ++// needsFrameIndexResolution - Do we need to perform FI resolution for ++// this function. Normally, this is required only when the function ++// has any stack objects. However, FI resolution actually has another job, ++// not apparent from the title - it resolves callframesetup/destroy ++// that were not simplified earlier. ++// So, this is required for x86 functions that have push sequences even ++// when there are no stack objects. ++bool ++X86FrameLowering::needsFrameIndexResolution(const MachineFunction &MF) const { ++ return MF.getFrameInfo()->hasStackObjects() || ++ MF.getInfo()->getHasPushSequences(); ++} ++ + /// hasFP - Return true if the specified function should have a dedicated frame + /// pointer register. This is true if the function has variable sized allocas + /// or if frame pointer elimination is disabled. +@@ -93,16 +120,6 @@ static unsigned getANDriOpcode(bool IsLP64, int64_ + return X86::AND32ri; + } + +-static unsigned getPUSHiOpcode(bool IsLP64, MachineOperand MO) { +- // We don't support LP64 for now. +- assert(!IsLP64); +- +- if (MO.isImm() && isInt<8>(MO.getImm())) +- return X86::PUSH32i8; +- +- return X86::PUSHi32;; +-} +- + static unsigned getLEArOpcode(unsigned IsLP64) { + return IsLP64 ? X86::LEA64r : X86::LEA32r; + } +@@ -1848,100 +1865,6 @@ void X86FrameLowering::adjustForHiPEPrologue(Machi + #endif + } + +-bool X86FrameLowering:: +-convertArgMovsToPushes(MachineFunction &MF, MachineBasicBlock &MBB, +- MachineBasicBlock::iterator I, uint64_t Amount) const { +- const TargetInstrInfo &TII = *MF.getSubtarget().getInstrInfo(); +- const X86RegisterInfo &RegInfo = *static_cast( +- MF.getSubtarget().getRegisterInfo()); +- unsigned StackPtr = RegInfo.getStackRegister(); +- +- // Scan the call setup sequence for the pattern we're looking for. +- // We only handle a simple case now - a sequence of MOV32mi or MOV32mr +- // instructions, that push a sequence of 32-bit values onto the stack, with +- // no gaps. +- std::map MovMap; +- do { +- int Opcode = I->getOpcode(); +- if (Opcode != X86::MOV32mi && Opcode != X86::MOV32mr) +- break; +- +- // We only want movs of the form: +- // movl imm/r32, k(%ecx) +- // If we run into something else, bail +- // Note that AddrBaseReg may, counterintuitively, not be a register... +- if (!I->getOperand(X86::AddrBaseReg).isReg() || +- (I->getOperand(X86::AddrBaseReg).getReg() != StackPtr) || +- !I->getOperand(X86::AddrScaleAmt).isImm() || +- (I->getOperand(X86::AddrScaleAmt).getImm() != 1) || +- (I->getOperand(X86::AddrIndexReg).getReg() != X86::NoRegister) || +- (I->getOperand(X86::AddrSegmentReg).getReg() != X86::NoRegister) || +- !I->getOperand(X86::AddrDisp).isImm()) +- return false; +- +- int64_t StackDisp = I->getOperand(X86::AddrDisp).getImm(); +- +- // We don't want to consider the unaligned case. +- if (StackDisp % 4) +- return false; +- +- // If the same stack slot is being filled twice, something's fishy. +- if (!MovMap.insert(std::pair(StackDisp, I)).second) +- return false; +- +- ++I; +- } while (I != MBB.end()); +- +- // We now expect the end of the sequence - a call and a stack adjust. +- if (I == MBB.end()) +- return false; +- if (!I->isCall()) +- return false; +- MachineBasicBlock::iterator Call = I; +- if ((++I)->getOpcode() != TII.getCallFrameDestroyOpcode()) +- return false; +- +- // Now, go through the map, and see that we don't have any gaps, +- // but only a series of 32-bit MOVs. +- // Since std::map provides ordered iteration, the original order +- // of the MOVs doesn't matter. +- int64_t ExpectedDist = 0; +- for (auto MMI = MovMap.begin(), MME = MovMap.end(); MMI != MME; +- ++MMI, ExpectedDist += 4) +- if (MMI->first != ExpectedDist) +- return false; +- +- // Ok, everything looks fine. Do the transformation. +- DebugLoc DL = I->getDebugLoc(); +- +- // It's possible the original stack adjustment amount was larger than +- // that done by the pushes. If so, we still need a SUB. +- Amount -= ExpectedDist; +- if (Amount) { +- MachineInstr* Sub = BuildMI(MBB, Call, DL, +- TII.get(getSUBriOpcode(false, Amount)), StackPtr) +- .addReg(StackPtr).addImm(Amount); +- Sub->getOperand(3).setIsDead(); +- } +- +- // Now, iterate through the map in reverse order, and replace the movs +- // with pushes. MOVmi/MOVmr doesn't have any defs, so need to replace uses. +- for (auto MMI = MovMap.rbegin(), MME = MovMap.rend(); MMI != MME; ++MMI) { +- MachineBasicBlock::iterator MOV = MMI->second; +- MachineOperand PushOp = MOV->getOperand(X86::AddrNumOperands); +- +- // Replace MOVmr with PUSH32r, and MOVmi with PUSHi of appropriate size +- int PushOpcode = X86::PUSH32r; +- if (MOV->getOpcode() == X86::MOV32mi) +- PushOpcode = getPUSHiOpcode(false, PushOp); +- +- BuildMI(MBB, Call, DL, TII.get(PushOpcode)).addOperand(PushOp); +- MBB.erase(MOV); +- } +- +- return true; +-} +- + void X86FrameLowering:: + eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, + MachineBasicBlock::iterator I) const { +@@ -1956,7 +1879,7 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, + bool IsLP64 = STI.isTarget64BitLP64(); + DebugLoc DL = I->getDebugLoc(); + uint64_t Amount = !reserveCallFrame ? I->getOperand(0).getImm() : 0; +- uint64_t CalleeAmt = isDestroy ? I->getOperand(1).getImm() : 0; ++ uint64_t InternalAmt = (isDestroy || Amount) ? I->getOperand(1).getImm() : 0; + I = MBB.erase(I); + + if (!reserveCallFrame) { +@@ -1976,24 +1899,18 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, + Amount = (Amount + StackAlign - 1) / StackAlign * StackAlign; + + MachineInstr *New = nullptr; +- if (Opcode == TII.getCallFrameSetupOpcode()) { +- // Try to convert movs to the stack into pushes. +- // We currently only look for a pattern that appears in 32-bit +- // calling conventions. +- if (!IsLP64 && convertArgMovsToPushes(MF, MBB, I, Amount)) +- return; + +- New = BuildMI(MF, DL, TII.get(getSUBriOpcode(IsLP64, Amount)), +- StackPtr) +- .addReg(StackPtr) +- .addImm(Amount); +- } else { +- assert(Opcode == TII.getCallFrameDestroyOpcode()); ++ // Factor out the amount that gets handled inside the sequence ++ // (Pushes of argument for frame setup, callee pops for frame destroy) ++ Amount -= InternalAmt; + +- // Factor out the amount the callee already popped. +- Amount -= CalleeAmt; ++ if (Amount) { ++ if (Opcode == TII.getCallFrameSetupOpcode()) { ++ New = BuildMI(MF, DL, TII.get(getSUBriOpcode(IsLP64, Amount)), StackPtr) ++ .addReg(StackPtr).addImm(Amount); ++ } else { ++ assert(Opcode == TII.getCallFrameDestroyOpcode()); + +- if (Amount) { + unsigned Opc = getADDriOpcode(IsLP64, Amount); + New = BuildMI(MF, DL, TII.get(Opc), StackPtr) + .addReg(StackPtr).addImm(Amount); +@@ -2011,13 +1928,13 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, + return; + } + +- if (Opcode == TII.getCallFrameDestroyOpcode() && CalleeAmt) { ++ if (Opcode == TII.getCallFrameDestroyOpcode() && InternalAmt) { + // If we are performing frame pointer elimination and if the callee pops + // something off the stack pointer, add it back. We do this until we have + // more advanced stack pointer tracking ability. +- unsigned Opc = getSUBriOpcode(IsLP64, CalleeAmt); ++ unsigned Opc = getSUBriOpcode(IsLP64, InternalAmt); + MachineInstr *New = BuildMI(MF, DL, TII.get(Opc), StackPtr) +- .addReg(StackPtr).addImm(CalleeAmt); ++ .addReg(StackPtr).addImm(InternalAmt); + + // The EFLAGS implicit def is dead. + New->getOperand(3).setIsDead(); +Index: lib/Target/X86/X86FrameLowering.h +=================================================================== +--- lib/Target/X86/X86FrameLowering.h ++++ lib/Target/X86/X86FrameLowering.h +@@ -64,6 +64,8 @@ class X86FrameLowering : public TargetFrameLowerin + + bool hasFP(const MachineFunction &MF) const override; + bool hasReservedCallFrame(const MachineFunction &MF) const override; ++ bool canSimplifyCallFramePseudos(const MachineFunction &MF) const override; ++ bool needsFrameIndexResolution(const MachineFunction &MF) const override; + + int getFrameIndexOffset(const MachineFunction &MF, int FI) const override; + int getFrameIndexReference(const MachineFunction &MF, int FI, +Index: lib/Target/X86/X86InstrCompiler.td +=================================================================== +--- lib/Target/X86/X86InstrCompiler.td ++++ lib/Target/X86/X86InstrCompiler.td +@@ -43,9 +43,9 @@ let hasSideEffects = 0, isNotDuplicable = 1, Uses + // Pessimistically assume ADJCALLSTACKDOWN / ADJCALLSTACKUP will become + // sub / add which can clobber EFLAGS. + let Defs = [ESP, EFLAGS], Uses = [ESP] in { +-def ADJCALLSTACKDOWN32 : I<0, Pseudo, (outs), (ins i32imm:$amt), ++def ADJCALLSTACKDOWN32 : I<0, Pseudo, (outs), (ins i32imm:$amt1, i32imm:$amt2), + "#ADJCALLSTACKDOWN", +- [(X86callseq_start timm:$amt)]>, ++ []>, + Requires<[NotLP64]>; + def ADJCALLSTACKUP32 : I<0, Pseudo, (outs), (ins i32imm:$amt1, i32imm:$amt2), + "#ADJCALLSTACKUP", +@@ -52,7 +52,10 @@ def ADJCALLSTACKUP32 : I<0, Pseudo, (outs), (ins + [(X86callseq_end timm:$amt1, timm:$amt2)]>, + Requires<[NotLP64]>; + } ++def : Pat<(X86callseq_start timm:$amt1), ++ (ADJCALLSTACKDOWN32 i32imm:$amt1, 0)>, Requires<[NotLP64]>; + ++ + // ADJCALLSTACKDOWN/UP implicitly use/def RSP because they may be expanded into + // a stack adjustment and the codegen must know that they may modify the stack + // pointer before prolog-epilog rewriting occurs. +@@ -59,9 +62,9 @@ def ADJCALLSTACKUP32 : I<0, Pseudo, (outs), (ins + // Pessimistically assume ADJCALLSTACKDOWN / ADJCALLSTACKUP will become + // sub / add which can clobber EFLAGS. + let Defs = [RSP, EFLAGS], Uses = [RSP] in { +-def ADJCALLSTACKDOWN64 : I<0, Pseudo, (outs), (ins i32imm:$amt), ++def ADJCALLSTACKDOWN64 : I<0, Pseudo, (outs), (ins i32imm:$amt1, i32imm:$amt2), + "#ADJCALLSTACKDOWN", +- [(X86callseq_start timm:$amt)]>, ++ []>, + Requires<[IsLP64]>; + def ADJCALLSTACKUP64 : I<0, Pseudo, (outs), (ins i32imm:$amt1, i32imm:$amt2), + "#ADJCALLSTACKUP", +@@ -68,9 +71,10 @@ def ADJCALLSTACKUP64 : I<0, Pseudo, (outs), (ins + [(X86callseq_end timm:$amt1, timm:$amt2)]>, + Requires<[IsLP64]>; + } ++def : Pat<(X86callseq_start timm:$amt1), ++ (ADJCALLSTACKDOWN64 i32imm:$amt1, 0)>, Requires<[IsLP64]>; + + +- + // x86-64 va_start lowering magic. + let usesCustomInserter = 1, Defs = [EFLAGS] in { + def VASTART_SAVE_XMM_REGS : I<0, Pseudo, +Index: lib/Target/X86/X86InstrInfo.cpp +=================================================================== +--- lib/Target/X86/X86InstrInfo.cpp ++++ lib/Target/X86/X86InstrInfo.cpp +@@ -1692,6 +1692,58 @@ X86InstrInfo::isCoalescableExtInstr(const MachineI + return false; + } + ++int X86InstrInfo::getSPAdjust(const MachineInstr *MI) const { ++ const MachineFunction *MF = MI->getParent()->getParent(); ++ const TargetFrameLowering *TFI = MF->getSubtarget().getFrameLowering(); ++ ++ if (MI->getOpcode() == getCallFrameSetupOpcode() || ++ MI->getOpcode() == getCallFrameDestroyOpcode()) { ++ unsigned StackAlign = TFI->getStackAlignment(); ++ int SPAdj = (MI->getOperand(0).getImm() + StackAlign - 1) / StackAlign * ++ StackAlign; ++ ++ SPAdj -= MI->getOperand(1).getImm(); ++ ++ if (MI->getOpcode() == getCallFrameSetupOpcode()) ++ return SPAdj; ++ else ++ return -SPAdj; ++ } ++ ++ // To know whether a call adjusts the stack, we need information ++ // that is bound to the following ADJCALLSTACKUP pseudo. ++ // Look for the next ADJCALLSTACKUP that follows the call. ++ if (MI->isCall()) { ++ const MachineBasicBlock* MBB = MI->getParent(); ++ auto I = ++MachineBasicBlock::const_iterator(MI); ++ for (auto E = MBB->end(); I != E; ++I) { ++ if (I->getOpcode() == getCallFrameDestroyOpcode() || ++ I->isCall()) ++ break; ++ } ++ ++ // If we could not find a frame destroy opcode, then it has already ++ // been simplified, so we don't care. ++ if (I->getOpcode() != getCallFrameDestroyOpcode()) ++ return 0; ++ ++ return -(I->getOperand(1).getImm()); ++ } ++ ++ // Currently handle only PUSHes we can reasonably expect to see ++ // in call sequences ++ switch (MI->getOpcode()) { ++ default: ++ return 0; ++ case X86::PUSH32i8: ++ case X86::PUSH32r: ++ case X86::PUSH32rmm: ++ case X86::PUSH32rmr: ++ case X86::PUSHi32: ++ return 4; ++ } ++} ++ + /// isFrameOperand - Return true and the FrameIndex if the specified + /// operand and follow operands form a reference to the stack frame. + bool X86InstrInfo::isFrameOperand(const MachineInstr *MI, unsigned int Op, +Index: lib/Target/X86/X86InstrInfo.h +=================================================================== +--- lib/Target/X86/X86InstrInfo.h ++++ lib/Target/X86/X86InstrInfo.h +@@ -175,6 +175,11 @@ class X86InstrInfo final : public X86GenInstrInfo + /// + const X86RegisterInfo &getRegisterInfo() const { return RI; } + ++ /// getSPAdjust - This returns the stack pointer adjustment made by ++ /// this instruction. For x86, we need to handle more complex call ++ /// sequences involving PUSHes. ++ int getSPAdjust(const MachineInstr *MI) const override; ++ + /// isCoalescableExtInstr - Return true if the instruction is a "coalescable" + /// extension instruction. That is, it's like a copy where it's legal for the + /// source to overlap the destination. e.g. X86::MOVSX64rr32. If this returns +Index: lib/Target/X86/X86MachineFunctionInfo.h +=================================================================== +--- lib/Target/X86/X86MachineFunctionInfo.h ++++ lib/Target/X86/X86MachineFunctionInfo.h +@@ -77,6 +77,9 @@ class X86MachineFunctionInfo : public MachineFunct + unsigned ArgumentStackSize; + /// NumLocalDynamics - Number of local-dynamic TLS accesses. + unsigned NumLocalDynamics; ++ /// HasPushSequences - Keeps track of whether this function uses sequences ++ /// of pushes to pass function parameters. ++ bool HasPushSequences; + + private: + /// ForwardedMustTailRegParms - A list of virtual and physical registers +@@ -97,7 +100,8 @@ class X86MachineFunctionInfo : public MachineFunct + VarArgsGPOffset(0), + VarArgsFPOffset(0), + ArgumentStackSize(0), +- NumLocalDynamics(0) {} ++ NumLocalDynamics(0), ++ HasPushSequences(false) {} + + explicit X86MachineFunctionInfo(MachineFunction &MF) + : ForceFramePointer(false), +@@ -113,11 +117,15 @@ class X86MachineFunctionInfo : public MachineFunct + VarArgsGPOffset(0), + VarArgsFPOffset(0), + ArgumentStackSize(0), +- NumLocalDynamics(0) {} ++ NumLocalDynamics(0), ++ HasPushSequences(false) {} + + bool getForceFramePointer() const { return ForceFramePointer;} + void setForceFramePointer(bool forceFP) { ForceFramePointer = forceFP; } + ++ bool getHasPushSequences() const { return HasPushSequences; } ++ void setHasPushSequences(bool HasPush) { HasPushSequences = HasPush; } ++ + bool getRestoreBasePointer() const { return RestoreBasePointerOffset!=0; } + void setRestoreBasePointer(const MachineFunction *MF); + int getRestoreBasePointerOffset() const {return RestoreBasePointerOffset; } +Index: lib/Target/X86/X86RegisterInfo.cpp +=================================================================== +--- lib/Target/X86/X86RegisterInfo.cpp ++++ lib/Target/X86/X86RegisterInfo.cpp +@@ -468,8 +468,6 @@ void + X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, + int SPAdj, unsigned FIOperandNum, + RegScavenger *RS) const { +- assert(SPAdj == 0 && "Unexpected"); +- + MachineInstr &MI = *II; + MachineFunction &MF = *MI.getParent()->getParent(); + const TargetFrameLowering *TFI = MF.getSubtarget().getFrameLowering(); +@@ -506,6 +504,9 @@ X86RegisterInfo::eliminateFrameIndex(MachineBasicB + } else + FIOffset = TFI->getFrameIndexOffset(MF, FrameIndex); + ++ if (BasePtr == StackPtr) ++ FIOffset += SPAdj; ++ + // The frame index format for stackmaps and patchpoints is different from the + // X86 format. It only has a FI and an offset. + if (Opc == TargetOpcode::STACKMAP || Opc == TargetOpcode::PATCHPOINT) { +Index: lib/Target/X86/X86TargetMachine.cpp +=================================================================== +--- lib/Target/X86/X86TargetMachine.cpp ++++ lib/Target/X86/X86TargetMachine.cpp +@@ -154,6 +154,7 @@ class X86PassConfig : public TargetPassConfig { + void addIRPasses() override; + bool addInstSelector() override; + bool addILPOpts() override; ++ void addPreRegAlloc() override; + void addPostRegAlloc() override; + void addPreEmitPass() override; + }; +@@ -187,6 +188,10 @@ bool X86PassConfig::addILPOpts() { + return true; + } + ++void X86PassConfig::addPreRegAlloc() { ++ addPass(createX86CallFrameOptimization()); ++} ++ + void X86PassConfig::addPostRegAlloc() { + addPass(createX86FloatingPointStackifierPass()); + } +Index: test/CodeGen/X86/inalloca-invoke.ll +=================================================================== +--- test/CodeGen/X86/inalloca-invoke.ll ++++ test/CodeGen/X86/inalloca-invoke.ll +@@ -31,7 +31,7 @@ blah: + to label %invoke.cont unwind label %lpad + + ; Uses end as sret param. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Feb 3 02:23:30 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1D188AAC; Tue, 3 Feb 2015 02:23:30 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 09E209AE; Tue, 3 Feb 2015 02:23:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t132NT07040303; Tue, 3 Feb 2015 02:23:29 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t132NTO7040302; Tue, 3 Feb 2015 02:23:29 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201502030223.t132NTO7040302@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 3 Feb 2015 02:23:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278123 - projects/pmac_pmu/sys/kern X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2015 02:23:30 -0000 Author: jhibbits Date: Tue Feb 3 02:23:29 2015 New Revision: 278123 URL: https://svnweb.freebsd.org/changeset/base/278123 Log: Bring back multipass suspend/resume in the bus_generic_{suspend,resume} functions. These were lost in the import. Modified: projects/pmac_pmu/sys/kern/subr_bus.c Modified: projects/pmac_pmu/sys/kern/subr_bus.c ============================================================================== --- projects/pmac_pmu/sys/kern/subr_bus.c Tue Feb 3 00:29:58 2015 (r278122) +++ projects/pmac_pmu/sys/kern/subr_bus.c Tue Feb 3 02:23:29 2015 (r278123) @@ -3695,12 +3695,21 @@ bus_generic_suspend(device_t dev) return (0); TAILQ_FOREACH(child, &dev->children, link) { - error = BUS_SUSPEND_CHILD(dev, child); + /* First traverse the tree, then suspend this child. */ + if (!(child->flags & DF_SUSPENDED)) + error = bus_generic_suspend(child); + if (error == 0) { + if (child->pass >= bus_current_pass && + device_is_attached(child)) + error = BUS_SUSPEND_CHILD(dev, child); + } if (error) { for (child2 = TAILQ_FIRST(&dev->children); child2 && child2 != child; - child2 = TAILQ_NEXT(child2, link)) + child2 = TAILQ_NEXT(child2, link)) { BUS_RESUME_CHILD(dev, child2); + bus_generic_resume(child2); + } return (error); } } @@ -3720,8 +3729,11 @@ bus_generic_resume(device_t dev) device_t child; TAILQ_FOREACH(child, &dev->children, link) { - BUS_RESUME_CHILD(dev, child); + if (child->pass == bus_current_pass && (child->flags & DF_SUSPENDED)) + BUS_RESUME_CHILD(dev, child); /* if resume fails, there's nothing we can usefully do... */ + if (child->pass <= bus_current_pass) + bus_generic_resume(child); } return (0); } From owner-svn-src-projects@FreeBSD.ORG Tue Feb 3 02:24:10 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 49EA6B90; Tue, 3 Feb 2015 02:24:10 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2CCBF9B3; Tue, 3 Feb 2015 02:24:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t132OAsZ040428; Tue, 3 Feb 2015 02:24:10 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t132O9WT040425; Tue, 3 Feb 2015 02:24:09 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201502030224.t132O9WT040425@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 3 Feb 2015 02:24:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278124 - projects/pmac_pmu/sys/powerpc/powermac X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2015 02:24:10 -0000 Author: jhibbits Date: Tue Feb 3 02:24:09 2015 New Revision: 278124 URL: https://svnweb.freebsd.org/changeset/base/278124 Log: Refactor macio to make suspend clearer. Modified: projects/pmac_pmu/sys/powerpc/powermac/macio.c projects/pmac_pmu/sys/powerpc/powermac/maciovar.h Modified: projects/pmac_pmu/sys/powerpc/powermac/macio.c ============================================================================== --- projects/pmac_pmu/sys/powerpc/powermac/macio.c Tue Feb 3 02:23:29 2015 (r278123) +++ projects/pmac_pmu/sys/powerpc/powermac/macio.c Tue Feb 3 02:24:09 2015 (r278124) @@ -71,8 +71,8 @@ struct macio_softc { struct resource *sc_memr; int sc_rev; int sc_devid; - uint32_t saved_fcrs[11]; - uint32_t saved_mbcr; + uint32_t sc_saved_fcrs[11]; + uint32_t sc_saved_mbcr; }; static MALLOC_DEFINE(M_MACIO, "macio", "macio device information"); @@ -717,7 +717,8 @@ macio_enable_wireless(device_t dev, bool return (0); } -int macio_reset_ata(device_t atadev) +int +macio_reset_ata(device_t atadev) { device_t dev; struct macio_softc *sc; @@ -761,68 +762,13 @@ int macio_reset_ata(device_t atadev) return (0); } -static int macio_suspend(device_t dev) +static int +macio_suspend_keylargo(device_t dev) { struct macio_softc *sc = device_get_softc(dev); uint32_t temp; - uint32_t fcr_bits[3][2]; - - powerpc_sync(); - - if (sc->sc_devid == 0x22) { - fcr_bits[0][0] = KEYLARGO_FCR0_SLEEP_SET; - fcr_bits[0][1] = KEYLARGO_FCR0_SLEEP_CLR; - fcr_bits[1][0] = KEYLARGO_FCR1_SLEEP_SET; - fcr_bits[1][1] = KEYLARGO_FCR1_SLEEP_CLR; - fcr_bits[2][0] = KEYLARGO_FCR2_SLEEP_SET; - fcr_bits[2][0] = KEYLARGO_FCR2_SLEEP_SET; - fcr_bits[3][1] = KEYLARGO_FCR3_SLEEP_CLR; - fcr_bits[3][1] = KEYLARGO_FCR3_SLEEP_CLR; - } else if (sc->sc_devid == 0x25) { - fcr_bits[0][0] = PANGEA_FCR0_SLEEP_SET; - fcr_bits[0][1] = PANGEA_FCR0_SLEEP_CLR; - fcr_bits[1][0] = PANGEA_FCR1_SLEEP_SET; - fcr_bits[1][1] = PANGEA_FCR1_SLEEP_CLR; - fcr_bits[2][0] = PANGEA_FCR2_SLEEP_SET; - fcr_bits[2][0] = PANGEA_FCR2_SLEEP_SET; - fcr_bits[3][1] = PANGEA_FCR3_SLEEP_CLR; - fcr_bits[3][1] = PANGEA_FCR3_SLEEP_CLR; - } else if (sc->sc_devid == 0x3e) { - fcr_bits[0][0] = INTREPID_FCR0_SLEEP_SET; - fcr_bits[0][1] = INTREPID_FCR0_SLEEP_CLR; - fcr_bits[1][0] = INTREPID_FCR1_SLEEP_SET; - fcr_bits[1][1] = INTREPID_FCR1_SLEEP_CLR; - fcr_bits[2][0] = INTREPID_FCR2_SLEEP_SET; - fcr_bits[2][0] = INTREPID_FCR2_SLEEP_SET; - fcr_bits[3][1] = INTREPID_FCR3_SLEEP_CLR; - fcr_bits[3][1] = INTREPID_FCR3_SLEEP_CLR; - } else if (sc->sc_devid == 0x4f) { - fcr_bits[0][0] = K2_FCR0_SLEEP_SET; - fcr_bits[0][1] = K2_FCR0_SLEEP_CLR; - fcr_bits[1][0] = K2_FCR1_SLEEP_SET; - fcr_bits[1][1] = K2_FCR1_SLEEP_CLR; - fcr_bits[2][0] = K2_FCR2_SLEEP_SET; - fcr_bits[2][0] = K2_FCR2_SLEEP_SET; - fcr_bits[3][1] = K2_FCR3_SLEEP_CLR; - fcr_bits[3][1] = K2_FCR3_SLEEP_CLR; - } - - sc->saved_fcrs[0] = bus_read_4(sc->sc_memr, KEYLARGO_FCR0); - sc->saved_fcrs[1] = bus_read_4(sc->sc_memr, KEYLARGO_FCR1); - sc->saved_fcrs[2] = bus_read_4(sc->sc_memr, KEYLARGO_FCR2); - sc->saved_fcrs[3] = bus_read_4(sc->sc_memr, KEYLARGO_FCR3); - sc->saved_fcrs[4] = bus_read_4(sc->sc_memr, KEYLARGO_FCR4); - sc->saved_fcrs[5] = bus_read_4(sc->sc_memr, KEYLARGO_FCR5); - - if (sc->sc_devid == 0x4f) { - sc->saved_fcrs[6] = bus_read_4(sc->sc_memr, K2_FCR6); - sc->saved_fcrs[7] = bus_read_4(sc->sc_memr, K2_FCR7); - sc->saved_fcrs[8] = bus_read_4(sc->sc_memr, K2_FCR8); - sc->saved_fcrs[9] = bus_read_4(sc->sc_memr, K2_FCR9); - sc->saved_fcrs[10] = bus_read_4(sc->sc_memr, K2_FCR10); - } - temp = sc->saved_fcrs[0]; + temp = sc->sc_saved_fcrs[0]; if (sc->sc_devid == 0x22) { temp |= FCR0_USB_REF_SUSPEND; bus_write_4(sc->sc_memr, KEYLARGO_FCR0, temp); @@ -830,63 +776,185 @@ static int macio_suspend(device_t dev) DELAY(1000); } - temp |= fcr_bits[0][0]; - temp &= ~fcr_bits[0][1]; + temp = sc->sc_saved_fcrs[0]; + temp |= KEYLARGO_FCR0_SLEEP_SET; + temp &= KEYLARGO_FCR0_SLEEP_CLR; bus_write_4(sc->sc_memr, KEYLARGO_FCR0, temp); eieio(); powerpc_sync(); if (sc->sc_devid == 0x22) { temp = bus_read_4(sc->sc_memr, KEYLARGO_MEDIABAY); - sc->saved_mbcr = temp; + sc->sc_saved_mbcr = temp; temp |= KEYLARGO_MB0_DEV_ENABLE; bus_write_4(sc->sc_memr, KEYLARGO_MEDIABAY, temp); eieio(); powerpc_sync(); } - temp = sc->saved_fcrs[1]; - temp |= fcr_bits[1][0]; - temp &= ~fcr_bits[1][1]; + temp = sc->sc_saved_fcrs[1]; + temp |= KEYLARGO_FCR1_SLEEP_SET; + temp &= KEYLARGO_FCR1_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR1, temp); + eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[2]; + temp |= KEYLARGO_FCR2_SLEEP_SET; + temp &= KEYLARGO_FCR2_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR2, temp); + eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[3]; + temp |= KEYLARGO_FCR3_SLEEP_SET; + temp &= KEYLARGO_FCR3_SLEEP_CLR; + if (sc->sc_rev >= 2) + temp |= (FCR3_SHUTDOWN_PLL_2X | FCR3_SHUTDOWN_PLL_TOTAL); + bus_write_4(sc->sc_memr, KEYLARGO_FCR3, temp); + eieio(); powerpc_sync(); + return (0); +} + +static int +macio_suspend_pangea(device_t dev) +{ + struct macio_softc *sc = device_get_softc(dev); + uint32_t temp; + + temp = sc->sc_saved_fcrs[0]; + temp |= PANGEA_FCR0_SLEEP_SET; + temp &= PANGEA_FCR0_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR0, temp); + eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[1]; + temp |= PANGEA_FCR1_SLEEP_SET; + temp &= PANGEA_FCR1_SLEEP_CLR; bus_write_4(sc->sc_memr, KEYLARGO_FCR1, temp); eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[2]; + temp |= PANGEA_FCR2_SLEEP_SET; + temp &= PANGEA_FCR2_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR2, temp); + eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[3]; + temp |= PANGEA_FCR3_SLEEP_SET; + temp &= PANGEA_FCR3_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR3, temp); + eieio(); powerpc_sync(); + + return (0); +} + +static int +macio_suspend_intrepid(device_t dev) +{ + struct macio_softc *sc = device_get_softc(dev); + uint32_t temp; - temp = sc->saved_fcrs[2]; - temp |= fcr_bits[2][0]; - temp &= ~fcr_bits[2][1]; + temp = sc->sc_saved_fcrs[0]; + temp |= INTREPID_FCR0_SLEEP_SET; + temp &= INTREPID_FCR0_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR0, temp); + eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[1]; + temp |= INTREPID_FCR1_SLEEP_SET; + temp &= INTREPID_FCR1_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR1, temp); + eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[2]; + temp |= INTREPID_FCR2_SLEEP_SET; + temp &= INTREPID_FCR2_SLEEP_CLR; bus_write_4(sc->sc_memr, KEYLARGO_FCR2, temp); eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[3]; + temp |= INTREPID_FCR3_SLEEP_SET; + temp &= INTREPID_FCR3_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR3, temp); + eieio(); powerpc_sync(); - temp = sc->saved_fcrs[3]; - temp |= fcr_bits[3][0]; - temp &= ~fcr_bits[3][1]; - if (sc->sc_rev >= 2) - temp |= (FCR3_SHUTDOWN_PLL_2X | FCR3_SHUTDOWN_PLL_TOTAL); + return (0); +} + +static int +macio_suspend_k2(device_t dev) +{ + struct macio_softc *sc = device_get_softc(dev); + uint32_t temp; + + temp = sc->sc_saved_fcrs[0]; + temp |= K2_FCR0_SLEEP_SET; + temp &= K2_FCR0_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR0, temp); + eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[1]; + temp |= K2_FCR1_SLEEP_SET; + temp &= K2_FCR1_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR1, temp); + eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[2]; + temp |= K2_FCR2_SLEEP_SET; + temp &= K2_FCR2_SLEEP_CLR; + bus_write_4(sc->sc_memr, KEYLARGO_FCR2, temp); + eieio(); powerpc_sync(); + temp = sc->sc_saved_fcrs[3]; + temp |= K2_FCR3_SLEEP_SET; + temp &= K2_FCR3_SLEEP_CLR; bus_write_4(sc->sc_memr, KEYLARGO_FCR3, temp); eieio(); powerpc_sync(); - powerpc_sync(); + + return (0); +} + +static int +macio_suspend(device_t dev) +{ + struct macio_softc *sc = device_get_softc(dev); + + sc->sc_saved_fcrs[0] = bus_read_4(sc->sc_memr, KEYLARGO_FCR0); + sc->sc_saved_fcrs[1] = bus_read_4(sc->sc_memr, KEYLARGO_FCR1); + sc->sc_saved_fcrs[2] = bus_read_4(sc->sc_memr, KEYLARGO_FCR2); + sc->sc_saved_fcrs[3] = bus_read_4(sc->sc_memr, KEYLARGO_FCR3); + sc->sc_saved_fcrs[4] = bus_read_4(sc->sc_memr, KEYLARGO_FCR4); + sc->sc_saved_fcrs[5] = bus_read_4(sc->sc_memr, KEYLARGO_FCR5); + + if (sc->sc_devid == 0x4f) { + sc->sc_saved_fcrs[6] = bus_read_4(sc->sc_memr, K2_FCR6); + sc->sc_saved_fcrs[7] = bus_read_4(sc->sc_memr, K2_FCR7); + sc->sc_saved_fcrs[8] = bus_read_4(sc->sc_memr, K2_FCR8); + sc->sc_saved_fcrs[9] = bus_read_4(sc->sc_memr, K2_FCR9); + sc->sc_saved_fcrs[10] = bus_read_4(sc->sc_memr, K2_FCR10); + } + + if (sc->sc_devid == 0x22) { + return macio_suspend_keylargo(dev); + } else if (sc->sc_devid == 0x25) { + return macio_suspend_pangea(dev); + } else if (sc->sc_devid == 0x3e) { + return macio_suspend_intrepid(dev); + } else if (sc->sc_devid == 0x4f) { + return macio_suspend_k2(dev); + } + return (0); } -static int macio_resume(device_t dev) +static int +macio_resume(device_t dev) { struct macio_softc *sc = device_get_softc(dev); if (sc->sc_devid == 0x22) - bus_write_4(sc->sc_memr, KEYLARGO_MEDIABAY, sc->saved_mbcr); + bus_write_4(sc->sc_memr, KEYLARGO_MEDIABAY, sc->sc_saved_mbcr); - bus_write_4(sc->sc_memr, KEYLARGO_FCR0, sc->saved_fcrs[0]); - bus_write_4(sc->sc_memr, KEYLARGO_FCR1, sc->saved_fcrs[1]); - bus_write_4(sc->sc_memr, KEYLARGO_FCR2, sc->saved_fcrs[2]); - bus_write_4(sc->sc_memr, KEYLARGO_FCR3, sc->saved_fcrs[3]); - bus_write_4(sc->sc_memr, KEYLARGO_FCR4, sc->saved_fcrs[4]); - bus_write_4(sc->sc_memr, KEYLARGO_FCR5, sc->saved_fcrs[5]); + bus_write_4(sc->sc_memr, KEYLARGO_FCR0, sc->sc_saved_fcrs[0]); + bus_write_4(sc->sc_memr, KEYLARGO_FCR1, sc->sc_saved_fcrs[1]); + bus_write_4(sc->sc_memr, KEYLARGO_FCR2, sc->sc_saved_fcrs[2]); + bus_write_4(sc->sc_memr, KEYLARGO_FCR3, sc->sc_saved_fcrs[3]); + bus_write_4(sc->sc_memr, KEYLARGO_FCR4, sc->sc_saved_fcrs[4]); + bus_write_4(sc->sc_memr, KEYLARGO_FCR5, sc->sc_saved_fcrs[5]); if (sc->sc_devid == 0x4f) { - bus_write_4(sc->sc_memr, K2_FCR6, sc->saved_fcrs[6]); - bus_write_4(sc->sc_memr, K2_FCR7, sc->saved_fcrs[7]); - bus_write_4(sc->sc_memr, K2_FCR8, sc->saved_fcrs[8]); - bus_write_4(sc->sc_memr, K2_FCR9, sc->saved_fcrs[9]); - bus_write_4(sc->sc_memr, K2_FCR10, sc->saved_fcrs[10]); + bus_write_4(sc->sc_memr, K2_FCR6, sc->sc_saved_fcrs[6]); + bus_write_4(sc->sc_memr, K2_FCR7, sc->sc_saved_fcrs[7]); + bus_write_4(sc->sc_memr, K2_FCR8, sc->sc_saved_fcrs[8]); + bus_write_4(sc->sc_memr, K2_FCR9, sc->sc_saved_fcrs[9]); + bus_write_4(sc->sc_memr, K2_FCR10, sc->sc_saved_fcrs[10]); } /* Let things settle. */ Modified: projects/pmac_pmu/sys/powerpc/powermac/maciovar.h ============================================================================== --- projects/pmac_pmu/sys/powerpc/powermac/maciovar.h Tue Feb 3 02:23:29 2015 (r278123) +++ projects/pmac_pmu/sys/powerpc/powermac/maciovar.h Tue Feb 3 02:24:09 2015 (r278124) @@ -249,7 +249,7 @@ #define PANGEA_FCR2_SLEEP_SET FCR2_ALT_DATA_OUT #define PANGEA_FCR2_SLEEP_CLR 0 -#define PANGEEA_FCR3_SLEEP_SET (FCR3_SHUTDOWN_PLL_KW35 | \ +#define PANGEA_FCR3_SLEEP_SET (FCR3_SHUTDOWN_PLL_KW35 | \ FCR3_SHUTDOWN_PLL_KW4 | FCR3_SHUTDOWN_PLL_KW6) #define PANGEA_FCR3_SLEEP_CLR (FCR3_CLK_49_ENABLE | FCR3_CLK_45_ENABLE | \ FCR3_CLK_31_ENABLE | FCR3_TMR_CLK18_ENABLE | \ From owner-svn-src-projects@FreeBSD.ORG Tue Feb 3 02:25:03 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1262AC88; Tue, 3 Feb 2015 02:25:03 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F14589B8; Tue, 3 Feb 2015 02:25:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t132P2FJ040596; Tue, 3 Feb 2015 02:25:02 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t132P2Z5040595; Tue, 3 Feb 2015 02:25:02 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201502030225.t132P2Z5040595@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 3 Feb 2015 02:25:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278125 - projects/pmac_pmu/sys/powerpc/powermac X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2015 02:25:03 -0000 Author: jhibbits Date: Tue Feb 3 02:25:02 2015 New Revision: 278125 URL: https://svnweb.freebsd.org/changeset/base/278125 Log: Use stop_all_proc()/resume_all_proc(), like acpi does. Modified: projects/pmac_pmu/sys/powerpc/powermac/pmu.c Modified: projects/pmac_pmu/sys/powerpc/powermac/pmu.c ============================================================================== --- projects/pmac_pmu/sys/powerpc/powermac/pmu.c Tue Feb 3 02:24:09 2015 (r278124) +++ projects/pmac_pmu/sys/powerpc/powermac/pmu.c Tue Feb 3 02:25:02 2015 (r278125) @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include /* For syncer_suspend()/syncer_resume() */ #include #include #include @@ -1226,6 +1227,9 @@ pmu_sleep(SYSCTL_HANDLER_ARGS) if (error || !req->newptr) return (error); + EVENTHANDLER_INVOKE(power_suspend_early); + stop_all_proc(); + syncer_suspend(); EVENTHANDLER_INVOKE(power_suspend); mtx_lock(&Giant); error = DEVICE_SUSPEND(root_bus); @@ -1237,6 +1241,8 @@ pmu_sleep(SYSCTL_HANDLER_ARGS) DEVICE_RESUME(root_bus); } mtx_unlock(&Giant); + syncer_resume(); + resume_all_proc(); EVENTHANDLER_INVOKE(power_resume); printf("Fully resumed.\n"); From owner-svn-src-projects@FreeBSD.ORG Wed Feb 4 04:55:05 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DE78E824; Wed, 4 Feb 2015 04:55:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF1F47E8; Wed, 4 Feb 2015 04:55:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t144t5EJ099239; Wed, 4 Feb 2015 04:55:05 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t144t5bA099237; Wed, 4 Feb 2015 04:55:05 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201502040455.t144t5bA099237@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 4 Feb 2015 04:55:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278181 - in projects/pmac_pmu/sys/powerpc: include powerpc X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2015 04:55:06 -0000 Author: jhibbits Date: Wed Feb 4 04:55:04 2015 New Revision: 278181 URL: https://svnweb.freebsd.org/changeset/base/278181 Log: Save the rest of the OpenPIC registers. While here, convert to using openpic_read()/openpic_write() for PIC accesses, to match the rest of the file, and clean up style(9). Modified: projects/pmac_pmu/sys/powerpc/include/openpicvar.h projects/pmac_pmu/sys/powerpc/powerpc/openpic.c Modified: projects/pmac_pmu/sys/powerpc/include/openpicvar.h ============================================================================== --- projects/pmac_pmu/sys/powerpc/include/openpicvar.h Wed Feb 4 00:56:55 2015 (r278180) +++ projects/pmac_pmu/sys/powerpc/include/openpicvar.h Wed Feb 4 04:55:04 2015 (r278181) @@ -56,10 +56,13 @@ struct openpic_softc { /* Saved states. */ uint32_t sc_saved_config; + uint32_t sc_saved_spurious; + uint32_t sc_saved_tfreq; uint32_t sc_saved_ipis[4]; uint32_t sc_saved_prios[4]; struct openpic_timer sc_saved_timers[OPENPIC_TIMERS]; - uint32_t sc_saved_vectors[OPENPIC_SRC_VECTOR_COUNT]; + uint32_t sc_saved_src[OPENPIC_SRC_VECTOR_COUNT]; + uint32_t sc_saved_dest[OPENPIC_SRC_VECTOR_COUNT]; }; Modified: projects/pmac_pmu/sys/powerpc/powerpc/openpic.c ============================================================================== --- projects/pmac_pmu/sys/powerpc/powerpc/openpic.c Wed Feb 4 00:56:55 2015 (r278180) +++ projects/pmac_pmu/sys/powerpc/powerpc/openpic.c Wed Feb 4 04:55:04 2015 (r278181) @@ -389,25 +389,35 @@ openpic_suspend(device_t dev) sc = device_get_softc(dev); - sc->sc_saved_config = bus_read_4(sc->sc_memr, OPENPIC_CONFIG); + sc->sc_saved_config = openpic_read(sc, OPENPIC_CONFIG); + sc->sc_saved_spurious = openpic_read(sc, OPENPIC_SPURIOUS_VECTOR); + sc->sc_saved_tfreq = openpic_read(sc, OPENPIC_TFREQ); for (i = 0; i < 4; i++) { - sc->sc_saved_ipis[i] = bus_read_4(sc->sc_memr, OPENPIC_IPI_VECTOR(i)); + sc->sc_saved_ipis[i] = + openpic_read(sc, OPENPIC_IPI_VECTOR(i)); } for (i = 0; i < 4; i++) { - sc->sc_saved_prios[i] = bus_read_4(sc->sc_memr, OPENPIC_PCPU_TPR(i)); + sc->sc_saved_prios[i] = + openpic_read(sc, OPENPIC_PCPU_TPR(i)); } for (i = 0; i < OPENPIC_TIMERS; i++) { - sc->sc_saved_timers[i].tcnt = bus_read_4(sc->sc_memr, OPENPIC_TCNT(i)); - sc->sc_saved_timers[i].tbase = bus_read_4(sc->sc_memr, OPENPIC_TBASE(i)); - sc->sc_saved_timers[i].tvec = bus_read_4(sc->sc_memr, OPENPIC_TVEC(i)); - sc->sc_saved_timers[i].tdst = bus_read_4(sc->sc_memr, OPENPIC_TDST(i)); + sc->sc_saved_timers[i].tcnt = + openpic_read(sc, OPENPIC_TCNT(i)); + sc->sc_saved_timers[i].tbase = + openpic_read(sc, OPENPIC_TBASE(i)); + sc->sc_saved_timers[i].tvec = + openpic_read(sc, OPENPIC_TVEC(i)); + sc->sc_saved_timers[i].tdst = + openpic_read(sc, OPENPIC_TDST(i)); } - for (i = 0; i < OPENPIC_SRC_VECTOR_COUNT; i++) - sc->sc_saved_vectors[i] = - bus_read_4(sc->sc_memr, OPENPIC_SRC_VECTOR(i)) & ~OPENPIC_ACTIVITY; + for (i = 0; i < OPENPIC_SRC_VECTOR_COUNT; i++) { + sc->sc_saved_src[i] = openpic_read(sc, + OPENPIC_SRC_VECTOR(i)) & ~OPENPIC_ACTIVITY; + sc->sc_saved_dest[i] = openpic_read(sc, OPENPIC_IDEST(i)); + } return (0); } @@ -420,24 +430,34 @@ openpic_resume(device_t dev) sc = device_get_softc(dev); - sc->sc_saved_config = bus_read_4(sc->sc_memr, OPENPIC_CONFIG); + openpic_write(sc, OPENPIC_CONFIG, sc->sc_saved_config); + openpic_write(sc, OPENPIC_SPURIOUS_VECTOR, sc->sc_saved_spurious); + openpic_write(sc, OPENPIC_TFREQ, sc->sc_saved_tfreq); for (i = 0; i < 4; i++) { - bus_write_4(sc->sc_memr, OPENPIC_IPI_VECTOR(i), sc->sc_saved_ipis[i]); + openpic_write(sc, OPENPIC_IPI_VECTOR(i), + sc->sc_saved_ipis[i]); } for (i = 0; i < 4; i++) { - bus_write_4(sc->sc_memr, OPENPIC_PCPU_TPR(i), sc->sc_saved_prios[i]); + openpic_write(sc, OPENPIC_PCPU_TPR(i), + sc->sc_saved_prios[i]); } for (i = 0; i < OPENPIC_TIMERS; i++) { - bus_write_4(sc->sc_memr, OPENPIC_TCNT(i), sc->sc_saved_timers[i].tcnt); - bus_write_4(sc->sc_memr, OPENPIC_TBASE(i), sc->sc_saved_timers[i].tbase); - bus_write_4(sc->sc_memr, OPENPIC_TVEC(i), sc->sc_saved_timers[i].tvec); - bus_write_4(sc->sc_memr, OPENPIC_TDST(i), sc->sc_saved_timers[i].tdst); + openpic_write(sc, OPENPIC_TCNT(i), + sc->sc_saved_timers[i].tcnt); + openpic_write(sc, OPENPIC_TBASE(i), + sc->sc_saved_timers[i].tbase); + openpic_write(sc, OPENPIC_TVEC(i), + sc->sc_saved_timers[i].tvec); + openpic_write(sc, OPENPIC_TDST(i), + sc->sc_saved_timers[i].tdst); } - for (i = 0; i < OPENPIC_SRC_VECTOR_COUNT; i++) - bus_write_4(sc->sc_memr, OPENPIC_SRC_VECTOR(i), sc->sc_saved_vectors[i]); + for (i = 0; i < OPENPIC_SRC_VECTOR_COUNT; i++) { + openpic_write(sc, OPENPIC_SRC_VECTOR(i), sc->sc_saved_src[i]); + openpic_write(sc, OPENPIC_IDEST(i), sc->sc_saved_dest[i]); + } return (0); } From owner-svn-src-projects@FreeBSD.ORG Wed Feb 4 10:59:57 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0ED6BCC1; Wed, 4 Feb 2015 10:59:57 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EAD5AFA8; Wed, 4 Feb 2015 10:59:56 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t14AxumL066953; Wed, 4 Feb 2015 10:59:56 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t14Axq7p066936; Wed, 4 Feb 2015 10:59:52 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201502041059.t14Axq7p066936@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 4 Feb 2015 10:59:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278196 - in projects/building-blocks: cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/plockstat cddl/contrib/opensolaris/lib... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2015 10:59:57 -0000 Author: ngie Date: Wed Feb 4 10:59:51 2015 New Revision: 278196 URL: https://svnweb.freebsd.org/changeset/base/278196 Log: MFhead @ r278194 Added: projects/building-blocks/contrib/llvm/patches/patch-29-clang-add-mips-triples.diff - copied unchanged from r278194, head/contrib/llvm/patches/patch-29-clang-add-mips-triples.diff projects/building-blocks/contrib/llvm/patches/patch-30-llvm-r226664-aarch64-x18.diff - copied unchanged from r278194, head/contrib/llvm/patches/patch-30-llvm-r226664-aarch64-x18.diff projects/building-blocks/contrib/llvm/patches/patch-31-clang-r227062-fixes-x18.diff - copied unchanged from r278194, head/contrib/llvm/patches/patch-31-clang-r227062-fixes-x18.diff projects/building-blocks/sys/amd64/include/pvclock.h - copied unchanged from r278194, head/sys/amd64/include/pvclock.h projects/building-blocks/sys/i386/include/pvclock.h - copied unchanged from r278194, head/sys/i386/include/pvclock.h projects/building-blocks/sys/x86/include/pvclock.h - copied unchanged from r278194, head/sys/x86/include/pvclock.h projects/building-blocks/sys/x86/x86/pvclock.c - copied unchanged from r278194, head/sys/x86/x86/pvclock.c Deleted: projects/building-blocks/contrib/llvm/patches/patch-29-llvm-r226664-aarch64-x18.diff projects/building-blocks/contrib/llvm/patches/patch-30-clang-r227062-fixes-x18.diff Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PDESC_ZERO.badlib.exe projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_FUNC.badfunc.exe projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_LIB.libdash.exe projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.alldash.exe projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.badname.exe projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.globdash.exe projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_OFF.toobig.exe projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.coverage.exe projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.emptystack.exe projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/plockstat/tst.available.exe (contents, props changed) projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/plockstat/tst.libmap.exe (contents, props changed) projects/building-blocks/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c projects/building-blocks/lib/msun/src/s_scalbln.c projects/building-blocks/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/building-blocks/release/doc/share/mk/doc.relnotes.mk projects/building-blocks/release/tools/gce.conf projects/building-blocks/sbin/Makefile projects/building-blocks/sbin/ifconfig/af_inet6.c projects/building-blocks/sbin/ifconfig/ifconfig.c projects/building-blocks/share/man/man5/src.conf.5 projects/building-blocks/share/mk/src.opts.mk projects/building-blocks/sys/arm/ti/am335x/am335x_prcm.c projects/building-blocks/sys/cam/cam.h projects/building-blocks/sys/cam/cam_periph.c projects/building-blocks/sys/cam/ctl/ctl_frontend_iscsi.c projects/building-blocks/sys/cam/ctl/ctl_frontend_iscsi.h projects/building-blocks/sys/cam/scsi/scsi_cd.c projects/building-blocks/sys/cam/scsi/scsi_da.c projects/building-blocks/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/building-blocks/sys/cddl/dev/dtrace/dtrace_load.c projects/building-blocks/sys/cddl/dev/dtrace/dtrace_unload.c projects/building-blocks/sys/conf/files.amd64 projects/building-blocks/sys/conf/files.i386 projects/building-blocks/sys/conf/options projects/building-blocks/sys/dev/drm2/i915/i915_drv.c projects/building-blocks/sys/dev/drm2/i915/i915_drv.h projects/building-blocks/sys/dev/drm2/i915/intel_dp.c projects/building-blocks/sys/dev/drm2/i915/intel_iic.c projects/building-blocks/sys/dev/drm2/ttm/ttm_bo.c projects/building-blocks/sys/dev/drm2/ttm/ttm_page_alloc.c projects/building-blocks/sys/dev/fe/if_fe_isa.c projects/building-blocks/sys/dev/gpio/gpiobus.c projects/building-blocks/sys/dev/gpio/gpiobusvar.h projects/building-blocks/sys/dev/gpio/ofw_gpiobus.c projects/building-blocks/sys/dev/iscsi/iscsi_proto.h projects/building-blocks/sys/dev/usb/controller/xhci.c projects/building-blocks/sys/dev/usb/usb_core.h projects/building-blocks/sys/dev/usb/usb_msctest.c projects/building-blocks/sys/dev/usb/usb_transfer.c projects/building-blocks/sys/dev/xen/timer/timer.c projects/building-blocks/sys/fs/tmpfs/tmpfs_subr.c projects/building-blocks/sys/i386/xen/clock.c projects/building-blocks/sys/kern/sys_pipe.c projects/building-blocks/sys/mips/atheros/if_argevar.h projects/building-blocks/sys/netinet/ip_output.c projects/building-blocks/sys/ofed/include/linux/linux_idr.c projects/building-blocks/sys/rpc/svc_vc.c projects/building-blocks/tools/build/mk/OptionalObsoleteFiles.inc projects/building-blocks/usr.sbin/ctladm/ctladm.c projects/building-blocks/usr.sbin/ctld/ctld.c projects/building-blocks/usr.sbin/ctld/ctld.h projects/building-blocks/usr.sbin/ctld/kernel.c projects/building-blocks/usr.sbin/pkg/pkg.c Directory Properties: projects/building-blocks/ (props changed) projects/building-blocks/cddl/ (props changed) projects/building-blocks/cddl/contrib/opensolaris/ (props changed) projects/building-blocks/contrib/llvm/ (props changed) projects/building-blocks/etc/ (props changed) projects/building-blocks/sbin/ (props changed) projects/building-blocks/share/ (props changed) projects/building-blocks/sys/ (props changed) projects/building-blocks/sys/cddl/contrib/opensolaris/ (props changed) projects/building-blocks/sys/conf/ (props changed) Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PDESC_ZERO.badlib.exe ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PDESC_ZERO.badlib.exe Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PDESC_ZERO.badlib.exe Wed Feb 4 10:59:51 2015 (r278196) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_FUNC.badfunc.exe ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_FUNC.badfunc.exe Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_FUNC.badfunc.exe Wed Feb 4 10:59:51 2015 (r278196) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_LIB.libdash.exe ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_LIB.libdash.exe Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_LIB.libdash.exe Wed Feb 4 10:59:51 2015 (r278196) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.alldash.exe ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.alldash.exe Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.alldash.exe Wed Feb 4 10:59:51 2015 (r278196) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.badname.exe ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.badname.exe Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.badname.exe Wed Feb 4 10:59:51 2015 (r278196) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.globdash.exe ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.globdash.exe Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.globdash.exe Wed Feb 4 10:59:51 2015 (r278196) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_OFF.toobig.exe ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_OFF.toobig.exe Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_OFF.toobig.exe Wed Feb 4 10:59:51 2015 (r278196) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.coverage.exe ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.coverage.exe Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.coverage.exe Wed Feb 4 10:59:51 2015 (r278196) @@ -1,4 +1,4 @@ -#!/usr/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.emptystack.exe ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.emptystack.exe Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.emptystack.exe Wed Feb 4 10:59:51 2015 (r278196) @@ -1,4 +1,4 @@ -#!/usr/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/plockstat/tst.available.exe ============================================================================== Binary file (source and/or target). No diff available. Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/plockstat/tst.libmap.exe ============================================================================== Binary file (source and/or target). No diff available. Modified: projects/building-blocks/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c ============================================================================== --- projects/building-blocks/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Wed Feb 4 10:59:51 2015 (r278196) @@ -382,6 +382,9 @@ dt_stddev(uint64_t *data, uint64_t norma int64_t norm_avg; uint64_t diff[2]; + if (data[0] == 0) + return (0); + /* * The standard approximation for standard deviation is * sqrt(average(x**2) - average(x)**2), i.e. the square root Copied: projects/building-blocks/contrib/llvm/patches/patch-29-clang-add-mips-triples.diff (from r278194, head/contrib/llvm/patches/patch-29-clang-add-mips-triples.diff) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/building-blocks/contrib/llvm/patches/patch-29-clang-add-mips-triples.diff Wed Feb 4 10:59:51 2015 (r278196, copy of r278194, head/contrib/llvm/patches/patch-29-clang-add-mips-triples.diff) @@ -0,0 +1,33 @@ +Allow clang to be built for mips/mips64 backend types by adding our mips +triple ids + +This only allows testing and does not change the defaults for mips/mips64. +They still build/use gcc by default. + +Differential Revision: https://reviews.freebsd.org/D1190 +Reviewed by: dim + +Introduced here: http://svnweb.freebsd.org/changeset/base/277423 + +Index: tools/clang/lib/Driver/Tools.cpp +=================================================================== +--- tools/clang/lib/Driver/Tools.cpp ++++ tools/clang/lib/Driver/Tools.cpp +@@ -6592,6 +6592,17 @@ void freebsd::Link::ConstructJob(Compilation &C, c + CmdArgs.push_back("elf32ppc_fbsd"); + } + ++ if (Arg *A = Args.getLastArg(options::OPT_G)) { ++ if (ToolChain.getArch() == llvm::Triple::mips || ++ ToolChain.getArch() == llvm::Triple::mipsel || ++ ToolChain.getArch() == llvm::Triple::mips64 || ++ ToolChain.getArch() == llvm::Triple::mips64el) { ++ StringRef v = A->getValue(); ++ CmdArgs.push_back(Args.MakeArgString("-G" + v)); ++ A->claim(); ++ } ++ } ++ + if (Output.isFilename()) { + CmdArgs.push_back("-o"); + CmdArgs.push_back(Output.getFilename()); Copied: projects/building-blocks/contrib/llvm/patches/patch-30-llvm-r226664-aarch64-x18.diff (from r278194, head/contrib/llvm/patches/patch-30-llvm-r226664-aarch64-x18.diff) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/building-blocks/contrib/llvm/patches/patch-30-llvm-r226664-aarch64-x18.diff Wed Feb 4 10:59:51 2015 (r278196, copy of r278194, head/contrib/llvm/patches/patch-30-llvm-r226664-aarch64-x18.diff) @@ -0,0 +1,83 @@ +Pull in r226664 from upstream llvm trunk (by Tim Northover): + + AArch64: add backend option to reserve x18 (platform register) + + AAPCS64 says that it's up to the platform to specify whether x18 is + reserved, and a first step on that way is to add a flag controlling + it. + + From: Andrew Turner + +Introduced here: http://svnweb.freebsd.org/changeset/base/277774 + +Index: lib/Target/AArch64/AArch64RegisterInfo.cpp +=================================================================== +--- lib/Target/AArch64/AArch64RegisterInfo.cpp ++++ lib/Target/AArch64/AArch64RegisterInfo.cpp +@@ -33,6 +33,10 @@ using namespace llvm; + #define GET_REGINFO_TARGET_DESC + #include "AArch64GenRegisterInfo.inc" + ++static cl::opt ++ReserveX18("aarch64-reserve-x18", cl::Hidden, ++ cl::desc("Reserve X18, making it unavailable as GPR")); ++ + AArch64RegisterInfo::AArch64RegisterInfo(const AArch64InstrInfo *tii, + const AArch64Subtarget *sti) + : AArch64GenRegisterInfo(AArch64::LR), TII(tii), STI(sti) {} +@@ -90,7 +94,7 @@ AArch64RegisterInfo::getReservedRegs(const Machine + Reserved.set(AArch64::W29); + } + +- if (STI->isTargetDarwin()) { ++ if (STI->isTargetDarwin() || ReserveX18) { + Reserved.set(AArch64::X18); // Platform register + Reserved.set(AArch64::W18); + } +@@ -117,7 +121,7 @@ bool AArch64RegisterInfo::isReservedReg(const Mach + return true; + case AArch64::X18: + case AArch64::W18: +- return STI->isTargetDarwin(); ++ return STI->isTargetDarwin() || ReserveX18; + case AArch64::FP: + case AArch64::W29: + return TFI->hasFP(MF) || STI->isTargetDarwin(); +@@ -379,7 +383,7 @@ unsigned AArch64RegisterInfo::getRegPressureLimit( + case AArch64::GPR64commonRegClassID: + return 32 - 1 // XZR/SP + - (TFI->hasFP(MF) || STI->isTargetDarwin()) // FP +- - STI->isTargetDarwin() // X18 reserved as platform register ++ - (STI->isTargetDarwin() || ReserveX18) // X18 reserved as platform register + - hasBasePointer(MF); // X19 + case AArch64::FPR8RegClassID: + case AArch64::FPR16RegClassID: +Index: test/CodeGen/AArch64/arm64-platform-reg.ll +=================================================================== +--- test/CodeGen/AArch64/arm64-platform-reg.ll ++++ test/CodeGen/AArch64/arm64-platform-reg.ll +@@ -1,4 +1,5 @@ +-; RUN: llc -mtriple=arm64-apple-ios -o - %s | FileCheck %s --check-prefix=CHECK-DARWIN ++; RUN: llc -mtriple=arm64-apple-ios -o - %s | FileCheck %s --check-prefix=CHECK-RESERVE-X18 ++; RUN: llc -mtriple=arm64-freebsd-gnu -aarch64-reserve-x18 -o - %s | FileCheck %s --check-prefix=CHECK-RESERVE-X18 + ; RUN: llc -mtriple=arm64-linux-gnu -o - %s | FileCheck %s + + ; x18 is reserved as a platform register on Darwin but not on other +@@ -16,11 +17,11 @@ define void @keep_live() { + ; CHECK: ldr x18 + ; CHECK: str x18 + +-; CHECK-DARWIN-NOT: ldr fp +-; CHECK-DARWIN-NOT: ldr x18 +-; CHECK-DARWIN: Spill +-; CHECK-DARWIN-NOT: ldr fp +-; CHECK-DARWIN-NOT: ldr x18 +-; CHECK-DARWIN: ret ++; CHECK-RESERVE-X18-NOT: ldr fp ++; CHECK-RESERVE-X18-NOT: ldr x18 ++; CHECK-RESERVE-X18: Spill ++; CHECK-RESERVE-X18-NOT: ldr fp ++; CHECK-RESERVE-X18-NOT: ldr x18 ++; CHECK-RESERVE-X18: ret + ret void + } Copied: projects/building-blocks/contrib/llvm/patches/patch-31-clang-r227062-fixes-x18.diff (from r278194, head/contrib/llvm/patches/patch-31-clang-r227062-fixes-x18.diff) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/building-blocks/contrib/llvm/patches/patch-31-clang-r227062-fixes-x18.diff Wed Feb 4 10:59:51 2015 (r278196, copy of r278194, head/contrib/llvm/patches/patch-31-clang-r227062-fixes-x18.diff) @@ -0,0 +1,54 @@ +Pull in r227062 from upstream clang trunk (by Renato Golin): + + Allows Clang to use LLVM's fixes-x18 option + + This patch allows clang to have llvm reserve the x18 + platform register on AArch64. FreeBSD will use this in the kernel for + per-cpu data but has no need to reserve this register in userland so + will need this flag to reserve it. + + This uses llvm r226664 to allow this register to be reserved. + + Patch by Andrew Turner. + +Introduced here: http://svnweb.freebsd.org/changeset/base/277775 + +Index: tools/clang/include/clang/Driver/Options.td +=================================================================== +--- tools/clang/include/clang/Driver/Options.td ++++ tools/clang/include/clang/Driver/Options.td +@@ -1141,6 +1141,9 @@ def mno_long_calls : Flag<["-"], "mno-long-calls"> + def mgeneral_regs_only : Flag<["-"], "mgeneral-regs-only">, Group, + HelpText<"Generate code which only uses the general purpose registers (AArch64 only)">; + ++def ffixed_x18 : Flag<["-"], "ffixed-x18">, Group, ++ HelpText<"Reserve the x18 register (AArch64 only)">; ++ + def mvsx : Flag<["-"], "mvsx">, Group; + def mno_vsx : Flag<["-"], "mno-vsx">, Group; + def mfprnd : Flag<["-"], "mfprnd">, Group; +Index: tools/clang/lib/Driver/Tools.cpp +=================================================================== +--- tools/clang/lib/Driver/Tools.cpp ++++ tools/clang/lib/Driver/Tools.cpp +@@ -887,6 +887,11 @@ void Clang::AddAArch64TargetArgs(const ArgList &Ar + if (A->getOption().matches(options::OPT_mno_global_merge)) + CmdArgs.push_back("-mno-global-merge"); + } ++ ++ if (Args.hasArg(options::OPT_ffixed_x18)) { ++ CmdArgs.push_back("-backend-option"); ++ CmdArgs.push_back("-aarch64-reserve-x18"); ++ } + } + + // Get CPU and ABI names. They are not independent +Index: tools/clang/test/Driver/aarch64-fixed-x18.c +=================================================================== +--- tools/clang/test/Driver/aarch64-fixed-x18.c ++++ tools/clang/test/Driver/aarch64-fixed-x18.c +@@ -0,0 +1,4 @@ ++// RUN: %clang -target aarch64-none-gnu -ffixed-x18 -### %s 2> %t ++// RUN: FileCheck --check-prefix=CHECK-FIXED-X18 < %t %s ++ ++// CHECK-FIXED-X18: "-backend-option" "-aarch64-reserve-x18" Modified: projects/building-blocks/lib/msun/src/s_scalbln.c ============================================================================== --- projects/building-blocks/lib/msun/src/s_scalbln.c Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/lib/msun/src/s_scalbln.c Wed Feb 4 10:59:51 2015 (r278196) @@ -35,7 +35,9 @@ scalbln (double x, long n) { int in; - in = (n > INT_MAX) ? INT_MAX : (n < INT_MIN) ? INT_MIN : n; + in = (int)n; + if (in != n) + in = (n > 0) ? INT_MAX: INT_MIN; return (scalbn(x, in)); } @@ -44,7 +46,9 @@ scalblnf (float x, long n) { int in; - in = (n > INT_MAX) ? INT_MAX : (n < INT_MIN) ? INT_MIN : n; + in = (int)n; + if (in != n) + in = (n > 0) ? INT_MAX: INT_MIN; return (scalbnf(x, in)); } @@ -53,6 +57,8 @@ scalblnl (long double x, long n) { int in; - in = (n > INT_MAX) ? INT_MAX : (n < INT_MIN) ? INT_MIN : n; + in = (int)n; + if (in != n) + in = (n > 0) ? INT_MAX: INT_MIN; return (scalbnl(x, in)); } Modified: projects/building-blocks/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- projects/building-blocks/release/doc/en_US.ISO8859-1/relnotes/article.xml Wed Feb 4 10:36:10 2015 (r278195) +++ projects/building-blocks/release/doc/en_US.ISO8859-1/relnotes/article.xml Wed Feb 4 10:59:51 2015 (r278196) @@ -90,12 +90,8 @@ information on known bugs, security advisories, and corrections to documentation. An up-to-date copy of the errata for &os; &release.current; can be found on the &os; Web site. - - - - What's New - This section describes the most user-visible new or changed + This document describes the most user-visible new or changed features in &os; since &release.prev;. In general, changes described here are unique to the &release.branch; branch unless specifically marked as &merged; features. @@ -109,397 +105,78 @@ between releases; this document focuses primarily on security advisories, user-visible changes, and major architectural improvements. + - - Security Advisories - - No advisories. - - - - - Kernel Changes - - Support for GPS ports has been added to - &man.uhso.4;. - - The if_nf10bmac(4) - device has been added, providing support for NetFPGA-10G - Embedded CPU Ethernet Core. - - - The if_nf10bmac(4) driver operates on - the FPGA, and is not suited for the PCI host - interface. - - - The &man.full.4; device has been added, - and the lindev(4) device has been removed. - Prior to this change, lindev(4) provided - only the /dev/full character device, - returning ENOSPC on write attempts. As - this device is not specific to &linux;, a native &os; version - has been added. - - The &man.mpr.4; - device has been added, providing support for LSI Fusion-MPT - 3 12Gb SCSI/SATA controllers. + + Upgrading from Previous Releases of &os; - The &man.mrsas.4; driver has been added, - providing support for LSI MegaRAID SAS controllers. The - &man.mfi.4; driver will attach to the controller, by default. - To enable &man.mrsas.4; add - hw.mfi.mrsas_enable=1 to - /boot/loader.conf, which turns off - &man.mfi.4; device probing. + Binary upgrades between RELEASE versions + (and snapshots of the various security branches) are supported + using the &man.freebsd-update.8; utility. The binary upgrade + procedure will update unmodified userland utilities, as well as + unmodified GENERIC kernels distributed as a part of an official + &os; release. The &man.freebsd-update.8; utility requires that + the host being upgraded have Internet connectivity. - - At this time, the &man.mfiutil.8; utility and the &os; - version of MegaCLI and - StorCli do not work with - &man.mrsas.4;. - + Source-based upgrades (those based on recompiling the &os; + base system from source code) from previous versions are + supported, according to the instructions in + /usr/src/UPDATING. - A kernel bug that inhibited proper - functionality of the dev.cpu.0.freq - &man.sysctl.8; on &intel; processors with Turbo - Boost ™ enabled has been fixed. + + Upgrading &os; should only be attempted after backing up + all data and configuration files. + + - The IMAGACT_BINMISC - kernel configuration option has been enabled by default, - which enables application execution through emulators, such - as Qemu. + + Security and Errata - Support for the &man.cxgbe.4; Terminator - 5 (T5) 10G/40G cards has been added to &man.netmap.4;. + This section lists the various Security Advisories and + Errata Notices since &release.prev;. - The VT kernel - configuration file has been removed, and the &man.vt.4; - driver is included in the GENERIC kernel. - To enable &man.vt.4;, enter set kern.vty=vt - at the &man.loader.8; prompt during boot, or add - kern.vty=vt to &man.loader.conf.5; and - reboot the system. + + Security Advisories - Support for - &man.dtrace.1; stack tracing has been fixed for - &os;/&arch.powerpc;, using the trapexit() - and asttrapexit() functions instead of - checking within addressed kernel space. + No advisories. - Hardware context support has been - added to the drm/i915 driver, adding - support for Mesa 9.2 and - later. + - The &man.vt.4; driver has been updated, - replacing the bitmapped kern.vt.spclkeys - &man.sysctl.8; with individual - kern.vt.kbd_* variants. + + Errata Notices - The &man.hpet.4; driver has been updated - to create a - /dev/hpetN - device, providing access to HPET from - userspace. + No errata notices. - The &man.vt.4; driver has been made the - default system console driver. The &man.syscons.4; driver is - still available, and can be enabled by adding - kern.vty=sc in &man.loader.conf.5;. - Alternatively, &man.syscons.4; can be enabled at boot time by - entering set kern.vty=sc at the - &man.loader.8; prompt. + + - An issue that could cause a system to - hang when entering ACPI - S3 state (suspend to - RAM) has been corrected in the &man.acpi.4; - and &man.pci.4; drivers. + + Userland - The power management unit - subsystem has been updated to support power button events on - certain &arch.powerpc; hardware, such as aluminum - PowerBook ®. + This section covers changes and additions to userland + applications, contributed software, and system utilities. - The &man.hwpmc.4; - driver has been updated to correct performance counter - sampling on G4 (MPC74xxx) and G5 class processors. + + Userland Configuration Changes - The - OpenCrypto framework has been - updated to include AES-ICM and - AES-GCM modes, both of which have also been - added to the &man.aesni.4; driver. + The default &man.newsyslog.conf.5; now + includes files in the + /etc/newsyslog.conf.d/ and + /usr/local/etc/newsyslog.conf.d/ + directories by default for &man.newsyslog.8;. - - Virtualization Support + The &man.mailwrapper.8; utility has been + updated to use &man.mailer.conf.5; from the + LOCALBASE environment variable, which + defaults to /usr/local + if unset. - Support for the Virtual - Interrupt Delivery feature of &intel; VT-x is - enabled if supported by the CPU. This feature can be - disabled by running sysctl - hw.vmm.vmx.use_apic_vid=0. Additionally, to - persist this setting across reboots, add - hw.vmm.vmx.use_apic_vid=0 to - /etc/sysctl.conf. - - Support for Posted Interrupt - Processing is enabled if supported by the CPU. - This feature can be disabled by running sysctl - hw.vmm.vmx.use_apic_pir=0. Additionally, to - persist this setting across reboots, add - hw.vmm.vmx.use_apic_pir=0 to - /etc/sysctl.conf. - - Unmapped IO support has been added to - &man.virtio_blk.4;. - - Unmapped IO support has been added to - &man.virtio_scsi.4;. - - The &man.virtio_random.4; driver has - been added to harvest entropy from the host system. - - Support for running - a &os;/&arch.amd64; Xen guest - instance as PVH guest has been added. - PVH mode, short for - Para-Virtualized Hardware, uses - para-virtualized drivers for boot and I/O, and uses hardware - virtualization extensions for all other tasks, without the - need for emulation. - - The &man.virtio.console.4; driver has - been added, which provides an interface to VirtIO console - devices through a &man.tty.4; device. - - - - ARM Support - - The &man.nand.4; device is enabled for - ARM devices by default. - - An issue that could cause - instability when detecting SD cards on - the Raspberry Pi SOC has been - fixed. - - The bcm2835_cpufreq - driver has been added, which supports CPU - frequency and voltage control on the Raspberry Pi - SOC. - - - - Boot Loader Changes - -   - - - - Hardware Support - - The &man.asmc.4; driver has been - updated to support the &apple; MacMini 3,1. - - Support for &os;/ia64 has been dropped - as of &os; 11. - - - Multimedia Support - -   - - - - Network Interface Support - - Support for Broadcom chipsets - BCM57764, BCM57767, BCM57782, BCM57786 and BCM57787 has - been added to &man.bge.4;. - - Support for the &intel; - Centrino™ Wireless-N 135 chipset has been - added. - - Firmware for &intel; Centrino™ - Wireless-N 105 devices has been added to the base - system. - - The deprecated nve(4) driver has - been removed. Users of NVIDIA nForce MCP network adapters - are advised to use the &man.nfe.4; driver instead, which - has been the default driver for this hardware since - &os; 7.0. - - The &man.ath.hal.4; driver has been - updated to support the Atheros AR1111 chipset. - - Support for the &intel; - Centrino™ Wireless-N 105 chipset has been - added. - - A bug in &man.ipfw.4; that could - potentially lead to a kernel panic when using - &man.dummynet.4; at layer 2 has been fixed. - - The &man.alc.4; driver has been - updated to support AR816x and AR817x ethernet - controllers. - - The &man.vxlan.4; driver has been - added, which creates a virtual Layer 2 (Ethernet) network - overlaid in a Layer 3 (IP/UDP) network. The &man.vxlan.4; - driver is analogous to &man.vlan.4;, but is designed to be - better suited for large, multiple-tenant datacenter - environments. - - The &man.gre.4; driver has been - significantly overhauled, and has been split into two - separate modules, &man.gre.4; and &man.me.4;. - - - - - Network Protocols - - Support for the IPX network transport - protocol has been removed, and will not be supported in - &os; 11 and later releases. - - Support for PLPMTUD - blackhole detection (RFC 4821) has been - added to the &man.tcp.4; stack, disabled by default. New - control tunables have been added: - - - - - - - - Tunable - Description - - - - - - net.inet.tcp.pmtud_blackhole_detection - Enables or disables PLPMTUD - blackhole detection - - - - net.inet.tcp.pmtud_blackhole_mss - MSS to try for IPv4 - - - - net.inet.tcp.v6pmtud_blackhole_mss - MSS to try for IPv6 - - - - - - New monitoring &man.sysctl.8;s haven been added: - - - - - - - - Tunable - Description - - - - - - net.inet.tcp.pmtud_blackhole_activated - Number of times the code was activated to - attempt downshifting the - MSS - - - - net.inet.tcp.pmtud_blackhole_min_activated - Number of times the blackhole - MSS was used in an attempt to - downshift - - - - net.inet.tcp.pmtud_blackhole_failed - Number of times that the blackhole failed to - connect after downshifting the - MSS - - - - - - - - Disks and Storage - - Support for the - disklabel64 partitioning scheme has been - added to &man.gpart.8;. - - The asr(4) driver - has been removed, and is no longer supported. - - The - &man.ctl.4; subsystem has been updated, increasing the ports - limit from 128 to 256, - and LUN limit from 256 - to 1024. - - - - File Systems - - The - new filesystem automount facility, &man.autofs.5;, has been - added. The new &man.autofs.5; facility is similar to that - found in other &unix;-like operating systems, such as - OS X™ and Solaris™. The &man.autofs.5; - facility uses a &sun;-compatible &man.auto.master.5; - configuration file, and is administered with the - &man.automount.8; userland utility, and the - &man.automountd.8; and &man.autounmountd.8; daemons. - - - ZFS - - The - arc_meta_limit statistics are now - visible through the kstat - &man.sysctl.8;. As a result of this change, the - vfs.zfs.arc_meta_used &man.sysctl.8; - has been removed, and replaced with the - kstat.zfs.misc.arcstats.arc_meta_used - &man.sysctl.8;. - - + The MK_ARM_EABI + &man.src.conf.5; option has been removed. - - Userland Changes + + Userland Application Changes The &man.casperd.8; daemon has been @@ -532,9 +209,6 @@ network packets using the Capsicum framework to drop privileges. - &os;/&arch.i386; guests can be run under - bhyve. - The &man.ps.1; utility has been updated to include the -J flag, used to filter output by matching &man.jail.8; IDs and names. @@ -555,23 +229,6 @@ ends event collection after the specified number of seconds. - The default &man.newsyslog.conf.5; now - includes files in the - /etc/newsyslog.conf.d/ and - /usr/local/etc/newsyslog.conf.d/ - directories by default for &man.newsyslog.8;. - - The &man.readline.3; library is now - statically linked in software within the base system, and the - shared library is no longer installed, allowing the Ports - Collection to use a modern version of the library. - - The &man.mailwrapper.8; utility has been - updated to use &man.mailer.conf.5; from the - LOCALBASE environment variable, which - defaults to /usr/local - if unset. - The &man.ps.1; utility has been updated to include a new keyword, tracer, which displays the PID of the tracing @@ -580,10 +237,6 @@ Support for adding empty partitions has been added to the &man.mkimg.1; utility. - The &man.bsdinstall.8; partition editor - and &man.sade.8; utility have been updated to include native - ZFS support. - The &man.primes.6; utility has been updated to correctly enumerate prime numbers between 4295098369 and @@ -628,65 +281,20 @@ - The &man.strptime.3; library has been - updated to add support for POSIX-2001 - features %U and - %W. - - The &os; installation utility, - &man.bsdinstall.8;, has been updated to set the - canmount &man.zfs.8; property to - off for the /var dataset, preventing the - contents of directories within /var from conflicting when - using multiple boot environments, such as that provided by - sysutils/beadm. - - The MK_ARM_EABI - &man.src.conf.5; option has been removed. - Userland &man.ctf.5; support in &man.dtrace.1; has been added. With this change, &man.dtrace.1; is able to resolve type info for function and USDT probe arguments, and function return values. - The &man.dl.iterate.phdr.3; library has been - changed to always return the path name of the - ELF object in the - dlpi_name structure member. - - A - userland library for Chelsio Terminator 5 based iWARP cards - has been added, allowing userland RDMA - applications to work over compatible - NICs. - - The &man.bsdconfig.8; utility has been - updated to skip the initial &man.tzsetup.8; - UTC versus wall-clock time prompt when run - in a virtual machine, determined when the - kern.vm_guest &man.sysctl.8; is set to - 1. - The &man.elfdump.1; utility has been updated to support capability mode provided by &man.capsicum.4;. - The &man.gpio.3; library has been added, - providing a wrapper around the &man.gpio.4; kernel - interface. - The &man.fstyp.8; utility has been added, which is used to determine the filesystem on a specified device. - The &man.bsdinstall.8; utility has been - updated to use the new &man.dpv.3; library to display progress - when extracting the &os; distributions. - The libedit library has been updated to support UTF-8, which additionally provides unicode support to &man.sh.1;. @@ -694,44 +302,9 @@ The &man.ptrace.2; system call has been updated include support for Altivec registers on &os;/&arch.powerpc;. - - - <acronym>ABI</acronym> Compatibility - - The &linux; compatibility version has - been updated to 2.6.18. The - compat.linux.osrelease &man.sysctl.8; is - evaluated when building the emulators/linux-c6 and related - ports. - - - - <filename>/etc/rc.d</filename> Scripts - - The &man.rc.8; subsystem has been - updated to allow configuring services in ${LOCALBASE}/etc/rc.conf.d/. - If LOCALBASE is unset, it defaults to - /usr/local. - - The mrouted - &man.rc.8; script has been removed from the base system. An - equivalent script is available from the net/mrouted port. - - - - <filename>/etc/periodic</filename> Scripts - - The daily &man.periodic.8; script - 110.clean-tmps has been updated to - avoid crossing filesystem mount boundaries when cleaning - files in /tmp. - - + Contributed Software - - Ports/Packages Collection Infrastructure + + Installation and Configuration Tools -   - + The &man.bsdinstall.8; partition editor + and &man.sade.8; utility have been updated to include native + ZFS support. - - Release Engineering and Integration + The &os; installation utility, + &man.bsdinstall.8;, has been updated to set the + canmount &man.zfs.8; property to + off for the /var dataset, preventing the + contents of directories within /var from conflicting when + using multiple boot environments, such as that provided by + sysutils/beadm. - The - Release Engineering build tools have been updated to include - support for producing virtual machine disk images for various - cloud hosting providers. + The &man.bsdconfig.8; utility has been + updated to skip the initial &man.tzsetup.8; + UTC versus wall-clock time prompt when run + in a virtual machine, determined when the + kern.vm_guest &man.sysctl.8; is set to + 1. + + The &man.bsdinstall.8; utility has been + updated to use the new &man.dpv.3; library to display progress + when extracting the &os; distributions. - - Documentation + + <filename class="directory">/etc/rc.d</filename> + Scripts + + The &man.rc.8; subsystem has been + updated to allow configuring services in ${LOCALBASE}/etc/rc.conf.d/. + If LOCALBASE is unset, it defaults to + /usr/local. + + The mrouted + &man.rc.8; script has been removed from the base system. An + equivalent script is available from the net/mrouted port. + -   + + <filename class="directory">/etc/periodic</filename> + Scripts + + The daily &man.periodic.8; script + 110.clean-tmps has been updated to avoid + crossing filesystem mount boundaries when cleaning files in + /tmp. - - - Upgrading from Previous Releases of &os; + + Runtime Libraries and API - Binary upgrades between RELEASE versions - (and snapshots of the various security branches) are supported *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Wed Feb 4 11:02:44 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 79AA2E80; Wed, 4 Feb 2015 11:02:44 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 65DB1EE; Wed, 4 Feb 2015 11:02:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t14B2ika070926; Wed, 4 Feb 2015 11:02:44 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t14B2iq2070925; Wed, 4 Feb 2015 11:02:44 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201502041102.t14B2iq2070925@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 4 Feb 2015 11:02:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278197 - projects/building-blocks/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2015 11:02:44 -0000 Author: ngie Date: Wed Feb 4 11:02:43 2015 New Revision: 278197 URL: https://svnweb.freebsd.org/changeset/base/278197 Log: Diff reduce with head Modified: projects/building-blocks/share/mk/src.opts.mk Modified: projects/building-blocks/share/mk/src.opts.mk ============================================================================== --- projects/building-blocks/share/mk/src.opts.mk Wed Feb 4 10:59:51 2015 (r278196) +++ projects/building-blocks/share/mk/src.opts.mk Wed Feb 4 11:02:43 2015 (r278197) @@ -131,7 +131,6 @@ __DEFAULT_YES_OPTIONS = \ NDIS \ NETCAT \ NETGRAPH \ - NETGRAPH_SUPPORT \ NFS_SERVER \ NLS_CATALOGS \ NS_CACHING \ @@ -307,11 +306,6 @@ MK_DMAGENT:= no .if ${MK_NETGRAPH} == "no" MK_ATM:= no MK_BLUETOOTH:= no -MK_NETGRAPH_SUPPORT:= no -.endif - -.if ${MK_NETGRAPH_SUPPORT} == "no" -MK_RADIUS_SUPPORT:= no .endif .if ${MK_OPENSSL} == "no" @@ -383,7 +377,8 @@ MK_${var}_SUPPORT:= yes # .for vv in \ GSSAPI/KERBEROS \ - MAN_UTILS/MAN + MAN_UTILS/MAN \ + RADIUS_SUPPORT/NETGRAPH_SUPPORT .if defined(WITH_${vv:H}) MK_${vv:H}:= yes .elif defined(WITHOUT_${vv:H}) From owner-svn-src-projects@FreeBSD.ORG Wed Feb 4 11:04:11 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 19057F8A; Wed, 4 Feb 2015 11:04:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 061CC102; Wed, 4 Feb 2015 11:04:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t14B4Ace071147; Wed, 4 Feb 2015 11:04:10 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t14B4Afm071146; Wed, 4 Feb 2015 11:04:10 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201502041104.t14B4Afm071146@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 4 Feb 2015 11:04:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278198 - projects/building-blocks/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2015 11:04:11 -0000 Author: ngie Date: Wed Feb 4 11:04:10 2015 New Revision: 278198 URL: https://svnweb.freebsd.org/changeset/base/278198 Log: Some more diff reduction with head Modified: projects/building-blocks/share/mk/src.opts.mk Modified: projects/building-blocks/share/mk/src.opts.mk ============================================================================== --- projects/building-blocks/share/mk/src.opts.mk Wed Feb 4 11:02:43 2015 (r278197) +++ projects/building-blocks/share/mk/src.opts.mk Wed Feb 4 11:04:10 2015 (r278198) @@ -343,7 +343,6 @@ MK_INCLUDES:= no .if ${MK_CLANG} == "no" MK_CLANG_EXTRAS:= no MK_CLANG_FULL:= no -MK_CLANG_IS_CC:=no .endif # From owner-svn-src-projects@FreeBSD.ORG Wed Feb 4 11:05:09 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CE78C1B3; Wed, 4 Feb 2015 11:05:09 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A0D0011A; Wed, 4 Feb 2015 11:05:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t14B59LK071323; Wed, 4 Feb 2015 11:05:09 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t14B59vv071322; Wed, 4 Feb 2015 11:05:09 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201502041105.t14B59vv071322@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Wed, 4 Feb 2015 11:05:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278199 - projects/building-blocks/tools/build/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2015 11:05:09 -0000 Author: ngie Date: Wed Feb 4 11:05:08 2015 New Revision: 278199 URL: https://svnweb.freebsd.org/changeset/base/278199 Log: MK_INFO is no more; delete the block Modified: projects/building-blocks/tools/build/mk/OptionalObsoleteFiles.inc Modified: projects/building-blocks/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- projects/building-blocks/tools/build/mk/OptionalObsoleteFiles.inc Wed Feb 4 11:04:10 2015 (r278198) +++ projects/building-blocks/tools/build/mk/OptionalObsoleteFiles.inc Wed Feb 4 11:05:08 2015 (r278199) @@ -2932,40 +2932,6 @@ OLD_FILES+=usr/share/man/man5/inetd.conf OLD_FILES+=usr/share/man/man8/inetd.8.gz .endif -.if ${MK_INFO} == no -OLD_FILES+=usr/bin/info -OLD_FILES+=usr/bin/infokey -OLD_FILES+=usr/bin/install-info -OLD_FILES+=usr/bin/makeinfo -OLD_FILES+=usr/bin/texindex -OLD_FILES+=usr/share/info/am-utils.info.gz -OLD_FILES+=usr/share/info/as-utils.info.gz -OLD_FILES+=usr/share/info/binutils.info.gz -OLD_FILES+=usr/share/info/com_err.info.gz -OLD_FILES+=usr/share/info/diff.info.gz -OLD_FILES+=usr/share/info/gdb.info.gz -OLD_FILES+=usr/share/info/gdbint.info.gz -OLD_FILES+=usr/share/info/gperf.info.gz -OLD_FILES+=usr/share/info/grep.info.gz -OLD_FILES+=usr/share/info/groff.info.gz -OLD_FILES+=usr/share/info/heimdal.info.gz -OLD_FILES+=usr/share/info/history.info.gz -OLD_FILES+=usr/share/info/info-stnd.info.gz -OLD_FILES+=usr/share/info/info.info.gz -OLD_FILES+=usr/share/info/ld.info.gz -OLD_FILES+=usr/share/info/regex.info.gz -OLD_FILES+=usr/share/info/rluserman.info.gz -OLD_FILES+=usr/share/info/stabs.info.gz -OLD_FILES+=usr/share/info/texinfo.info.gz -OLD_FILES+=usr/share/man/man1/info.1.gz -OLD_FILES+=usr/share/man/man1/infokey.1.gz -OLD_FILES+=usr/share/man/man1/install-info.1.gz -OLD_FILES+=usr/share/man/man1/makeinfo.1.gz -OLD_FILES+=usr/share/man/man1/texindex.1.gz -OLD_FILES+=usr/share/man/man5/info.5.gz -OLD_FILES+=usr/share/man/man5/texinfo.5.gz -.endif - .if ${MK_IPFILTER} == no OLD_FILES+=etc/periodic/security/510.ipfdenied OLD_FILES+=etc/periodic/security/610.ipf6denied From owner-svn-src-projects@FreeBSD.ORG Wed Feb 4 11:25:35 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AA92F9F5; Wed, 4 Feb 2015 11:25:35 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7D04F5F4; Wed, 4 Feb 2015 11:25:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t14BPZpF080680; Wed, 4 Feb 2015 11:25:35 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t14BPZXg080679; Wed, 4 Feb 2015 11:25:35 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201502041125.t14BPZXg080679@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 4 Feb 2015 11:25:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278201 - projects/release-arm-redux X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2015 11:25:35 -0000 Author: gjb Date: Wed Feb 4 11:25:34 2015 New Revision: 278201 URL: https://svnweb.freebsd.org/changeset/base/278201 Log: Copy head@278199 to projects/release-arm-redux. This branch will be used to rework building arm release images using utilities from the ports tree, decoupling Crochet from the process. Sponsored by: The FreeBSD Foundation Added: projects/release-arm-redux/ - copied from r278199, head/ From owner-svn-src-projects@FreeBSD.ORG Wed Feb 4 11:45:16 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C998AE30; Wed, 4 Feb 2015 11:45:16 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B61E1824; Wed, 4 Feb 2015 11:45:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t14BjG2w090134; Wed, 4 Feb 2015 11:45:16 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t14BjGGe090133; Wed, 4 Feb 2015 11:45:16 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201502041145.t14BjGGe090133@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 4 Feb 2015 11:45:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278203 - projects/release-arm-redux/release X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2015 11:45:16 -0000 Author: gjb Date: Wed Feb 4 11:45:15 2015 New Revision: 278203 URL: https://svnweb.freebsd.org/changeset/base/278203 Log: Set a VERSION value. Sponsored by: The FreeBSD Foundation Modified: projects/release-arm-redux/release/release.sh Modified: projects/release-arm-redux/release/release.sh ============================================================================== --- projects/release-arm-redux/release/release.sh Wed Feb 4 11:43:19 2015 (r278202) +++ projects/release-arm-redux/release/release.sh Wed Feb 4 11:45:15 2015 (r278203) @@ -39,6 +39,8 @@ PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin" export PATH +VERSION=2 + # Prototypes that can be redefined per-chroot or per-target. load_chroot_env() { } load_target_env() { } From owner-svn-src-projects@FreeBSD.ORG Wed Feb 4 21:08:35 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 028FE1D3; Wed, 4 Feb 2015 21:08:35 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DEAF3760; Wed, 4 Feb 2015 21:08:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t14L8YvB060091; Wed, 4 Feb 2015 21:08:34 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t14L8Tej060065; Wed, 4 Feb 2015 21:08:29 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201502042108.t14L8Tej060065@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 4 Feb 2015 21:08:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278224 - in projects/clang360-import: . cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/plockstat cddl/contrib/opensolaris/l... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2015 21:08:35 -0000 Author: dim Date: Wed Feb 4 21:08:28 2015 New Revision: 278224 URL: https://svnweb.freebsd.org/changeset/base/278224 Log: Merge ^/head r278110 through r278223. Added: projects/clang360-import/sys/amd64/include/pvclock.h - copied unchanged from r278223, head/sys/amd64/include/pvclock.h projects/clang360-import/sys/i386/include/pvclock.h - copied unchanged from r278223, head/sys/i386/include/pvclock.h projects/clang360-import/sys/x86/include/pvclock.h - copied unchanged from r278223, head/sys/x86/include/pvclock.h projects/clang360-import/sys/x86/x86/pvclock.c - copied unchanged from r278223, head/sys/x86/x86/pvclock.c projects/clang360-import/tools/build/options/WITHOUT_BOOTPARAMD - copied unchanged from r278223, head/tools/build/options/WITHOUT_BOOTPARAMD projects/clang360-import/tools/build/options/WITHOUT_BOOTPD - copied unchanged from r278223, head/tools/build/options/WITHOUT_BOOTPD projects/clang360-import/tools/build/options/WITHOUT_FILE - copied unchanged from r278223, head/tools/build/options/WITHOUT_FILE projects/clang360-import/tools/build/options/WITHOUT_FINGER - copied unchanged from r278223, head/tools/build/options/WITHOUT_FINGER projects/clang360-import/tools/build/options/WITHOUT_FTP - copied unchanged from r278223, head/tools/build/options/WITHOUT_FTP projects/clang360-import/tools/build/options/WITHOUT_INETD - copied unchanged from r278223, head/tools/build/options/WITHOUT_INETD projects/clang360-import/tools/build/options/WITHOUT_RADIUS_SUPPORT - copied unchanged from r278223, head/tools/build/options/WITHOUT_RADIUS_SUPPORT projects/clang360-import/tools/build/options/WITHOUT_RBOOTD - copied unchanged from r278223, head/tools/build/options/WITHOUT_RBOOTD projects/clang360-import/tools/build/options/WITHOUT_TCP_WRAPPERS - copied unchanged from r278223, head/tools/build/options/WITHOUT_TCP_WRAPPERS projects/clang360-import/tools/build/options/WITHOUT_TFTP - copied unchanged from r278223, head/tools/build/options/WITHOUT_TFTP projects/clang360-import/tools/build/options/WITHOUT_TIMED - copied unchanged from r278223, head/tools/build/options/WITHOUT_TIMED Modified: projects/clang360-import/Makefile.inc1 projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PDESC_ZERO.badlib.exe projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_FUNC.badfunc.exe projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_LIB.libdash.exe projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.alldash.exe projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.badname.exe projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.globdash.exe projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_OFF.toobig.exe projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.coverage.exe projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.emptystack.exe projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/plockstat/tst.available.exe (contents, props changed) projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/plockstat/tst.libmap.exe (contents, props changed) projects/clang360-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c projects/clang360-import/etc/Makefile projects/clang360-import/include/Makefile projects/clang360-import/lib/Makefile projects/clang360-import/lib/clang/clang.build.mk projects/clang360-import/lib/libpam/modules/modules.inc projects/clang360-import/lib/msun/src/s_scalbln.c projects/clang360-import/libexec/Makefile projects/clang360-import/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/clang360-import/release/release.sh projects/clang360-import/release/tools/gce.conf projects/clang360-import/share/examples/Makefile projects/clang360-import/share/man/man4/Makefile projects/clang360-import/share/man/man5/src.conf.5 projects/clang360-import/share/man/man9/Makefile projects/clang360-import/share/misc/Makefile projects/clang360-import/share/mk/src.opts.mk projects/clang360-import/sys/arm/broadcom/bcm2835/bcm2835_gpio.c projects/clang360-import/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c projects/clang360-import/sys/arm/ti/ti_gpio.c projects/clang360-import/sys/cam/cam.h projects/clang360-import/sys/cam/cam_periph.c projects/clang360-import/sys/cam/ctl/ctl_frontend_iscsi.c projects/clang360-import/sys/cam/ctl/ctl_frontend_iscsi.h projects/clang360-import/sys/cam/scsi/scsi_cd.c projects/clang360-import/sys/cam/scsi/scsi_da.c projects/clang360-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/clang360-import/sys/cddl/dev/dtrace/dtrace_load.c projects/clang360-import/sys/cddl/dev/dtrace/dtrace_unload.c projects/clang360-import/sys/conf/files.amd64 projects/clang360-import/sys/conf/files.i386 projects/clang360-import/sys/dev/drm2/i915/i915_drv.c projects/clang360-import/sys/dev/drm2/i915/i915_drv.h projects/clang360-import/sys/dev/drm2/i915/intel_dp.c projects/clang360-import/sys/dev/drm2/i915/intel_iic.c projects/clang360-import/sys/dev/drm2/ttm/ttm_bo.c projects/clang360-import/sys/dev/drm2/ttm/ttm_page_alloc.c projects/clang360-import/sys/dev/ed/if_ed.c projects/clang360-import/sys/dev/fe/if_fe_isa.c projects/clang360-import/sys/dev/sfxge/common/efsys.h projects/clang360-import/sys/dev/sfxge/sfxge.c projects/clang360-import/sys/dev/sfxge/sfxge.h projects/clang360-import/sys/dev/sfxge/sfxge_ev.c projects/clang360-import/sys/dev/sfxge/sfxge_mcdi.c projects/clang360-import/sys/dev/sfxge/sfxge_port.c projects/clang360-import/sys/dev/sfxge/sfxge_rx.c projects/clang360-import/sys/dev/sfxge/sfxge_tx.c projects/clang360-import/sys/dev/sfxge/sfxge_tx.h projects/clang360-import/sys/dev/xen/timer/timer.c projects/clang360-import/sys/fs/tmpfs/tmpfs_subr.c projects/clang360-import/sys/i386/xen/clock.c projects/clang360-import/sys/kern/kern_clocksource.c projects/clang360-import/sys/kern/sys_pipe.c projects/clang360-import/sys/ofed/include/linux/linux_idr.c projects/clang360-import/sys/sys/cdefs.h projects/clang360-import/tools/build/mk/OptionalObsoleteFiles.inc projects/clang360-import/usr.bin/Makefile projects/clang360-import/usr.sbin/Makefile projects/clang360-import/usr.sbin/ctladm/ctladm.c projects/clang360-import/usr.sbin/ctld/ctld.c projects/clang360-import/usr.sbin/ctld/ctld.h projects/clang360-import/usr.sbin/ctld/kernel.c projects/clang360-import/usr.sbin/pkg/pkg.c projects/clang360-import/usr.sbin/ppp/Makefile Directory Properties: projects/clang360-import/ (props changed) projects/clang360-import/cddl/ (props changed) projects/clang360-import/cddl/contrib/opensolaris/ (props changed) projects/clang360-import/etc/ (props changed) projects/clang360-import/include/ (props changed) projects/clang360-import/share/ (props changed) projects/clang360-import/share/man/man4/ (props changed) projects/clang360-import/sys/ (props changed) projects/clang360-import/sys/cddl/contrib/opensolaris/ (props changed) projects/clang360-import/sys/conf/ (props changed) Modified: projects/clang360-import/Makefile.inc1 ============================================================================== --- projects/clang360-import/Makefile.inc1 Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/Makefile.inc1 Wed Feb 4 21:08:28 2015 (r278224) @@ -1634,7 +1634,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 ${_lib_libcapsicum} \ lib/ncurses/ncurses lib/ncurses/ncursesw \ lib/libopie lib/libpam ${_lib_libthr} \ - lib/libradius lib/libsbuf lib/libtacplus \ + ${_lib_libradius} lib/libsbuf lib/libtacplus \ lib/libgeom \ ${_cddl_lib_libumem} ${_cddl_lib_libnvpair} \ ${_cddl_lib_libuutil} \ @@ -1657,6 +1657,10 @@ lib/libgeom__L: lib/libexpat__L _lib_libthr= lib/libthr .endif +.if ${MK_RADIUS_SUPPORT} != "no" +_lib_libradius= lib/libradius +.endif + .if ${MK_OFED} != "no" _ofed_lib= contrib/ofed/usr.lib/ .endif Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PDESC_ZERO.badlib.exe ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PDESC_ZERO.badlib.exe Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PDESC_ZERO.badlib.exe Wed Feb 4 21:08:28 2015 (r278224) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_FUNC.badfunc.exe ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_FUNC.badfunc.exe Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_FUNC.badfunc.exe Wed Feb 4 21:08:28 2015 (r278224) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_LIB.libdash.exe ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_LIB.libdash.exe Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_LIB.libdash.exe Wed Feb 4 21:08:28 2015 (r278224) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.alldash.exe ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.alldash.exe Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.alldash.exe Wed Feb 4 21:08:28 2015 (r278224) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.badname.exe ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.badname.exe Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.badname.exe Wed Feb 4 21:08:28 2015 (r278224) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.globdash.exe ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.globdash.exe Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.globdash.exe Wed Feb 4 21:08:28 2015 (r278224) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_OFF.toobig.exe ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_OFF.toobig.exe Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_OFF.toobig.exe Wed Feb 4 21:08:28 2015 (r278224) @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.coverage.exe ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.coverage.exe Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.coverage.exe Wed Feb 4 21:08:28 2015 (r278224) @@ -1,4 +1,4 @@ -#!/usr/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.emptystack.exe ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.emptystack.exe Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.emptystack.exe Wed Feb 4 21:08:28 2015 (r278224) @@ -1,4 +1,4 @@ -#!/usr/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/plockstat/tst.available.exe ============================================================================== Binary file (source and/or target). No diff available. Modified: projects/clang360-import/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/plockstat/tst.libmap.exe ============================================================================== Binary file (source and/or target). No diff available. Modified: projects/clang360-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c ============================================================================== --- projects/clang360-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Wed Feb 4 21:08:28 2015 (r278224) @@ -382,6 +382,9 @@ dt_stddev(uint64_t *data, uint64_t norma int64_t norm_avg; uint64_t diff[2]; + if (data[0] == 0) + return (0); + /* * The standard approximation for standard deviation is * sqrt(average(x**2) - average(x)**2), i.e. the square root Modified: projects/clang360-import/etc/Makefile ============================================================================== --- projects/clang360-import/etc/Makefile Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/etc/Makefile Wed Feb 4 21:08:28 2015 (r278224) @@ -21,13 +21,11 @@ BIN1= crontab \ dhclient.conf \ disktab \ fbtab \ - ftpusers \ gettytab \ group \ hosts \ hosts.allow \ hosts.equiv \ - inetd.conf \ libalias.conf \ libmap.conf \ login.access \ @@ -101,6 +99,14 @@ BIN1+= snmpd.config BIN1+= freebsd-update.conf .endif +.if ${MK_FTP} != "no" +BIN1+= ftpusers +.endif + +.if ${MK_INETD} != "no" +BIN1+= inetd.conf +.endif + .if ${MK_LOCATE} != "no" BIN1+= ${.CURDIR}/../usr.bin/locate/locate/locate.rc .endif Modified: projects/clang360-import/include/Makefile ============================================================================== --- projects/clang360-import/include/Makefile Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/include/Makefile Wed Feb 4 21:08:28 2015 (r278224) @@ -44,7 +44,7 @@ LSUBDIRS= cam/ata cam/scsi \ dev/hwpmc \ dev/ic dev/iicbus dev/io dev/lmc dev/mfi dev/nvme \ dev/ofw dev/pbio dev/pci ${_dev_powermac_nvram} dev/ppbus dev/smbus \ - dev/speaker dev/usb dev/utopia dev/vkbd dev/wi \ + dev/speaker dev/utopia dev/vkbd dev/wi \ fs/devfs fs/fdescfs fs/msdosfs fs/nandfs fs/nfs fs/nullfs \ fs/procfs fs/smbfs fs/udf fs/unionfs \ geom/cache geom/concat geom/eli geom/gate geom/journal geom/label \ @@ -58,12 +58,12 @@ LSUBDIRS= cam/ata cam/scsi \ LSUBSUBDIRS= dev/mpt/mpilib -.if ${MK_CUSE} != "no" -LSUBDIRS+= fs/cuse +.if ${MK_BLUETOOTH} != "no" +LSUBSUBDIRS+= netgraph/bluetooth/include .endif -.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" -_dev_powermac_nvram= dev/powermac_nvram +.if ${MK_CUSE} != "no" +LSUBDIRS+= fs/cuse .endif .if ${MK_GSSAPI} != "no" @@ -75,15 +75,18 @@ INCS+= gssapi.h INCS+= hesiod.h .endif -.if ${MK_BLUETOOTH} != "no" -LSUBSUBDIRS+= netgraph/bluetooth/include -.endif - # Handle the #define aliases for libiconv .if ${MK_ICONV} == "yes" INCS+= iconv.h .endif - + +.if ${MK_USB} != "no" +LSUBDIRS+= dev/usb +.endif + +.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" +_dev_powermac_nvram= dev/powermac_nvram +.endif # Define SHARED to indicate whether you want symbolic links to the system # source (``symlinks''), or a separate copy (``copies''). ``symlinks'' is Modified: projects/clang360-import/lib/Makefile ============================================================================== --- projects/clang360-import/lib/Makefile Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/lib/Makefile Wed Feb 4 21:08:28 2015 (r278224) @@ -63,7 +63,7 @@ SUBDIR= ${SUBDIR_ORDERED} \ libkvm \ ${_libldns} \ liblzma \ - libmagic \ + ${_libmagic} \ libmandoc \ libmemstat \ libmd \ @@ -82,7 +82,7 @@ SUBDIR= ${SUBDIR_ORDERED} \ ${_libpmc} \ ${_libproc} \ libprocstat \ - libradius \ + ${_libradius} \ librpcsvc \ librt \ ${_librtld_db} \ @@ -142,7 +142,7 @@ SUBDIR_DEPEND_liblibrpcsec_gss= libgssap SUBDIR_DEPEND_libmagic= libz SUBDIR_DEPEND_libmemstat= libkvm SUBDIR_DEPEND_libopie= libmd -SUBDIR_DEPEND_libpam= libcrypt libopie libradius librpcsvc libtacplus libutil ${_libypclnt} ${_libcom_err} +SUBDIR_DEPEND_libpam= libcrypt libopie ${_libradius} librpcsvc libtacplus libutil ${_libypclnt} ${_libcom_err} SUBDIR_DEPEND_libpjdlog= libutil SUBDIR_DEPEND_libprocstat= libkvm libutil SUBDIR_DEPEND_libradius= libmd @@ -195,6 +195,10 @@ _cuse= libcuse _libelftc= libelftc .endif +.if ${MK_FILE} != "no" +_libmagic= libmagic +.endif + .if ${MK_GPIO} != "no" _libgpio= libgpio .endif @@ -286,6 +290,10 @@ _libmp= libmp _libpmc= libpmc .endif +.if ${MK_RADIUS_SUPPORT} != "no" +_libradius= libradius +.endif + .if ${MK_SENDMAIL} != "no" _libmilter= libmilter _libsm= libsm Modified: projects/clang360-import/lib/clang/clang.build.mk ============================================================================== --- projects/clang360-import/lib/clang/clang.build.mk Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/lib/clang/clang.build.mk Wed Feb 4 21:08:28 2015 (r278224) @@ -34,7 +34,7 @@ BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_ CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${TARGET_TRIPLE}\" \ -DLLVM_HOST_TRIPLE=\"${BUILD_TRIPLE}\" \ -DDEFAULT_SYSROOT=\"${TOOLS_PREFIX}\" -CXXFLAGS+= -std=c++11 -fno-exceptions -fno-rtti +CXXFLAGS+= -std=c++11 -stdlib=libc++ -fno-exceptions -fno-rtti .PATH: ${LLVM_SRCS}/${SRCDIR} Modified: projects/clang360-import/lib/libpam/modules/modules.inc ============================================================================== --- projects/clang360-import/lib/libpam/modules/modules.inc Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/lib/libpam/modules/modules.inc Wed Feb 4 21:08:28 2015 (r278224) @@ -21,7 +21,9 @@ MODULES += pam_opie MODULES += pam_opieaccess MODULES += pam_passwdqc MODULES += pam_permit +.if ${MK_RADIUS_SUPPORT} != "no" MODULES += pam_radius +.endif MODULES += pam_rhosts MODULES += pam_rootok MODULES += pam_securetty Modified: projects/clang360-import/lib/msun/src/s_scalbln.c ============================================================================== --- projects/clang360-import/lib/msun/src/s_scalbln.c Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/lib/msun/src/s_scalbln.c Wed Feb 4 21:08:28 2015 (r278224) @@ -35,7 +35,9 @@ scalbln (double x, long n) { int in; - in = (n > INT_MAX) ? INT_MAX : (n < INT_MIN) ? INT_MIN : n; + in = (int)n; + if (in != n) + in = (n > 0) ? INT_MAX: INT_MIN; return (scalbn(x, in)); } @@ -44,7 +46,9 @@ scalblnf (float x, long n) { int in; - in = (n > INT_MAX) ? INT_MAX : (n < INT_MIN) ? INT_MIN : n; + in = (int)n; + if (in != n) + in = (n > 0) ? INT_MAX: INT_MIN; return (scalbnf(x, in)); } @@ -53,6 +57,8 @@ scalblnl (long double x, long n) { int in; - in = (n > INT_MAX) ? INT_MAX : (n < INT_MIN) ? INT_MIN : n; + in = (int)n; + if (in != n) + in = (n > 0) ? INT_MAX: INT_MIN; return (scalbnl(x, in)); } Modified: projects/clang360-import/libexec/Makefile ============================================================================== --- projects/clang360-import/libexec/Makefile Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/libexec/Makefile Wed Feb 4 21:08:28 2015 (r278224) @@ -5,18 +5,14 @@ SUBDIR= ${_atf} \ ${_atrun} \ - bootpd \ ${_casper} \ ${_comsat} \ ${_dma} \ ${_dma-mbox-create} \ - fingerd \ - ftpd \ getty \ ${_mail.local} \ ${_mknetid} \ ${_pppoed} \ - rbootd \ revnetgroup \ ${_rlogind} \ rpc.rquotad \ @@ -28,10 +24,8 @@ SUBDIR= ${_atf} \ ${_rtld-elf} \ save-entropy \ ${_smrsh} \ - tcpd \ ${_telnetd} \ ${_tests} \ - tftpd \ ${_tftp-proxy} \ ulog-helper \ ${_ypxfr} @@ -40,10 +34,22 @@ SUBDIR= ${_atf} \ _atrun= atrun .endif +.if ${MK_BOOTPD} != "no" +SUBDIR+= bootpd +.endif + .if ${MK_CASPER} != "no" _casper= casper .endif +.if ${MK_FINGER} != "no" +SUBDIR+= fingerd +.endif + +.if ${MK_FTP} != "no" +SUBDIR+= ftpd +.endif + .if ${MK_MAIL} != "no" _comsat= comsat .endif @@ -70,6 +76,10 @@ _tftp-proxy= tftp-proxy _rtld-elf= rtld-elf .endif +.if ${MK_RBOOTD} != "no" +SUBDIR+= rbootd +.endif + .if ${MK_RCMDS} != "no" _rlogind= rlogind _rshd= rshd @@ -84,10 +94,18 @@ _smrsh= smrsh SUBDIR+= talkd .endif +.if ${MK_TCP_WRAPPERS} != "no" +SUBDIR+= tcpd +.endif + .if ${MK_TELNET} != "no" _telnetd= telnetd .endif +.if ${MK_TFTP} != "no" +SUBDIR+= tftpd +.endif + .if ${MK_TESTS} != "no" _atf= atf _tests= tests Modified: projects/clang360-import/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- projects/clang360-import/release/doc/en_US.ISO8859-1/relnotes/article.xml Wed Feb 4 21:00:29 2015 (r278223) +++ projects/clang360-import/release/doc/en_US.ISO8859-1/relnotes/article.xml Wed Feb 4 21:08:28 2015 (r278224) @@ -90,12 +90,8 @@ information on known bugs, security advisories, and corrections to documentation. An up-to-date copy of the errata for &os; &release.current; can be found on the &os; Web site. - - - - What's New - This section describes the most user-visible new or changed + This document describes the most user-visible new or changed features in &os; since &release.prev;. In general, changes described here are unique to the &release.branch; branch unless specifically marked as &merged; features. @@ -109,397 +105,78 @@ between releases; this document focuses primarily on security advisories, user-visible changes, and major architectural improvements. + - - Security Advisories - - No advisories. - - - - - Kernel Changes - - Support for GPS ports has been added to - &man.uhso.4;. - - The if_nf10bmac(4) - device has been added, providing support for NetFPGA-10G - Embedded CPU Ethernet Core. - - - The if_nf10bmac(4) driver operates on - the FPGA, and is not suited for the PCI host - interface. - - - The &man.full.4; device has been added, - and the lindev(4) device has been removed. - Prior to this change, lindev(4) provided - only the /dev/full character device, - returning ENOSPC on write attempts. As - this device is not specific to &linux;, a native &os; version - has been added. - - The &man.mpr.4; - device has been added, providing support for LSI Fusion-MPT - 3 12Gb SCSI/SATA controllers. + + Upgrading from Previous Releases of &os; - The &man.mrsas.4; driver has been added, - providing support for LSI MegaRAID SAS controllers. The - &man.mfi.4; driver will attach to the controller, by default. - To enable &man.mrsas.4; add - hw.mfi.mrsas_enable=1 to - /boot/loader.conf, which turns off - &man.mfi.4; device probing. + Binary upgrades between RELEASE versions + (and snapshots of the various security branches) are supported + using the &man.freebsd-update.8; utility. The binary upgrade + procedure will update unmodified userland utilities, as well as + unmodified GENERIC kernels distributed as a part of an official + &os; release. The &man.freebsd-update.8; utility requires that + the host being upgraded have Internet connectivity. - - At this time, the &man.mfiutil.8; utility and the &os; - version of MegaCLI and - StorCli do not work with - &man.mrsas.4;. - + Source-based upgrades (those based on recompiling the &os; + base system from source code) from previous versions are + supported, according to the instructions in + /usr/src/UPDATING. - A kernel bug that inhibited proper - functionality of the dev.cpu.0.freq - &man.sysctl.8; on &intel; processors with Turbo - Boost ™ enabled has been fixed. + + Upgrading &os; should only be attempted after backing up + all data and configuration files. + + - The IMAGACT_BINMISC - kernel configuration option has been enabled by default, - which enables application execution through emulators, such - as Qemu. + + Security and Errata - Support for the &man.cxgbe.4; Terminator - 5 (T5) 10G/40G cards has been added to &man.netmap.4;. + This section lists the various Security Advisories and + Errata Notices since &release.prev;. - The VT kernel - configuration file has been removed, and the &man.vt.4; - driver is included in the GENERIC kernel. - To enable &man.vt.4;, enter set kern.vty=vt - at the &man.loader.8; prompt during boot, or add - kern.vty=vt to &man.loader.conf.5; and - reboot the system. + + Security Advisories - Support for - &man.dtrace.1; stack tracing has been fixed for - &os;/&arch.powerpc;, using the trapexit() - and asttrapexit() functions instead of - checking within addressed kernel space. + No advisories. - Hardware context support has been - added to the drm/i915 driver, adding - support for Mesa 9.2 and - later. + - The &man.vt.4; driver has been updated, - replacing the bitmapped kern.vt.spclkeys - &man.sysctl.8; with individual - kern.vt.kbd_* variants. + + Errata Notices - The &man.hpet.4; driver has been updated - to create a - /dev/hpetN - device, providing access to HPET from - userspace. + No errata notices. - The &man.vt.4; driver has been made the - default system console driver. The &man.syscons.4; driver is - still available, and can be enabled by adding - kern.vty=sc in &man.loader.conf.5;. - Alternatively, &man.syscons.4; can be enabled at boot time by - entering set kern.vty=sc at the - &man.loader.8; prompt. + + - An issue that could cause a system to - hang when entering ACPI - S3 state (suspend to - RAM) has been corrected in the &man.acpi.4; - and &man.pci.4; drivers. + + Userland - The power management unit - subsystem has been updated to support power button events on - certain &arch.powerpc; hardware, such as aluminum - PowerBook ®. + This section covers changes and additions to userland + applications, contributed software, and system utilities. - The &man.hwpmc.4; - driver has been updated to correct performance counter - sampling on G4 (MPC74xxx) and G5 class processors. + + Userland Configuration Changes - The - OpenCrypto framework has been - updated to include AES-ICM and - AES-GCM modes, both of which have also been - added to the &man.aesni.4; driver. + The default &man.newsyslog.conf.5; now + includes files in the + /etc/newsyslog.conf.d/ and + /usr/local/etc/newsyslog.conf.d/ + directories by default for &man.newsyslog.8;. - - Virtualization Support + The &man.mailwrapper.8; utility has been + updated to use &man.mailer.conf.5; from the + LOCALBASE environment variable, which + defaults to /usr/local + if unset. - Support for the Virtual - Interrupt Delivery feature of &intel; VT-x is - enabled if supported by the CPU. This feature can be - disabled by running sysctl - hw.vmm.vmx.use_apic_vid=0. Additionally, to - persist this setting across reboots, add - hw.vmm.vmx.use_apic_vid=0 to - /etc/sysctl.conf. - - Support for Posted Interrupt - Processing is enabled if supported by the CPU. - This feature can be disabled by running sysctl - hw.vmm.vmx.use_apic_pir=0. Additionally, to - persist this setting across reboots, add - hw.vmm.vmx.use_apic_pir=0 to - /etc/sysctl.conf. - - Unmapped IO support has been added to - &man.virtio_blk.4;. - - Unmapped IO support has been added to - &man.virtio_scsi.4;. - - The &man.virtio_random.4; driver has - been added to harvest entropy from the host system. - - Support for running - a &os;/&arch.amd64; Xen guest - instance as PVH guest has been added. - PVH mode, short for - Para-Virtualized Hardware, uses - para-virtualized drivers for boot and I/O, and uses hardware - virtualization extensions for all other tasks, without the - need for emulation. - - The &man.virtio.console.4; driver has - been added, which provides an interface to VirtIO console - devices through a &man.tty.4; device. - - - - ARM Support - - The &man.nand.4; device is enabled for - ARM devices by default. - - An issue that could cause - instability when detecting SD cards on - the Raspberry Pi SOC has been - fixed. - - The bcm2835_cpufreq - driver has been added, which supports CPU - frequency and voltage control on the Raspberry Pi - SOC. - - - - Boot Loader Changes - -   - - - - Hardware Support - - The &man.asmc.4; driver has been - updated to support the &apple; MacMini 3,1. - - Support for &os;/ia64 has been dropped - as of &os; 11. - - - Multimedia Support - -   - - - - Network Interface Support - - Support for Broadcom chipsets - BCM57764, BCM57767, BCM57782, BCM57786 and BCM57787 has - been added to &man.bge.4;. - - Support for the &intel; - Centrino™ Wireless-N 135 chipset has been - added. - - Firmware for &intel; Centrino™ - Wireless-N 105 devices has been added to the base - system. - - The deprecated nve(4) driver has - been removed. Users of NVIDIA nForce MCP network adapters - are advised to use the &man.nfe.4; driver instead, which - has been the default driver for this hardware since - &os; 7.0. - - The &man.ath.hal.4; driver has been - updated to support the Atheros AR1111 chipset. - - Support for the &intel; - Centrino™ Wireless-N 105 chipset has been - added. - - A bug in &man.ipfw.4; that could - potentially lead to a kernel panic when using - &man.dummynet.4; at layer 2 has been fixed. - - The &man.alc.4; driver has been - updated to support AR816x and AR817x ethernet - controllers. - - The &man.vxlan.4; driver has been - added, which creates a virtual Layer 2 (Ethernet) network - overlaid in a Layer 3 (IP/UDP) network. The &man.vxlan.4; - driver is analogous to &man.vlan.4;, but is designed to be - better suited for large, multiple-tenant datacenter - environments. - - The &man.gre.4; driver has been - significantly overhauled, and has been split into two - separate modules, &man.gre.4; and &man.me.4;. - - - - - Network Protocols - - Support for the IPX network transport - protocol has been removed, and will not be supported in - &os; 11 and later releases. - - Support for PLPMTUD - blackhole detection (RFC 4821) has been - added to the &man.tcp.4; stack, disabled by default. New - control tunables have been added: - - - - - - - - Tunable - Description - - - - - - net.inet.tcp.pmtud_blackhole_detection - Enables or disables PLPMTUD - blackhole detection - - - - net.inet.tcp.pmtud_blackhole_mss - MSS to try for IPv4 - - - - net.inet.tcp.v6pmtud_blackhole_mss - MSS to try for IPv6 - - - - - - New monitoring &man.sysctl.8;s haven been added: - - - - - - - - Tunable - Description - - - - - - net.inet.tcp.pmtud_blackhole_activated - Number of times the code was activated to - attempt downshifting the - MSS - - - - net.inet.tcp.pmtud_blackhole_min_activated - Number of times the blackhole - MSS was used in an attempt to - downshift - - - - net.inet.tcp.pmtud_blackhole_failed - Number of times that the blackhole failed to - connect after downshifting the - MSS - - - - - - - - Disks and Storage - - Support for the - disklabel64 partitioning scheme has been - added to &man.gpart.8;. - - The asr(4) driver - has been removed, and is no longer supported. - - The - &man.ctl.4; subsystem has been updated, increasing the ports - limit from 128 to 256, - and LUN limit from 256 - to 1024. - - - - File Systems - - The - new filesystem automount facility, &man.autofs.5;, has been - added. The new &man.autofs.5; facility is similar to that - found in other &unix;-like operating systems, such as - OS X™ and Solaris™. The &man.autofs.5; - facility uses a &sun;-compatible &man.auto.master.5; - configuration file, and is administered with the - &man.automount.8; userland utility, and the - &man.automountd.8; and &man.autounmountd.8; daemons. - - - ZFS - - The - arc_meta_limit statistics are now - visible through the kstat - &man.sysctl.8;. As a result of this change, the - vfs.zfs.arc_meta_used &man.sysctl.8; - has been removed, and replaced with the - kstat.zfs.misc.arcstats.arc_meta_used - &man.sysctl.8;. - - + The MK_ARM_EABI + &man.src.conf.5; option has been removed. - - Userland Changes + + Userland Application Changes The &man.casperd.8; daemon has been @@ -532,9 +209,6 @@ network packets using the Capsicum framework to drop privileges. - &os;/&arch.i386; guests can be run under - bhyve. - The &man.ps.1; utility has been updated to include the -J flag, used to filter output by matching &man.jail.8; IDs and names. @@ -555,23 +229,6 @@ ends event collection after the specified number of seconds. - The default &man.newsyslog.conf.5; now - includes files in the - /etc/newsyslog.conf.d/ and - /usr/local/etc/newsyslog.conf.d/ - directories by default for &man.newsyslog.8;. - - The &man.readline.3; library is now - statically linked in software within the base system, and the - shared library is no longer installed, allowing the Ports - Collection to use a modern version of the library. - - The &man.mailwrapper.8; utility has been - updated to use &man.mailer.conf.5; from the - LOCALBASE environment variable, which - defaults to /usr/local - if unset. - The &man.ps.1; utility has been updated to include a new keyword, tracer, which displays the PID of the tracing @@ -580,10 +237,6 @@ Support for adding empty partitions has been added to the &man.mkimg.1; utility. - The &man.bsdinstall.8; partition editor - and &man.sade.8; utility have been updated to include native - ZFS support. - The &man.primes.6; utility has been updated to correctly enumerate prime numbers between 4295098369 and @@ -628,65 +281,20 @@ - The &man.strptime.3; library has been - updated to add support for POSIX-2001 - features %U and - %W. - - The &os; installation utility, - &man.bsdinstall.8;, has been updated to set the - canmount &man.zfs.8; property to - off for the /var dataset, preventing the - contents of directories within /var from conflicting when - using multiple boot environments, such as that provided by - sysutils/beadm. - - The MK_ARM_EABI - &man.src.conf.5; option has been removed. - Userland &man.ctf.5; support in &man.dtrace.1; has been added. With this change, &man.dtrace.1; is able to resolve type info for function and USDT probe arguments, and function return values. - The &man.dl.iterate.phdr.3; library has been - changed to always return the path name of the - ELF object in the - dlpi_name structure member. - - A - userland library for Chelsio Terminator 5 based iWARP cards - has been added, allowing userland RDMA - applications to work over compatible - NICs. - - The &man.bsdconfig.8; utility has been - updated to skip the initial &man.tzsetup.8; - UTC versus wall-clock time prompt when run - in a virtual machine, determined when the - kern.vm_guest &man.sysctl.8; is set to - 1. - The &man.elfdump.1; utility has been updated to support capability mode provided by &man.capsicum.4;. - The &man.gpio.3; library has been added, - providing a wrapper around the &man.gpio.4; kernel - interface. - The &man.fstyp.8; utility has been added, which is used to determine the filesystem on a specified device. - The &man.bsdinstall.8; utility has been - updated to use the new &man.dpv.3; library to display progress - when extracting the &os; distributions. - The libedit library has been updated to support UTF-8, which additionally provides unicode support to &man.sh.1;. @@ -694,44 +302,9 @@ The &man.ptrace.2; system call has been updated include support for Altivec registers on &os;/&arch.powerpc;. - - - <acronym>ABI</acronym> Compatibility - - The &linux; compatibility version has - been updated to 2.6.18. The - compat.linux.osrelease &man.sysctl.8; is - evaluated when building the emulators/linux-c6 and related - ports. - - - - <filename>/etc/rc.d</filename> Scripts - - The &man.rc.8; subsystem has been - updated to allow configuring services in ${LOCALBASE}/etc/rc.conf.d/. - If LOCALBASE is unset, it defaults to - /usr/local. - - The mrouted - &man.rc.8; script has been removed from the base system. An - equivalent script is available from the net/mrouted port. - - - - <filename>/etc/periodic</filename> Scripts - - The daily &man.periodic.8; script - 110.clean-tmps has been updated to - avoid crossing filesystem mount boundaries when cleaning - files in /tmp. - *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Thu Feb 5 12:21:11 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F131B6CC; Thu, 5 Feb 2015 12:21:10 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D997C1FA; Thu, 5 Feb 2015 12:21:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t15CLAsD092260; Thu, 5 Feb 2015 12:21:10 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t15CL67X092231; Thu, 5 Feb 2015 12:21:06 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201502051221.t15CL67X092231@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 5 Feb 2015 12:21:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278256 - in projects/building-blocks: etc/rc.d include lib/clang lib/csu/powerpc64 release share/examples sys/arm/broadcom/bcm2835 sys/arm/ti sys/boot/amd64/efi sys/boot/efi/include sy... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2015 12:21:11 -0000 Author: ngie Date: Thu Feb 5 12:21:05 2015 New Revision: 278256 URL: https://svnweb.freebsd.org/changeset/base/278256 Log: MFhead @ r278255 Modified: projects/building-blocks/etc/rc.d/Makefile projects/building-blocks/include/Makefile projects/building-blocks/lib/clang/clang.build.mk projects/building-blocks/lib/csu/powerpc64/Makefile projects/building-blocks/release/release.sh projects/building-blocks/share/examples/Makefile projects/building-blocks/sys/arm/broadcom/bcm2835/bcm2835_gpio.c projects/building-blocks/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c projects/building-blocks/sys/arm/ti/ti_gpio.c projects/building-blocks/sys/boot/amd64/efi/main.c projects/building-blocks/sys/boot/efi/include/efiapi.h projects/building-blocks/sys/cam/cam_ccb.h projects/building-blocks/sys/cam/cam_xpt.c projects/building-blocks/sys/cam/cam_xpt_internal.h projects/building-blocks/sys/cam/scsi/scsi_xpt.c projects/building-blocks/sys/conf/kern.mk projects/building-blocks/sys/conf/options projects/building-blocks/sys/dev/cxgbe/offload.h projects/building-blocks/sys/dev/ed/if_ed.c projects/building-blocks/sys/dev/iscsi/icl.h projects/building-blocks/sys/dev/iscsi/icl_soft.c projects/building-blocks/sys/dev/iscsi/iscsi.c projects/building-blocks/sys/dev/iscsi/iscsi_ioctl.h projects/building-blocks/sys/dev/sfxge/common/efsys.h projects/building-blocks/sys/dev/sfxge/sfxge.c projects/building-blocks/sys/dev/sfxge/sfxge.h projects/building-blocks/sys/dev/sfxge/sfxge_ev.c projects/building-blocks/sys/dev/sfxge/sfxge_mcdi.c projects/building-blocks/sys/dev/sfxge/sfxge_port.c projects/building-blocks/sys/dev/sfxge/sfxge_rx.c projects/building-blocks/sys/dev/sfxge/sfxge_tx.c projects/building-blocks/sys/dev/sfxge/sfxge_tx.h projects/building-blocks/sys/kern/init_main.c projects/building-blocks/sys/kern/kern_clock.c projects/building-blocks/sys/kern/kern_clocksource.c projects/building-blocks/sys/sys/cdefs.h projects/building-blocks/sys/sys/param.h projects/building-blocks/tools/build/mk/OptionalObsoleteFiles.inc projects/building-blocks/usr.bin/iscsictl/iscsi.conf.5 projects/building-blocks/usr.bin/iscsictl/iscsictl.c projects/building-blocks/usr.bin/iscsictl/iscsictl.h projects/building-blocks/usr.bin/iscsictl/parse.y projects/building-blocks/usr.bin/iscsictl/token.l projects/building-blocks/usr.sbin/iscsid/iscsid.c projects/building-blocks/usr.sbin/iscsid/iscsid.h projects/building-blocks/usr.sbin/iscsid/login.c Directory Properties: projects/building-blocks/ (props changed) projects/building-blocks/etc/ (props changed) projects/building-blocks/include/ (props changed) projects/building-blocks/share/ (props changed) projects/building-blocks/share/man/man4/ (props changed) projects/building-blocks/sys/ (props changed) projects/building-blocks/sys/boot/ (props changed) projects/building-blocks/sys/conf/ (props changed) Modified: projects/building-blocks/etc/rc.d/Makefile ============================================================================== --- projects/building-blocks/etc/rc.d/Makefile Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/etc/rc.d/Makefile Thu Feb 5 12:21:05 2015 (r278256) @@ -157,10 +157,6 @@ FILES+= bootparams .endif .if ${MK_BSNMP} != "no" -_bsnmpd= bsnmpd -.endif - -.if ${MK_BSNMP} != "no" FILES+= bsnmpd .endif Modified: projects/building-blocks/include/Makefile ============================================================================== --- projects/building-blocks/include/Makefile Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/include/Makefile Thu Feb 5 12:21:05 2015 (r278256) @@ -106,7 +106,14 @@ INCS+= hesiod.h .if ${MK_ICONV} == "yes" INCS+= iconv.h .endif - + +.if ${MK_USB} != "no" +LSUBDIRS+= dev/usb +.endif + +.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" +_dev_powermac_nvram= dev/powermac_nvram +.endif # Define SHARED to indicate whether you want symbolic links to the system # source (``symlinks''), or a separate copy (``copies''). ``symlinks'' is Modified: projects/building-blocks/lib/clang/clang.build.mk ============================================================================== --- projects/building-blocks/lib/clang/clang.build.mk Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/lib/clang/clang.build.mk Thu Feb 5 12:21:05 2015 (r278256) @@ -35,6 +35,7 @@ CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\" -DLLVM_HOST_TRIPLE=\"${BUILD_TRIPLE}\" \ -DDEFAULT_SYSROOT=\"${TOOLS_PREFIX}\" CXXFLAGS+= -std=c++11 -fno-exceptions -fno-rtti +CXXFLAGS.clang+= -stdlib=libc++ .PATH: ${LLVM_SRCS}/${SRCDIR} Modified: projects/building-blocks/lib/csu/powerpc64/Makefile ============================================================================== --- projects/building-blocks/lib/csu/powerpc64/Makefile Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/lib/csu/powerpc64/Makefile Thu Feb 5 12:21:05 2015 (r278256) @@ -9,6 +9,9 @@ CFLAGS+= -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include \ -mlongcall +CC:= gcc +COMPILER_TYPE:= gcc + all: ${OBJS} CLEANFILES= ${OBJS} Modified: projects/building-blocks/release/release.sh ============================================================================== --- projects/building-blocks/release/release.sh Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/release/release.sh Thu Feb 5 12:21:05 2015 (r278256) @@ -1,6 +1,6 @@ #!/bin/sh #- -# Copyright (c) 2013, 2014 The FreeBSD Foundation +# Copyright (c) 2013-2015 The FreeBSD Foundation # Copyright (c) 2013 Glen Barber # Copyright (c) 2011 Nathan Whitehorn # All rights reserved. Modified: projects/building-blocks/share/examples/Makefile ============================================================================== --- projects/building-blocks/share/examples/Makefile Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/share/examples/Makefile Thu Feb 5 12:21:05 2015 (r278256) @@ -188,6 +188,16 @@ XFILES+= hast/ucarp.sh \ hast/vip-up.sh .endif +.if ${MK_USB} != "no" +LDIRS+= libusb20 +XFILES+= libusb20/Makefile \ + libusb20/README \ + libusb20/util.c \ + libusb20/util.h \ + libusb20/bulk.c \ + libusb20/control.c +.endif + .if ${MACHINE_CPUARCH} == "amd64" .if ${MK_BHYVE} != "no" LDIRS+= bhyve Modified: projects/building-blocks/sys/arm/broadcom/bcm2835/bcm2835_gpio.c ============================================================================== --- projects/building-blocks/sys/arm/broadcom/bcm2835/bcm2835_gpio.c Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/arm/broadcom/bcm2835/bcm2835_gpio.c Thu Feb 5 12:21:05 2015 (r278256) @@ -31,26 +31,19 @@ __FBSDID("$FreeBSD$"); #include #include #include - +#include +#include #include -#include -#include #include +#include #include -#include +#include #include #include -#include -#include -#include -#include -#include -#include #include #include -#include #include @@ -65,6 +58,7 @@ __FBSDID("$FreeBSD$"); #define BCM_GPIO_IRQS 4 #define BCM_GPIO_PINS 54 +#define BCM_GPIO_PINS_PER_BANK 32 #define BCM_GPIO_DEFAULT_CAPS (GPIO_PIN_INPUT | GPIO_PIN_OUTPUT | \ GPIO_PIN_PULLUP | GPIO_PIN_PULLDOWN) @@ -89,12 +83,15 @@ struct bcm_gpio_softc { struct resource * sc_res[BCM_GPIO_IRQS + 1]; bus_space_tag_t sc_bst; bus_space_handle_t sc_bsh; - void * sc_intrhand; + void * sc_intrhand[BCM_GPIO_IRQS]; int sc_gpio_npins; int sc_ro_npins; int sc_ro_pins[BCM_GPIO_PINS]; struct gpio_pin sc_gpio_pins[BCM_GPIO_PINS]; + struct intr_event * sc_events[BCM_GPIO_PINS]; struct bcm_gpio_sysctl sc_sysctl[BCM_GPIO_PINS]; + enum intr_trigger sc_irq_trigger[BCM_GPIO_PINS]; + enum intr_polarity sc_irq_polarity[BCM_GPIO_PINS]; }; enum bcm_gpio_pud { @@ -103,21 +100,35 @@ enum bcm_gpio_pud { BCM_GPIO_PULLUP, }; -#define BCM_GPIO_LOCK(_sc) mtx_lock(&_sc->sc_mtx) -#define BCM_GPIO_UNLOCK(_sc) mtx_unlock(&_sc->sc_mtx) -#define BCM_GPIO_LOCK_ASSERT(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED) - -#define BCM_GPIO_GPFSEL(_bank) 0x00 + _bank * 4 -#define BCM_GPIO_GPSET(_bank) 0x1c + _bank * 4 -#define BCM_GPIO_GPCLR(_bank) 0x28 + _bank * 4 -#define BCM_GPIO_GPLEV(_bank) 0x34 + _bank * 4 -#define BCM_GPIO_GPPUD(_bank) 0x94 -#define BCM_GPIO_GPPUDCLK(_bank) 0x98 + _bank * 4 - +#define BCM_GPIO_LOCK(_sc) mtx_lock_spin(&(_sc)->sc_mtx) +#define BCM_GPIO_UNLOCK(_sc) mtx_unlock_spin(&(_sc)->sc_mtx) +#define BCM_GPIO_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->sc_mtx, MA_OWNED) #define BCM_GPIO_WRITE(_sc, _off, _val) \ - bus_space_write_4(_sc->sc_bst, _sc->sc_bsh, _off, _val) + bus_space_write_4((_sc)->sc_bst, (_sc)->sc_bsh, _off, _val) #define BCM_GPIO_READ(_sc, _off) \ - bus_space_read_4(_sc->sc_bst, _sc->sc_bsh, _off) + bus_space_read_4((_sc)->sc_bst, (_sc)->sc_bsh, _off) +#define BCM_GPIO_CLEAR_BITS(_sc, _off, _bits) \ + BCM_GPIO_WRITE(_sc, _off, BCM_GPIO_READ(_sc, _off) & ~(_bits)) +#define BCM_GPIO_SET_BITS(_sc, _off, _bits) \ + BCM_GPIO_WRITE(_sc, _off, BCM_GPIO_READ(_sc, _off) | _bits) +#define BCM_GPIO_BANK(a) (a / BCM_GPIO_PINS_PER_BANK) +#define BCM_GPIO_MASK(a) (1U << (a % BCM_GPIO_PINS_PER_BANK)) + +#define BCM_GPIO_GPFSEL(_bank) (0x00 + _bank * 4) /* Function Select */ +#define BCM_GPIO_GPSET(_bank) (0x1c + _bank * 4) /* Pin Out Set */ +#define BCM_GPIO_GPCLR(_bank) (0x28 + _bank * 4) /* Pin Out Clear */ +#define BCM_GPIO_GPLEV(_bank) (0x34 + _bank * 4) /* Pin Level */ +#define BCM_GPIO_GPEDS(_bank) (0x40 + _bank * 4) /* Event Status */ +#define BCM_GPIO_GPREN(_bank) (0x4c + _bank * 4) /* Rising Edge irq */ +#define BCM_GPIO_GPFEN(_bank) (0x58 + _bank * 4) /* Falling Edge irq */ +#define BCM_GPIO_GPHEN(_bank) (0x64 + _bank * 4) /* High Level irq */ +#define BCM_GPIO_GPLEN(_bank) (0x70 + _bank * 4) /* Low Level irq */ +#define BCM_GPIO_GPAREN(_bank) (0x7c + _bank * 4) /* Async Rising Edge */ +#define BCM_GPIO_GPAFEN(_bank) (0x88 + _bank * 4) /* Async Falling Egde */ +#define BCM_GPIO_GPPUD(_bank) (0x94) /* Pin Pull up/down */ +#define BCM_GPIO_GPPUDCLK(_bank) (0x98 + _bank * 4) /* Pin Pull up clock */ + +static struct bcm_gpio_softc *bcm_gpio_sc = NULL; static int bcm_gpio_pin_is_ro(struct bcm_gpio_softc *sc, int pin) @@ -665,6 +676,40 @@ bcm_gpio_get_reserved_pins(struct bcm_gp } static int +bcm_gpio_intr(void *arg) +{ + int bank_last, irq; + struct bcm_gpio_softc *sc; + struct intr_event *event; + uint32_t bank, mask, reg; + + sc = (struct bcm_gpio_softc *)arg; + reg = 0; + bank_last = -1; + for (irq = 0; irq < BCM_GPIO_PINS; irq++) { + bank = BCM_GPIO_BANK(irq); + mask = BCM_GPIO_MASK(irq); + if (bank != bank_last) { + reg = BCM_GPIO_READ(sc, BCM_GPIO_GPEDS(bank)); + bank_last = bank; + } + if (reg & mask) { + event = sc->sc_events[irq]; + if (event != NULL && !TAILQ_EMPTY(&event->ie_handlers)) + intr_event_handle(event, NULL); + else { + device_printf(sc->sc_dev, "Stray IRQ %d\n", + irq); + } + /* Clear the Status bit by writing '1' to it. */ + BCM_GPIO_WRITE(sc, BCM_GPIO_GPEDS(bank), mask); + } + } + + return (FILTER_HANDLED); +} + +static int bcm_gpio_probe(device_t dev) { @@ -679,6 +724,39 @@ bcm_gpio_probe(device_t dev) } static int +bcm_gpio_intr_attach(device_t dev) +{ + struct bcm_gpio_softc *sc; + int i; + + sc = device_get_softc(dev); + for (i = 0; i < BCM_GPIO_IRQS; i++) { + if (bus_setup_intr(dev, sc->sc_res[i + 1], + INTR_TYPE_MISC | INTR_MPSAFE, bcm_gpio_intr, + NULL, sc, &sc->sc_intrhand[i]) != 0) { + return (-1); + } + } + + return (0); +} + +static void +bcm_gpio_intr_detach(device_t dev) +{ + struct bcm_gpio_softc *sc; + int i; + + sc = device_get_softc(dev); + for (i = 0; i < BCM_GPIO_IRQS; i++) { + if (sc->sc_intrhand[i]) { + bus_teardown_intr(dev, sc->sc_res[i + 1], + sc->sc_intrhand[i]); + } + } +} + +static int bcm_gpio_attach(device_t dev) { int i, j; @@ -686,30 +764,34 @@ bcm_gpio_attach(device_t dev) struct bcm_gpio_softc *sc; uint32_t func; - sc = device_get_softc(dev); - sc->sc_dev = dev; - mtx_init(&sc->sc_mtx, "bcm gpio", "gpio", MTX_DEF); + if (bcm_gpio_sc != NULL) + return (ENXIO); + + bcm_gpio_sc = sc = device_get_softc(dev); + sc->sc_dev = dev; + mtx_init(&sc->sc_mtx, "bcm gpio", "gpio", MTX_SPIN); if (bus_alloc_resources(dev, bcm_gpio_res_spec, sc->sc_res) != 0) { device_printf(dev, "cannot allocate resources\n"); goto fail; } sc->sc_bst = rman_get_bustag(sc->sc_res[0]); sc->sc_bsh = rman_get_bushandle(sc->sc_res[0]); - + /* Setup the GPIO interrupt handler. */ + if (bcm_gpio_intr_attach(dev)) { + device_printf(dev, "unable to setup the gpio irq handler\n"); + goto fail; + } /* Find our node. */ gpio = ofw_bus_get_node(sc->sc_dev); - if (!OF_hasprop(gpio, "gpio-controller")) /* Node is not a GPIO controller. */ goto fail; - /* * Find the read-only pins. These are pins we never touch or bad * things could happen. */ if (bcm_gpio_get_reserved_pins(sc) == -1) goto fail; - /* Initialize the software controlled pins. */ for (i = 0, j = 0; j < BCM_GPIO_PINS; j++) { snprintf(sc->sc_gpio_pins[i].gp_name, GPIOMAXNAME, @@ -718,6 +800,9 @@ bcm_gpio_attach(device_t dev) sc->sc_gpio_pins[i].gp_pin = j; sc->sc_gpio_pins[i].gp_caps = BCM_GPIO_DEFAULT_CAPS; sc->sc_gpio_pins[i].gp_flags = bcm_gpio_func_flag(func); + /* The default is active-low interrupts. */ + sc->sc_irq_trigger[i] = INTR_TRIGGER_LEVEL; + sc->sc_irq_polarity[i] = INTR_POLARITY_LOW; i++; } sc->sc_gpio_npins = i; @@ -729,6 +814,7 @@ bcm_gpio_attach(device_t dev) return (0); fail: + bcm_gpio_intr_detach(dev); bus_release_resources(dev, bcm_gpio_res_spec, sc->sc_res); mtx_destroy(&sc->sc_mtx); @@ -742,6 +828,177 @@ bcm_gpio_detach(device_t dev) return (EBUSY); } +static uint32_t +bcm_gpio_intr_reg(struct bcm_gpio_softc *sc, unsigned int irq, uint32_t bank) +{ + + if (irq > BCM_GPIO_PINS) + return (0); + if (sc->sc_irq_trigger[irq] == INTR_TRIGGER_LEVEL) { + if (sc->sc_irq_polarity[irq] == INTR_POLARITY_LOW) + return (BCM_GPIO_GPLEN(bank)); + else if (sc->sc_irq_polarity[irq] == INTR_POLARITY_HIGH) + return (BCM_GPIO_GPHEN(bank)); + } else if (sc->sc_irq_trigger[irq] == INTR_TRIGGER_EDGE) { + if (sc->sc_irq_polarity[irq] == INTR_POLARITY_LOW) + return (BCM_GPIO_GPFEN(bank)); + else if (sc->sc_irq_polarity[irq] == INTR_POLARITY_HIGH) + return (BCM_GPIO_GPREN(bank)); + } + + return (0); +} + +static void +bcm_gpio_mask_irq(void *source) +{ + uint32_t bank, mask, reg; + unsigned int irq; + + irq = (unsigned int)source; + if (irq > BCM_GPIO_PINS) + return; + if (bcm_gpio_pin_is_ro(bcm_gpio_sc, irq)) + return; + bank = BCM_GPIO_BANK(irq); + mask = BCM_GPIO_MASK(irq); + BCM_GPIO_LOCK(bcm_gpio_sc); + reg = bcm_gpio_intr_reg(bcm_gpio_sc, irq, bank); + if (reg != 0) + BCM_GPIO_CLEAR_BITS(bcm_gpio_sc, reg, mask); + BCM_GPIO_UNLOCK(bcm_gpio_sc); +} + +static void +bcm_gpio_unmask_irq(void *source) +{ + uint32_t bank, mask, reg; + unsigned int irq; + + irq = (unsigned int)source; + if (irq > BCM_GPIO_PINS) + return; + if (bcm_gpio_pin_is_ro(bcm_gpio_sc, irq)) + return; + bank = BCM_GPIO_BANK(irq); + mask = BCM_GPIO_MASK(irq); + BCM_GPIO_LOCK(bcm_gpio_sc); + reg = bcm_gpio_intr_reg(bcm_gpio_sc, irq, bank); + if (reg != 0) + BCM_GPIO_SET_BITS(bcm_gpio_sc, reg, mask); + BCM_GPIO_UNLOCK(bcm_gpio_sc); +} + +static int +bcm_gpio_activate_resource(device_t bus, device_t child, int type, int rid, + struct resource *res) +{ + int pin; + + if (type != SYS_RES_IRQ) + return (ENXIO); + /* Unmask the interrupt. */ + pin = rman_get_start(res); + bcm_gpio_unmask_irq((void *)pin); + + return (0); +} + +static int +bcm_gpio_deactivate_resource(device_t bus, device_t child, int type, int rid, + struct resource *res) +{ + int pin; + + if (type != SYS_RES_IRQ) + return (ENXIO); + /* Mask the interrupt. */ + pin = rman_get_start(res); + bcm_gpio_mask_irq((void *)pin); + + return (0); +} + +static int +bcm_gpio_config_intr(device_t dev, int irq, enum intr_trigger trig, + enum intr_polarity pol) +{ + int bank; + struct bcm_gpio_softc *sc; + uint32_t mask, oldreg, reg; + + if (irq > BCM_GPIO_PINS) + return (EINVAL); + /* There is no standard trigger or polarity. */ + if (trig == INTR_TRIGGER_CONFORM || pol == INTR_POLARITY_CONFORM) + return (EINVAL); + sc = device_get_softc(dev); + if (bcm_gpio_pin_is_ro(sc, irq)) + return (EINVAL); + bank = BCM_GPIO_BANK(irq); + mask = BCM_GPIO_MASK(irq); + BCM_GPIO_LOCK(sc); + oldreg = bcm_gpio_intr_reg(sc, irq, bank); + sc->sc_irq_trigger[irq] = trig; + sc->sc_irq_polarity[irq] = pol; + reg = bcm_gpio_intr_reg(sc, irq, bank); + if (reg != 0) + BCM_GPIO_SET_BITS(sc, reg, mask); + if (reg != oldreg && oldreg != 0) + BCM_GPIO_CLEAR_BITS(sc, oldreg, mask); + BCM_GPIO_UNLOCK(sc); + + return (0); +} + +static int +bcm_gpio_setup_intr(device_t bus, device_t child, struct resource *ires, + int flags, driver_filter_t *filt, driver_intr_t *handler, + void *arg, void **cookiep) +{ + struct bcm_gpio_softc *sc; + struct intr_event *event; + int pin, error; + + sc = device_get_softc(bus); + pin = rman_get_start(ires); + if (pin > BCM_GPIO_PINS) + panic("%s: bad pin %d", __func__, pin); + event = sc->sc_events[pin]; + if (event == NULL) { + error = intr_event_create(&event, (void *)pin, 0, pin, + bcm_gpio_mask_irq, bcm_gpio_unmask_irq, NULL, NULL, + "gpio%d pin%d:", device_get_unit(bus), pin); + if (error != 0) + return (error); + sc->sc_events[pin] = event; + } + intr_event_add_handler(event, device_get_nameunit(child), filt, + handler, arg, intr_priority(flags), flags, cookiep); + + return (0); +} + +static int +bcm_gpio_teardown_intr(device_t dev, device_t child, struct resource *ires, + void *cookie) +{ + struct bcm_gpio_softc *sc; + int pin, err; + + sc = device_get_softc(dev); + pin = rman_get_start(ires); + if (pin > BCM_GPIO_PINS) + panic("%s: bad pin %d", __func__, pin); + if (sc->sc_events[pin] == NULL) + panic("Trying to teardown unoccupied IRQ"); + err = intr_event_remove_handler(cookie); + if (!err) + sc->sc_events[pin] = NULL; + + return (err); +} + static phandle_t bcm_gpio_get_node(device_t bus, device_t dev) { @@ -767,6 +1024,13 @@ static device_method_t bcm_gpio_methods[ DEVMETHOD(gpio_pin_set, bcm_gpio_pin_set), DEVMETHOD(gpio_pin_toggle, bcm_gpio_pin_toggle), + /* Bus interface */ + DEVMETHOD(bus_activate_resource, bcm_gpio_activate_resource), + DEVMETHOD(bus_deactivate_resource, bcm_gpio_deactivate_resource), + DEVMETHOD(bus_config_intr, bcm_gpio_config_intr), + DEVMETHOD(bus_setup_intr, bcm_gpio_setup_intr), + DEVMETHOD(bus_teardown_intr, bcm_gpio_teardown_intr), + /* ofw_bus interface */ DEVMETHOD(ofw_bus_get_node, bcm_gpio_get_node), Modified: projects/building-blocks/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c ============================================================================== --- projects/building-blocks/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c Thu Feb 5 12:21:05 2015 (r278256) @@ -29,32 +29,17 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include -#include -#include #include -#include #include #include #include #include -#include -#include #include #include #include -#include -#include -#include - -#include #include -#include -#include -#include -#include #include #include @@ -82,19 +67,9 @@ __FBSDID("$FreeBSD$"); #define dprintf(fmt, args...) #endif -/* - * Arasan HC seems to have problem with Data CRC on lower frequencies. - * Use this tunable to cap initialization sequence frequency at higher - * value. Default is standard 400kHz. - * HS mode brings too many problems for most of cards, so disable HS mode - * until a better fix comes up. - * HS mode still can be enabled with the tunable. - */ -static int bcm2835_sdhci_min_freq = 400000; static int bcm2835_sdhci_hs = 1; static int bcm2835_sdhci_pio_mode = 0; -TUNABLE_INT("hw.bcm2835.sdhci.min_freq", &bcm2835_sdhci_min_freq); TUNABLE_INT("hw.bcm2835.sdhci.hs", &bcm2835_sdhci_hs); TUNABLE_INT("hw.bcm2835.sdhci.pio_mode", &bcm2835_sdhci_pio_mode); @@ -211,16 +186,12 @@ bcm_sdhci_attach(device_t dev) RF_ACTIVE); if (!sc->sc_irq_res) { device_printf(dev, "cannot allocate interrupt\n"); - bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_mem_res); err = ENXIO; goto fail; } if (bus_setup_intr(dev, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE, - NULL, bcm_sdhci_intr, sc, &sc->sc_intrhand)) - { - bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_mem_res); - bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_irq_res); + NULL, bcm_sdhci_intr, sc, &sc->sc_intrhand)) { device_printf(dev, "cannot setup interrupt handler\n"); err = ENXIO; goto fail; @@ -286,6 +257,7 @@ fail: bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_irq_res); if (sc->sc_mem_res) bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_mem_res); + mtx_destroy(&sc->sc_mtx); return (err); } @@ -422,13 +394,6 @@ bcm_sdhci_write_multi_4(device_t dev, st bus_space_write_multi_4(sc->sc_bst, sc->sc_bsh, off, data, count); } -static uint32_t -bcm_sdhci_min_freq(device_t dev, struct sdhci_slot *slot) -{ - - return bcm2835_sdhci_min_freq; -} - static void bcm_sdhci_start_dma_seg(struct bcm_sdhci_softc *sc) { @@ -681,7 +646,6 @@ static device_method_t bcm_sdhci_methods DEVMETHOD(mmcbr_acquire_host, sdhci_generic_acquire_host), DEVMETHOD(mmcbr_release_host, sdhci_generic_release_host), - DEVMETHOD(sdhci_min_freq, bcm_sdhci_min_freq), /* Platform transfer methods */ DEVMETHOD(sdhci_platform_will_handle, bcm_sdhci_will_handle_transfer), DEVMETHOD(sdhci_platform_start_transfer, bcm_sdhci_start_transfer), Modified: projects/building-blocks/sys/arm/ti/ti_gpio.c ============================================================================== --- projects/building-blocks/sys/arm/ti/ti_gpio.c Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/arm/ti/ti_gpio.c Thu Feb 5 12:21:05 2015 (r278256) @@ -1004,7 +1004,7 @@ ti_gpio_config_intr(device_t dev, int ir val |= TI_GPIO_MASK(irq); ti_gpio_write_4(sc, TI_GPIO_BANK(irq), reg, val); } - if (oldreg != 0) { + if (reg != oldreg && oldreg != 0) { /* Remove the old settings. */ val = ti_gpio_read_4(sc, TI_GPIO_BANK(irq), oldreg); val &= ~TI_GPIO_MASK(irq); Modified: projects/building-blocks/sys/boot/amd64/efi/main.c ============================================================================== --- projects/building-blocks/sys/boot/amd64/efi/main.c Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/boot/amd64/efi/main.c Thu Feb 5 12:21:05 2015 (r278256) @@ -53,6 +53,10 @@ EFI_GUID imgid = LOADED_IMAGE_PROTOCOL; EFI_GUID mps = MPS_TABLE_GUID; EFI_GUID netid = EFI_SIMPLE_NETWORK_PROTOCOL; EFI_GUID smbios = SMBIOS_TABLE_GUID; +EFI_GUID dxe = DXE_SERVICES_TABLE_GUID; +EFI_GUID hoblist = HOB_LIST_TABLE_GUID; +EFI_GUID memtype = MEMORY_TYPE_INFORMATION_TABLE_GUID; +EFI_GUID debugimg = DEBUG_IMAGE_INFO_TABLE_GUID; EFI_STATUS main(int argc, CHAR16 *argv[]) @@ -264,6 +268,14 @@ command_configuration(int argc, char *ar printf("ACPI 2.0 Table"); else if (!memcmp(guid, &smbios, sizeof(EFI_GUID))) printf("SMBIOS Table"); + else if (!memcmp(guid, &dxe, sizeof(EFI_GUID))) + printf("DXE Table"); + else if (!memcmp(guid, &hoblist, sizeof(EFI_GUID))) + printf("HOB List Table"); + else if (!memcmp(guid, &memtype, sizeof(EFI_GUID))) + printf("Memory Type Information Table"); + else if (!memcmp(guid, &debugimg, sizeof(EFI_GUID))) + printf("Debug Image Info Table"); else printf("Unknown Table (%s)", guid_to_string(guid)); printf(" at %p\n", ST->ConfigurationTable[i].VendorTable); @@ -319,7 +331,7 @@ command_mode(int argc, char *argv[]) } if (i != 0) - printf("Choose the mode with \"col \"\n"); + printf("Choose the mode with \"col \"\n"); return (CMD_OK); } Modified: projects/building-blocks/sys/boot/efi/include/efiapi.h ============================================================================== --- projects/building-blocks/sys/boot/efi/include/efiapi.h Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/boot/efi/include/efiapi.h Thu Feb 5 12:21:05 2015 (r278256) @@ -88,7 +88,7 @@ EFI_STATUS IN VOID *Buffer ); -typedef +typedef EFI_STATUS (EFIAPI *EFI_SET_VIRTUAL_ADDRESS_MAP) ( IN UINTN MemoryMapSize, @@ -103,7 +103,7 @@ EFI_STATUS #define EFI_INTERNAL_PTR 0x00000004 // Pointer to internal runtime data -typedef +typedef EFI_STATUS (EFIAPI *EFI_CONVERT_POINTER) ( IN UINTN DebugDisposition, @@ -168,7 +168,7 @@ EFI_STATUS IN EFI_EVENT Event ); -typedef +typedef EFI_STATUS (EFIAPI *EFI_WAIT_FOR_EVENT) ( IN UINTN NumberOfEvents, @@ -194,8 +194,8 @@ EFI_STATUS #define TPL_APPLICATION 4 #define TPL_CALLBACK 8 -#define TPL_NOTIFY 16 -#define TPL_HIGH_LEVEL 31 +#define TPL_NOTIFY 16 +#define TPL_HIGH_LEVEL 31 typedef EFI_TPL @@ -320,14 +320,14 @@ EFI_STATUS // Image Entry prototype -typedef +typedef EFI_STATUS (EFIAPI *EFI_IMAGE_ENTRY_POINT) ( IN EFI_HANDLE ImageHandle, IN struct _EFI_SYSTEM_TABLE *SystemTable ); -typedef +typedef EFI_STATUS (EFIAPI *EFI_IMAGE_LOAD) ( IN BOOLEAN BootPolicy, @@ -338,7 +338,7 @@ EFI_STATUS OUT EFI_HANDLE *ImageHandle ); -typedef +typedef EFI_STATUS (EFIAPI *EFI_IMAGE_START) ( IN EFI_HANDLE ImageHandle, @@ -355,7 +355,7 @@ EFI_STATUS IN CHAR16 *ExitData OPTIONAL ); -typedef +typedef EFI_STATUS (EFIAPI *EFI_IMAGE_UNLOAD) ( IN EFI_HANDLE ImageHandle @@ -491,7 +491,7 @@ EFI_STATUS ); typedef -EFI_STATUS +EFI_STATUS (EFIAPI *EFI_REGISTER_PROTOCOL_NOTIFY) ( IN EFI_GUID *Protocol, IN EFI_EVENT Event, @@ -535,7 +535,7 @@ EFI_STATUS ); typedef -EFI_STATUS +EFI_STATUS (EFIAPI *EFI_CONNECT_CONTROLLER) ( IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE *DriverImageHandle OPTIONAL, @@ -544,19 +544,19 @@ EFI_STATUS ); typedef -EFI_STATUS +EFI_STATUS (EFIAPI *EFI_DISCONNECT_CONTROLLER)( IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE DriverImageHandle, OPTIONAL IN EFI_HANDLE ChildHandle OPTIONAL - ); + ); -#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001 -#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002 -#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004 -#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008 -#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010 -#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020 +#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001 +#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002 +#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004 +#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008 +#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010 +#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020 typedef EFI_STATUS @@ -804,7 +804,7 @@ typedef struct { // EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle; EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer; - EFI_LOCATE_PROTOCOL LocateProtocol; + EFI_LOCATE_PROTOCOL LocateProtocol; EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces; EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces; @@ -845,6 +845,18 @@ typedef struct { #define FDT_TABLE_GUID \ { 0xb1b621d5, 0xf19c, 0x41a5, 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 } +#define DXE_SERVICES_TABLE_GUID \ + { 0x5ad34ba, 0x6f02, 0x4214, 0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9 } + +#define HOB_LIST_TABLE_GUID \ + { 0x7739f24c, 0x93d7, 0x11d4, 0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } + +#define MEMORY_TYPE_INFORMATION_TABLE_GUID \ + { 0x4c19049f, 0x4137, 0x4dd3, 0x9c, 0x10, 0x8b, 0x97, 0xa8, 0x3f, 0xfd, 0xfa } + +#define DEBUG_IMAGE_INFO_TABLE_GUID \ + { 0x49152e77, 0x1ada, 0x4764, 0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b } + typedef struct _EFI_CONFIGURATION_TABLE { EFI_GUID VendorGuid; VOID *VendorTable; Modified: projects/building-blocks/sys/cam/cam_ccb.h ============================================================================== --- projects/building-blocks/sys/cam/cam_ccb.h Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/cam/cam_ccb.h Thu Feb 5 12:21:05 2015 (r278256) @@ -1147,6 +1147,7 @@ struct ccb_dev_advinfo { #define CDAI_TYPE_SERIAL_NUM 2 #define CDAI_TYPE_PHYS_PATH 3 #define CDAI_TYPE_RCAPLONG 4 +#define CDAI_TYPE_EXT_INQ 5 off_t bufsiz; /* IN: Size of external buffer */ #define CAM_SCSI_DEVID_MAXLEN 65536 /* length in buffer is an uint16_t */ off_t provsiz; /* OUT: Size required/used */ Modified: projects/building-blocks/sys/cam/cam_xpt.c ============================================================================== --- projects/building-blocks/sys/cam/cam_xpt.c Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/cam/cam_xpt.c Thu Feb 5 12:21:05 2015 (r278256) @@ -4795,6 +4795,7 @@ xpt_release_device(struct cam_ed *device */ free(device->supported_vpds, M_CAMXPT); free(device->device_id, M_CAMXPT); + free(device->ext_inq, M_CAMXPT); free(device->physpath, M_CAMXPT); free(device->rcap_buf, M_CAMXPT); free(device->serial_num, M_CAMXPT); Modified: projects/building-blocks/sys/cam/cam_xpt_internal.h ============================================================================== --- projects/building-blocks/sys/cam/cam_xpt_internal.h Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/cam/cam_xpt_internal.h Thu Feb 5 12:21:05 2015 (r278256) @@ -83,6 +83,8 @@ struct cam_ed { uint8_t supported_vpds_len; uint32_t device_id_len; uint8_t *device_id; + uint32_t ext_inq_len; + uint8_t *ext_inq; uint8_t physpath_len; uint8_t *physpath; /* physical path string form */ uint32_t rcap_len; Modified: projects/building-blocks/sys/cam/scsi/scsi_xpt.c ============================================================================== --- projects/building-blocks/sys/cam/scsi/scsi_xpt.c Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/cam/scsi/scsi_xpt.c Thu Feb 5 12:21:05 2015 (r278256) @@ -139,6 +139,7 @@ typedef enum { PROBE_MODE_SENSE, PROBE_SUPPORTED_VPD_LIST, PROBE_DEVICE_ID, + PROBE_EXTENDED_INQUIRY, PROBE_SERIAL_NUM, PROBE_TUR_FOR_NEGOTIATION, PROBE_INQUIRY_BASIC_DV1, @@ -156,6 +157,7 @@ static char *probe_action_text[] = { "PROBE_MODE_SENSE", "PROBE_SUPPORTED_VPD_LIST", "PROBE_DEVICE_ID", + "PROBE_EXTENDED_INQUIRY", "PROBE_SERIAL_NUM", "PROBE_TUR_FOR_NEGOTIATION", "PROBE_INQUIRY_BASIC_DV1", @@ -923,6 +925,34 @@ done: } goto done; } + case PROBE_EXTENDED_INQUIRY: + { + struct scsi_vpd_extended_inquiry_data *ext_inq; + + ext_inq = NULL; + if (scsi_vpd_supported_page(periph, SVPD_EXTENDED_INQUIRY_DATA)) + ext_inq = malloc(sizeof(*ext_inq), M_CAMXPT, + M_NOWAIT | M_ZERO); + + if (ext_inq != NULL) { + scsi_inquiry(csio, + /*retries*/4, + probedone, + MSG_SIMPLE_Q_TAG, + (uint8_t *)ext_inq, + sizeof(*ext_inq), + /*evpd*/TRUE, + SVPD_EXTENDED_INQUIRY_DATA, + SSD_MIN_SIZE, + /*timeout*/60 * 1000); + break; + } + /* + * We'll have to do without, let our probedone + * routine finish up for us. + */ + goto done; + } case PROBE_SERIAL_NUM: { struct scsi_vpd_unit_serial_number *serial_buf; @@ -1454,6 +1484,50 @@ out: if (devid && length == 0) free(devid, M_CAMXPT); xpt_release_ccb(done_ccb); + PROBE_SET_ACTION(softc, PROBE_EXTENDED_INQUIRY); + xpt_schedule(periph, priority); + goto out; + } + case PROBE_EXTENDED_INQUIRY: { + struct scsi_vpd_extended_inquiry_data *ext_inq; + struct ccb_scsiio *csio; + int32_t length = 0; + + csio = &done_ccb->csio; + ext_inq = (struct scsi_vpd_extended_inquiry_data *) + csio->data_ptr; + if (path->device->ext_inq != NULL) { + path->device->ext_inq_len = 0; + free(path->device->ext_inq, M_CAMXPT); + path->device->ext_inq = NULL; + } + + if (ext_inq == NULL) { + /* Don't process the command as it was never sent */ + } else if (CCB_COMPLETED_OK(csio->ccb_h)) { + length = scsi_2btoul(ext_inq->page_length) + + __offsetof(struct scsi_vpd_extended_inquiry_data, + flags1); + length = min(length, sizeof(*ext_inq)); + length -= csio->resid; + if (length > 0) { + path->device->ext_inq_len = length; + path->device->ext_inq = (uint8_t *)ext_inq; + } + } else if (cam_periph_error(done_ccb, 0, + SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + + /* Free the device id space if we don't use it */ + if (ext_inq && length <= 0) + free(ext_inq, M_CAMXPT); + xpt_release_ccb(done_ccb); PROBE_SET_ACTION(softc, PROBE_SERIAL_NUM); xpt_schedule(periph, priority); goto out; @@ -2477,6 +2551,21 @@ scsi_dev_advinfo(union ccb *start_ccb) memcpy(cdai->buf, device->rcap_buf, amt); } break; + case CDAI_TYPE_EXT_INQ: + /* + * We fetch extended inquiry data during probe, if + * available. We don't allow changing it. + */ + if (cdai->flags & CDAI_FLAG_STORE) + return; + cdai->provsiz = device->ext_inq_len; + if (device->ext_inq_len == 0) + break; + amt = device->ext_inq_len; + if (cdai->provsiz > cdai->bufsiz) + amt = cdai->bufsiz; + memcpy(cdai->buf, device->ext_inq, amt); + break; default: return; } Modified: projects/building-blocks/sys/conf/kern.mk ============================================================================== --- projects/building-blocks/sys/conf/kern.mk Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/conf/kern.mk Thu Feb 5 12:21:05 2015 (r278256) @@ -158,6 +158,14 @@ INLINE_LIMIT?= 8000 CFLAGS+= -ffreestanding # +# The C standard leaves signed integer overflow behavior undefined. +# gcc and clang opimizers take advantage of this. The kernel makes +# use of signed integer wraparound mechanics so we need the compiler +# to treat it as a wraparound and not take shortcuts. +# +CFLAGS+= -fwrapv + +# # GCC SSP support # .if ${MK_SSP} != "no" && \ Modified: projects/building-blocks/sys/conf/options ============================================================================== --- projects/building-blocks/sys/conf/options Thu Feb 5 12:10:23 2015 (r278255) +++ projects/building-blocks/sys/conf/options Thu Feb 5 12:21:05 2015 (r278256) @@ -129,6 +129,7 @@ GEOM_SHSEC opt_geom.h GEOM_STRIPE opt_geom.h *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Thu Feb 5 20:34:54 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 89FB8334; Thu, 5 Feb 2015 20:34:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 76F4C816; Thu, 5 Feb 2015 20:34:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t15KYs1h033388; Thu, 5 Feb 2015 20:34:54 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t15KYsow033387; Thu, 5 Feb 2015 20:34:54 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201502052034.t15KYsow033387@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Thu, 5 Feb 2015 20:34:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278281 - projects/building-blocks/etc/rc.d X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2015 20:34:54 -0000 Author: ngie Date: Thu Feb 5 20:34:53 2015 New Revision: 278281 URL: https://svnweb.freebsd.org/changeset/base/278281 Log: Use FILES+=, not _inetd for inetd Modified: projects/building-blocks/etc/rc.d/Makefile Modified: projects/building-blocks/etc/rc.d/Makefile ============================================================================== --- projects/building-blocks/etc/rc.d/Makefile Thu Feb 5 20:23:36 2015 (r278280) +++ projects/building-blocks/etc/rc.d/Makefile Thu Feb 5 20:34:53 2015 (r278281) @@ -38,7 +38,6 @@ FILES= DAEMON \ hostid \ hostid_save \ hostname \ - ${_inetd} \ ipsec \ ${_kadmind} \ ${_kdc} \ @@ -181,7 +180,7 @@ FILES+= hastd .endif .if ${MK_INETD} != "no" -_inetd= inetd +FILES+= inetd .endif .if ${MK_INET6} != "no" From owner-svn-src-projects@FreeBSD.ORG Thu Feb 5 22:34:36 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B966963E; Thu, 5 Feb 2015 22:34:36 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A21398FE; Thu, 5 Feb 2015 22:34:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t15MYaRe091844; Thu, 5 Feb 2015 22:34:36 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t15MYUTM091807; Thu, 5 Feb 2015 22:34:30 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201502052234.t15MYUTM091807@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 5 Feb 2015 22:34:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278298 - in projects/clang360-import: etc etc/rc.d lib/clang lib/csu/powerpc64 release/doc/en_US.ISO8859-1/errata release/doc/en_US.ISO8859-1/relnotes release/doc/share/xml sbin/ipfw s... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2015 22:34:36 -0000 Author: dim Date: Thu Feb 5 22:34:29 2015 New Revision: 278298 URL: https://svnweb.freebsd.org/changeset/base/278298 Log: Merging ^/head r278224 through r278297. Added: projects/clang360-import/release/doc/share/xml/errata.xml - copied unchanged from r278297, head/release/doc/share/xml/errata.xml projects/clang360-import/release/doc/share/xml/security.xml - copied unchanged from r278297, head/release/doc/share/xml/security.xml projects/clang360-import/sys/contrib/vchiq/ - copied from r278297, head/sys/contrib/vchiq/ projects/clang360-import/tools/tools/qrndtest/ - copied from r278297, head/tools/tools/qrndtest/ Modified: projects/clang360-import/etc/Makefile projects/clang360-import/etc/rc.d/Makefile projects/clang360-import/lib/clang/clang.build.mk projects/clang360-import/lib/csu/powerpc64/Makefile projects/clang360-import/release/doc/en_US.ISO8859-1/errata/article.xml projects/clang360-import/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/clang360-import/release/doc/share/xml/release.ent projects/clang360-import/sbin/ipfw/ipfw2.c projects/clang360-import/sys/arm/broadcom/bcm2835/files.bcm2835 projects/clang360-import/sys/boot/amd64/efi/main.c projects/clang360-import/sys/boot/efi/include/efiapi.h projects/clang360-import/sys/cam/cam_ccb.h projects/clang360-import/sys/cam/cam_xpt.c projects/clang360-import/sys/cam/cam_xpt_internal.h projects/clang360-import/sys/cam/scsi/scsi_xpt.c projects/clang360-import/sys/conf/kern.mk projects/clang360-import/sys/conf/kern.pre.mk projects/clang360-import/sys/conf/options projects/clang360-import/sys/dev/cxgbe/offload.h projects/clang360-import/sys/dev/iscsi/icl.h projects/clang360-import/sys/dev/iscsi/icl_soft.c projects/clang360-import/sys/dev/iscsi/iscsi.c projects/clang360-import/sys/dev/iscsi/iscsi_ioctl.h projects/clang360-import/sys/dev/sfxge/common/efsys.h projects/clang360-import/sys/dev/sfxge/sfxge.c projects/clang360-import/sys/dev/sfxge/sfxge.h projects/clang360-import/sys/dev/sfxge/sfxge_ev.c projects/clang360-import/sys/dev/sfxge/sfxge_mcdi.c projects/clang360-import/sys/dev/sfxge/sfxge_port.c projects/clang360-import/sys/dev/sfxge/sfxge_tx.c projects/clang360-import/sys/dev/sfxge/sfxge_tx.h projects/clang360-import/sys/dev/uart/uart_bus_pci.c projects/clang360-import/sys/dev/vt/hw/vga/vt_vga.c projects/clang360-import/sys/kern/init_main.c projects/clang360-import/sys/kern/kern_clock.c projects/clang360-import/sys/kern/subr_bus.c projects/clang360-import/sys/netinet6/in6.c projects/clang360-import/sys/netpfil/ipfw/ip_fw_iface.c (contents, props changed) projects/clang360-import/sys/netpfil/ipfw/ip_fw_nat.c projects/clang360-import/sys/netpfil/ipfw/ip_fw_private.h projects/clang360-import/sys/netpfil/ipfw/ip_fw_table.c projects/clang360-import/sys/netpfil/ipfw/ip_fw_table_algo.c projects/clang360-import/sys/sys/systm.h projects/clang360-import/sys/ufs/ffs/ffs_softdep.c projects/clang360-import/usr.bin/iscsictl/iscsi.conf.5 projects/clang360-import/usr.bin/iscsictl/iscsictl.c projects/clang360-import/usr.bin/iscsictl/iscsictl.h projects/clang360-import/usr.bin/iscsictl/parse.y projects/clang360-import/usr.bin/iscsictl/token.l projects/clang360-import/usr.sbin/iscsid/iscsid.c projects/clang360-import/usr.sbin/iscsid/iscsid.h projects/clang360-import/usr.sbin/iscsid/login.c projects/clang360-import/usr.sbin/syslogd/syslogd.c Directory Properties: projects/clang360-import/ (props changed) projects/clang360-import/etc/ (props changed) projects/clang360-import/sbin/ (props changed) projects/clang360-import/sbin/ipfw/ (props changed) projects/clang360-import/sys/ (props changed) projects/clang360-import/sys/boot/ (props changed) projects/clang360-import/sys/conf/ (props changed) Modified: projects/clang360-import/etc/Makefile ============================================================================== --- projects/clang360-import/etc/Makefile Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/etc/Makefile Thu Feb 5 22:34:29 2015 (r278298) @@ -44,7 +44,6 @@ BIN1= crontab \ rc.bsdextended \ rc.firewall \ rc.initdiskless \ - rc.sendmail \ rc.shutdown \ rc.subr \ remote \ @@ -144,6 +143,10 @@ BIN1+= portsnap.conf BIN1+= pf.os .endif +.if ${MK_SENDMAIL} != "no" +BIN1+= rc.sendmail +.endif + .if ${MK_TCSH} != "no" BIN1+= csh.cshrc csh.login csh.logout .endif @@ -254,7 +257,9 @@ distribution: .endif ${_+_}cd ${.CURDIR}/gss; ${MAKE} install ${_+_}cd ${.CURDIR}/periodic; ${MAKE} install +.if ${MK_PKGBOOTSTRAP} != "no" ${_+_}cd ${.CURDIR}/pkg; ${MAKE} install +.endif ${_+_}cd ${.CURDIR}/rc.d; ${MAKE} install ${_+_}cd ${.CURDIR}/../share/termcap; ${MAKE} etc-termcap ${_+_}cd ${.CURDIR}/../usr.sbin/rmt; ${MAKE} etc-rmt @@ -316,8 +321,10 @@ distribution: .endif ${INSTALL} -o ${BINOWN} -g operator -m 664 /dev/null \ ${DESTDIR}/etc/dumpdates +.if ${MK_LOCATE} != "no" ${INSTALL} -o nobody -g ${BINGRP} -m 644 /dev/null \ ${DESTDIR}/var/db/locate.database +.endif ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 ${.CURDIR}/minfree \ ${DESTDIR}/var/crash cd ${.CURDIR}/..; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \ @@ -385,6 +392,7 @@ distrib-dirs: ${MTREES:N/*} done; true .endif ${INSTALL_SYMLINK} usr/src/sys ${DESTDIR}/sys +.if ${MK_MAN} != "no" cd ${DESTDIR}/usr/share/man; \ for mandir in man*; do \ ${INSTALL_SYMLINK} ../$$mandir \ @@ -392,23 +400,30 @@ distrib-dirs: ${MTREES:N/*} ${INSTALL_SYMLINK} ../$$mandir \ ${DESTDIR}/usr/share/man/en.UTF-8/; \ done +.if ${MK_OPENSSL} != "no" cd ${DESTDIR}/usr/share/openssl/man; \ for mandir in man*; do \ ${INSTALL_SYMLINK} ../$$mandir \ ${DESTDIR}/usr/share/openssl/man/en.ISO8859-1/; \ done +.endif set - `grep "^[a-zA-Z]" ${.CURDIR}/man.alias`; \ while [ $$# -gt 0 ] ; do \ ${INSTALL_SYMLINK} "$$2" "${DESTDIR}/usr/share/man/$$1"; \ - ${INSTALL_SYMLINK} "$$2" \ - "${DESTDIR}/usr/share/openssl/man/$$1"; \ + if [ "${MK_OPENSSL}" != "no" ]; then \ + ${INSTALL_SYMLINK} "$$2" \ + "${DESTDIR}/usr/share/openssl/man/$$1"; \ + fi; \ shift; shift; \ done +.endif +.if ${MK_NLS} != "no" set - `grep "^[a-zA-Z]" ${.CURDIR}/nls.alias`; \ while [ $$# -gt 0 ] ; do \ ${INSTALL_SYMLINK} "$$2" "${DESTDIR}/usr/share/nls/$$1"; \ shift; shift; \ done +.endif etc-examples: cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \ Modified: projects/clang360-import/etc/rc.d/Makefile ============================================================================== --- projects/clang360-import/etc/rc.d/Makefile Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/etc/rc.d/Makefile Thu Feb 5 22:34:29 2015 (r278298) @@ -19,7 +19,6 @@ FILES= DAEMON \ auditdistd \ bgfsck \ ${_bluetooth} \ - bootparams \ bridge \ ${_bthidd} \ ${_casperd} \ @@ -35,7 +34,6 @@ FILES= DAEMON \ dmesg \ dumpon \ fsck \ - ftpd \ gbde \ geli \ geli2 \ @@ -46,7 +44,6 @@ FILES= DAEMON \ hostid \ hostid_save \ hostname \ - inetd \ ip6addrctl \ ipfilter \ ipfs \ @@ -72,7 +69,6 @@ FILES= DAEMON \ mdconfig \ mdconfig2 \ mountd \ - moused \ mroute6d \ msgs \ natd \ @@ -87,14 +83,11 @@ FILES= DAEMON \ nisdomain \ ${_nscd} \ nsswitch \ - ntpd \ ntpdate \ ${_opensm} \ - othermta \ pf \ pflog \ pfsync \ - powerd \ ppp \ pppoed \ pwcheck \ @@ -124,17 +117,14 @@ FILES= DAEMON \ stf \ swap \ swaplate \ - syscons \ sysctl \ syslogd \ - timed \ tmp \ ${_ubthidhci} \ ugidfw \ ${_unbound} \ ${_utx} \ var \ - virecover \ watchdogd \ ypbind \ yppasswdd \ @@ -153,6 +143,10 @@ FILES+= accounting FILES+= power_profile .endif +.if ${MK_ACPI} != "no" || ${MK_APM} != "no" +FILES+= powerd +.endif + .if ${MK_AMD} != "no" FILES+= amd .endif @@ -175,6 +169,10 @@ _hcsecd= hcsecd _ubthidhci= ubthidhci .endif +.if ${MK_BOOTPARAMD} != "no" +FILES+= bootparams +.endif + .if ${MK_BSNMP} != "no" FILES+= bsnmpd .endif @@ -187,10 +185,18 @@ _casperd= casperd FILES+= ccd .endif +.if ${MK_FTP} != "no" +FILES+= ftpd +.endif + .if ${MK_HAST} != "no" FILES+= hastd .endif +.if ${MK_INETD} != "no" +FILES+= inetd +.endif + .if ${MK_ISCSI} != "no" FILES+= iscsictl FILES+= iscsid @@ -200,12 +206,13 @@ FILES+= iscsid FILES+= jail .endif -.if ${MK_LPR} != "no" -FILES+= lpd +.if ${MK_LEGACY_CONSOLE} != "no" +FILES+= moused +FILES+= syscons .endif -.if ${MK_NS_CACHING} != "no" -_nscd= nscd +.if ${MK_LPR} != "no" +FILES+= lpd .endif .if ${MK_KERBEROS} != "no" @@ -217,6 +224,18 @@ _kfd= kfd _kpasswdd= kpasswdd .endif +.if ${MK_MAIL} != "no" +FILES+= othermta +.endif + +.if ${MK_NS_CACHING} != "no" +_nscd= nscd +.endif + +.if ${MK_NTP} != "no" +FILES+= ntpd +.endif + .if ${MK_OFED} != "no" _opensm= opensm .endif @@ -237,6 +256,18 @@ FILES+= ftp-proxy FILES+= rwho .endif +.if ${MK_ROUTED} != "no" +FILES+= routed +.endif + +.if ${MK_SENDMAIL} != "no" +FILES+= sendmail +.endif + +.if ${MK_TIMED} != "no" +FILES+= timed +.endif + .if ${MK_UNBOUND} != "no" _unbound= local_unbound .endif @@ -245,6 +276,10 @@ _unbound= local_unbound _utx= utx .endif +.if ${MK_VI} != "no" +FILES+= virecover +.endif + .if ${MK_WIRELESS} != "no" FILES+= hostapd FILES+= wpa_supplicant Modified: projects/clang360-import/lib/clang/clang.build.mk ============================================================================== --- projects/clang360-import/lib/clang/clang.build.mk Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/lib/clang/clang.build.mk Thu Feb 5 22:34:29 2015 (r278298) @@ -34,7 +34,8 @@ BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_ CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${TARGET_TRIPLE}\" \ -DLLVM_HOST_TRIPLE=\"${BUILD_TRIPLE}\" \ -DDEFAULT_SYSROOT=\"${TOOLS_PREFIX}\" -CXXFLAGS+= -std=c++11 -stdlib=libc++ -fno-exceptions -fno-rtti +CXXFLAGS+= -std=c++11 -fno-exceptions -fno-rtti +CXXFLAGS.clang+= -stdlib=libc++ .PATH: ${LLVM_SRCS}/${SRCDIR} Modified: projects/clang360-import/lib/csu/powerpc64/Makefile ============================================================================== --- projects/clang360-import/lib/csu/powerpc64/Makefile Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/lib/csu/powerpc64/Makefile Thu Feb 5 22:34:29 2015 (r278298) @@ -9,6 +9,9 @@ CFLAGS+= -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include \ -mlongcall +CC:= gcc +COMPILER_TYPE:= gcc + all: ${OBJS} CLEANFILES= ${OBJS} Modified: projects/clang360-import/release/doc/en_US.ISO8859-1/errata/article.xml ============================================================================== --- projects/clang360-import/release/doc/en_US.ISO8859-1/errata/article.xml Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/release/doc/en_US.ISO8859-1/errata/article.xml Thu Feb 5 22:34:29 2015 (r278298) @@ -4,6 +4,8 @@ %release; + + ]>
$FreeBSD$ - 2014 + 2015 The &os; Documentation Project @@ -76,7 +78,13 @@ Security Advisories - No advisory. + &security; + + + + Errata Notices + + &errata; Modified: projects/clang360-import/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- projects/clang360-import/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/release/doc/en_US.ISO8859-1/relnotes/article.xml Thu Feb 5 22:34:29 2015 (r278298) @@ -7,6 +7,8 @@ %sponsor; %vendor; + + ]>
@@ -138,15 +140,13 @@ Security Advisories - No advisories. - + &security; Errata Notices - No errata notices. - + &errata; Copied: projects/clang360-import/release/doc/share/xml/errata.xml (from r278297, head/release/doc/share/xml/errata.xml) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang360-import/release/doc/share/xml/errata.xml Thu Feb 5 22:34:29 2015 (r278298, copy of r278297, head/release/doc/share/xml/errata.xml) @@ -0,0 +1,28 @@ + + + + + + + + + + Errata + Date + Topic + + + + + + No errata notices. +   +   + + + + Modified: projects/clang360-import/release/doc/share/xml/release.ent ============================================================================== --- projects/clang360-import/release/doc/share/xml/release.ent Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/release/doc/share/xml/release.ent Thu Feb 5 22:34:29 2015 (r278298) @@ -16,7 +16,7 @@ - + @@ -25,7 +25,10 @@ - + + + + @@ -51,7 +54,7 @@ - + Copied: projects/clang360-import/release/doc/share/xml/security.xml (from r278297, head/release/doc/share/xml/security.xml) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang360-import/release/doc/share/xml/security.xml Thu Feb 5 22:34:29 2015 (r278298, copy of r278297, head/release/doc/share/xml/security.xml) @@ -0,0 +1,28 @@ + + + + + + + + + + Advisory + Date + Topic + + + + + + No advisories. +   +   + + + + Modified: projects/clang360-import/sbin/ipfw/ipfw2.c ============================================================================== --- projects/clang360-import/sbin/ipfw/ipfw2.c Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sbin/ipfw/ipfw2.c Thu Feb 5 22:34:29 2015 (r278298) @@ -61,6 +61,7 @@ struct format_opts { int bcwidth; int pcwidth; int show_counters; + int show_time; /* show timestamp */ uint32_t set_mask; /* enabled sets mask */ uint32_t flags; /* request flags */ uint32_t first; /* first rule to request */ @@ -2402,7 +2403,7 @@ list_static_range(struct cmdline_opts *c for (n = seen = 0; n < rcnt; n++, rtlv = (ipfw_obj_tlv *)((caddr_t)rtlv + rtlv->length)) { - if (fo->show_counters != 0) { + if ((fo->show_counters | fo->show_time) != 0) { cntr = (struct ip_fw_bcounter *)(rtlv + 1); r = (struct ip_fw_rule *)((caddr_t)cntr + cntr->size); } else { @@ -2504,10 +2505,11 @@ ipfw_list(int ac, char *av[], int show_c /* get configuraion from kernel */ cfg = NULL; sfo.show_counters = show_counters; + sfo.show_time = co.do_time; sfo.flags = IPFW_CFG_GET_STATIC; if (co.do_dynamic != 0) sfo.flags |= IPFW_CFG_GET_STATES; - if (sfo.show_counters != 0) + if ((sfo.show_counters | sfo.show_time) != 0) sfo.flags |= IPFW_CFG_GET_COUNTERS; if (ipfw_get_config(&co, &sfo, &cfg, &sz) != 0) err(EX_OSERR, "retrieving config failed"); Modified: projects/clang360-import/sys/arm/broadcom/bcm2835/files.bcm2835 ============================================================================== --- projects/clang360-import/sys/arm/broadcom/bcm2835/files.bcm2835 Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/arm/broadcom/bcm2835/files.bcm2835 Thu Feb 5 22:34:29 2015 (r278298) @@ -27,3 +27,23 @@ kern/kern_clocksource.c dev/mbox/mbox_if.m standard dev/ofw/ofw_cpu.c standard + +# VideoCore driver +contrib/vchiq/interface/compat/vchi_bsd.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c standard \ + compile-with "${NORMAL_C} -Wno-unused -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_arm.c standard \ + compile-with "${NORMAL_C} -Wno-unused -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_connected.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_core.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_kern_lib.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_shim.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_util.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" Modified: projects/clang360-import/sys/boot/amd64/efi/main.c ============================================================================== --- projects/clang360-import/sys/boot/amd64/efi/main.c Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/boot/amd64/efi/main.c Thu Feb 5 22:34:29 2015 (r278298) @@ -53,6 +53,10 @@ EFI_GUID imgid = LOADED_IMAGE_PROTOCOL; EFI_GUID mps = MPS_TABLE_GUID; EFI_GUID netid = EFI_SIMPLE_NETWORK_PROTOCOL; EFI_GUID smbios = SMBIOS_TABLE_GUID; +EFI_GUID dxe = DXE_SERVICES_TABLE_GUID; +EFI_GUID hoblist = HOB_LIST_TABLE_GUID; +EFI_GUID memtype = MEMORY_TYPE_INFORMATION_TABLE_GUID; +EFI_GUID debugimg = DEBUG_IMAGE_INFO_TABLE_GUID; EFI_STATUS main(int argc, CHAR16 *argv[]) @@ -264,6 +268,14 @@ command_configuration(int argc, char *ar printf("ACPI 2.0 Table"); else if (!memcmp(guid, &smbios, sizeof(EFI_GUID))) printf("SMBIOS Table"); + else if (!memcmp(guid, &dxe, sizeof(EFI_GUID))) + printf("DXE Table"); + else if (!memcmp(guid, &hoblist, sizeof(EFI_GUID))) + printf("HOB List Table"); + else if (!memcmp(guid, &memtype, sizeof(EFI_GUID))) + printf("Memory Type Information Table"); + else if (!memcmp(guid, &debugimg, sizeof(EFI_GUID))) + printf("Debug Image Info Table"); else printf("Unknown Table (%s)", guid_to_string(guid)); printf(" at %p\n", ST->ConfigurationTable[i].VendorTable); @@ -319,7 +331,7 @@ command_mode(int argc, char *argv[]) } if (i != 0) - printf("Choose the mode with \"col \"\n"); + printf("Choose the mode with \"col \"\n"); return (CMD_OK); } Modified: projects/clang360-import/sys/boot/efi/include/efiapi.h ============================================================================== --- projects/clang360-import/sys/boot/efi/include/efiapi.h Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/boot/efi/include/efiapi.h Thu Feb 5 22:34:29 2015 (r278298) @@ -88,7 +88,7 @@ EFI_STATUS IN VOID *Buffer ); -typedef +typedef EFI_STATUS (EFIAPI *EFI_SET_VIRTUAL_ADDRESS_MAP) ( IN UINTN MemoryMapSize, @@ -103,7 +103,7 @@ EFI_STATUS #define EFI_INTERNAL_PTR 0x00000004 // Pointer to internal runtime data -typedef +typedef EFI_STATUS (EFIAPI *EFI_CONVERT_POINTER) ( IN UINTN DebugDisposition, @@ -168,7 +168,7 @@ EFI_STATUS IN EFI_EVENT Event ); -typedef +typedef EFI_STATUS (EFIAPI *EFI_WAIT_FOR_EVENT) ( IN UINTN NumberOfEvents, @@ -194,8 +194,8 @@ EFI_STATUS #define TPL_APPLICATION 4 #define TPL_CALLBACK 8 -#define TPL_NOTIFY 16 -#define TPL_HIGH_LEVEL 31 +#define TPL_NOTIFY 16 +#define TPL_HIGH_LEVEL 31 typedef EFI_TPL @@ -320,14 +320,14 @@ EFI_STATUS // Image Entry prototype -typedef +typedef EFI_STATUS (EFIAPI *EFI_IMAGE_ENTRY_POINT) ( IN EFI_HANDLE ImageHandle, IN struct _EFI_SYSTEM_TABLE *SystemTable ); -typedef +typedef EFI_STATUS (EFIAPI *EFI_IMAGE_LOAD) ( IN BOOLEAN BootPolicy, @@ -338,7 +338,7 @@ EFI_STATUS OUT EFI_HANDLE *ImageHandle ); -typedef +typedef EFI_STATUS (EFIAPI *EFI_IMAGE_START) ( IN EFI_HANDLE ImageHandle, @@ -355,7 +355,7 @@ EFI_STATUS IN CHAR16 *ExitData OPTIONAL ); -typedef +typedef EFI_STATUS (EFIAPI *EFI_IMAGE_UNLOAD) ( IN EFI_HANDLE ImageHandle @@ -491,7 +491,7 @@ EFI_STATUS ); typedef -EFI_STATUS +EFI_STATUS (EFIAPI *EFI_REGISTER_PROTOCOL_NOTIFY) ( IN EFI_GUID *Protocol, IN EFI_EVENT Event, @@ -535,7 +535,7 @@ EFI_STATUS ); typedef -EFI_STATUS +EFI_STATUS (EFIAPI *EFI_CONNECT_CONTROLLER) ( IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE *DriverImageHandle OPTIONAL, @@ -544,19 +544,19 @@ EFI_STATUS ); typedef -EFI_STATUS +EFI_STATUS (EFIAPI *EFI_DISCONNECT_CONTROLLER)( IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE DriverImageHandle, OPTIONAL IN EFI_HANDLE ChildHandle OPTIONAL - ); + ); -#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001 -#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002 -#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004 -#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008 -#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010 -#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020 +#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001 +#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002 +#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004 +#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008 +#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010 +#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020 typedef EFI_STATUS @@ -804,7 +804,7 @@ typedef struct { // EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle; EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer; - EFI_LOCATE_PROTOCOL LocateProtocol; + EFI_LOCATE_PROTOCOL LocateProtocol; EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces; EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces; @@ -845,6 +845,18 @@ typedef struct { #define FDT_TABLE_GUID \ { 0xb1b621d5, 0xf19c, 0x41a5, 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 } +#define DXE_SERVICES_TABLE_GUID \ + { 0x5ad34ba, 0x6f02, 0x4214, 0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9 } + +#define HOB_LIST_TABLE_GUID \ + { 0x7739f24c, 0x93d7, 0x11d4, 0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } + +#define MEMORY_TYPE_INFORMATION_TABLE_GUID \ + { 0x4c19049f, 0x4137, 0x4dd3, 0x9c, 0x10, 0x8b, 0x97, 0xa8, 0x3f, 0xfd, 0xfa } + +#define DEBUG_IMAGE_INFO_TABLE_GUID \ + { 0x49152e77, 0x1ada, 0x4764, 0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b } + typedef struct _EFI_CONFIGURATION_TABLE { EFI_GUID VendorGuid; VOID *VendorTable; Modified: projects/clang360-import/sys/cam/cam_ccb.h ============================================================================== --- projects/clang360-import/sys/cam/cam_ccb.h Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/cam/cam_ccb.h Thu Feb 5 22:34:29 2015 (r278298) @@ -1147,6 +1147,7 @@ struct ccb_dev_advinfo { #define CDAI_TYPE_SERIAL_NUM 2 #define CDAI_TYPE_PHYS_PATH 3 #define CDAI_TYPE_RCAPLONG 4 +#define CDAI_TYPE_EXT_INQ 5 off_t bufsiz; /* IN: Size of external buffer */ #define CAM_SCSI_DEVID_MAXLEN 65536 /* length in buffer is an uint16_t */ off_t provsiz; /* OUT: Size required/used */ Modified: projects/clang360-import/sys/cam/cam_xpt.c ============================================================================== --- projects/clang360-import/sys/cam/cam_xpt.c Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/cam/cam_xpt.c Thu Feb 5 22:34:29 2015 (r278298) @@ -4795,6 +4795,7 @@ xpt_release_device(struct cam_ed *device */ free(device->supported_vpds, M_CAMXPT); free(device->device_id, M_CAMXPT); + free(device->ext_inq, M_CAMXPT); free(device->physpath, M_CAMXPT); free(device->rcap_buf, M_CAMXPT); free(device->serial_num, M_CAMXPT); Modified: projects/clang360-import/sys/cam/cam_xpt_internal.h ============================================================================== --- projects/clang360-import/sys/cam/cam_xpt_internal.h Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/cam/cam_xpt_internal.h Thu Feb 5 22:34:29 2015 (r278298) @@ -83,6 +83,8 @@ struct cam_ed { uint8_t supported_vpds_len; uint32_t device_id_len; uint8_t *device_id; + uint32_t ext_inq_len; + uint8_t *ext_inq; uint8_t physpath_len; uint8_t *physpath; /* physical path string form */ uint32_t rcap_len; Modified: projects/clang360-import/sys/cam/scsi/scsi_xpt.c ============================================================================== --- projects/clang360-import/sys/cam/scsi/scsi_xpt.c Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/cam/scsi/scsi_xpt.c Thu Feb 5 22:34:29 2015 (r278298) @@ -139,6 +139,7 @@ typedef enum { PROBE_MODE_SENSE, PROBE_SUPPORTED_VPD_LIST, PROBE_DEVICE_ID, + PROBE_EXTENDED_INQUIRY, PROBE_SERIAL_NUM, PROBE_TUR_FOR_NEGOTIATION, PROBE_INQUIRY_BASIC_DV1, @@ -156,6 +157,7 @@ static char *probe_action_text[] = { "PROBE_MODE_SENSE", "PROBE_SUPPORTED_VPD_LIST", "PROBE_DEVICE_ID", + "PROBE_EXTENDED_INQUIRY", "PROBE_SERIAL_NUM", "PROBE_TUR_FOR_NEGOTIATION", "PROBE_INQUIRY_BASIC_DV1", @@ -923,6 +925,34 @@ done: } goto done; } + case PROBE_EXTENDED_INQUIRY: + { + struct scsi_vpd_extended_inquiry_data *ext_inq; + + ext_inq = NULL; + if (scsi_vpd_supported_page(periph, SVPD_EXTENDED_INQUIRY_DATA)) + ext_inq = malloc(sizeof(*ext_inq), M_CAMXPT, + M_NOWAIT | M_ZERO); + + if (ext_inq != NULL) { + scsi_inquiry(csio, + /*retries*/4, + probedone, + MSG_SIMPLE_Q_TAG, + (uint8_t *)ext_inq, + sizeof(*ext_inq), + /*evpd*/TRUE, + SVPD_EXTENDED_INQUIRY_DATA, + SSD_MIN_SIZE, + /*timeout*/60 * 1000); + break; + } + /* + * We'll have to do without, let our probedone + * routine finish up for us. + */ + goto done; + } case PROBE_SERIAL_NUM: { struct scsi_vpd_unit_serial_number *serial_buf; @@ -1454,6 +1484,50 @@ out: if (devid && length == 0) free(devid, M_CAMXPT); xpt_release_ccb(done_ccb); + PROBE_SET_ACTION(softc, PROBE_EXTENDED_INQUIRY); + xpt_schedule(periph, priority); + goto out; + } + case PROBE_EXTENDED_INQUIRY: { + struct scsi_vpd_extended_inquiry_data *ext_inq; + struct ccb_scsiio *csio; + int32_t length = 0; + + csio = &done_ccb->csio; + ext_inq = (struct scsi_vpd_extended_inquiry_data *) + csio->data_ptr; + if (path->device->ext_inq != NULL) { + path->device->ext_inq_len = 0; + free(path->device->ext_inq, M_CAMXPT); + path->device->ext_inq = NULL; + } + + if (ext_inq == NULL) { + /* Don't process the command as it was never sent */ + } else if (CCB_COMPLETED_OK(csio->ccb_h)) { + length = scsi_2btoul(ext_inq->page_length) + + __offsetof(struct scsi_vpd_extended_inquiry_data, + flags1); + length = min(length, sizeof(*ext_inq)); + length -= csio->resid; + if (length > 0) { + path->device->ext_inq_len = length; + path->device->ext_inq = (uint8_t *)ext_inq; + } + } else if (cam_periph_error(done_ccb, 0, + SF_RETRY_UA, + &softc->saved_ccb) == ERESTART) { + return; + } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { + /* Don't wedge the queue */ + xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, + /*run_queue*/TRUE); + } + + /* Free the device id space if we don't use it */ + if (ext_inq && length <= 0) + free(ext_inq, M_CAMXPT); + xpt_release_ccb(done_ccb); PROBE_SET_ACTION(softc, PROBE_SERIAL_NUM); xpt_schedule(periph, priority); goto out; @@ -2477,6 +2551,21 @@ scsi_dev_advinfo(union ccb *start_ccb) memcpy(cdai->buf, device->rcap_buf, amt); } break; + case CDAI_TYPE_EXT_INQ: + /* + * We fetch extended inquiry data during probe, if + * available. We don't allow changing it. + */ + if (cdai->flags & CDAI_FLAG_STORE) + return; + cdai->provsiz = device->ext_inq_len; + if (device->ext_inq_len == 0) + break; + amt = device->ext_inq_len; + if (cdai->provsiz > cdai->bufsiz) + amt = cdai->bufsiz; + memcpy(cdai->buf, device->ext_inq, amt); + break; default: return; } Modified: projects/clang360-import/sys/conf/kern.mk ============================================================================== --- projects/clang360-import/sys/conf/kern.mk Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/conf/kern.mk Thu Feb 5 22:34:29 2015 (r278298) @@ -160,6 +160,14 @@ INLINE_LIMIT?= 8000 CFLAGS+= -ffreestanding # +# The C standard leaves signed integer overflow behavior undefined. +# gcc and clang opimizers take advantage of this. The kernel makes +# use of signed integer wraparound mechanics so we need the compiler +# to treat it as a wraparound and not take shortcuts. +# +CFLAGS+= -fwrapv + +# # GCC SSP support # .if ${MK_SSP} != "no" && \ Modified: projects/clang360-import/sys/conf/kern.pre.mk ============================================================================== --- projects/clang360-import/sys/conf/kern.pre.mk Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/conf/kern.pre.mk Thu Feb 5 22:34:29 2015 (r278298) @@ -79,6 +79,9 @@ INCLUDES+= -I$S/dev/ath -I$S/dev/ath/ath # ... and the same for the NgATM stuff INCLUDES+= -I$S/contrib/ngatm +# ... and the same for vchiq +INCLUDES+= -I$S/contrib/vchiq + # ... and the same for twa INCLUDES+= -I$S/dev/twa Modified: projects/clang360-import/sys/conf/options ============================================================================== --- projects/clang360-import/sys/conf/options Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/conf/options Thu Feb 5 22:34:29 2015 (r278298) @@ -129,6 +129,7 @@ GEOM_SHSEC opt_geom.h GEOM_STRIPE opt_geom.h GEOM_SUNLABEL opt_geom.h GEOM_UNCOMPRESS opt_geom.h +GEOM_UNCOMPRESS_DEBUG opt_geom.h GEOM_UZIP opt_geom.h GEOM_VINUM opt_geom.h GEOM_VIRSTOR opt_geom.h @@ -209,7 +210,7 @@ SW_WATCHDOG opt_watchdog.h TURNSTILE_PROFILING UMTX_PROFILING VFS_AIO -VERBOSE_SYSINIT opt_global.h +VERBOSE_SYSINIT WLCACHE opt_wavelan.h WLDEBUG opt_wavelan.h Modified: projects/clang360-import/sys/dev/cxgbe/offload.h ============================================================================== --- projects/clang360-import/sys/dev/cxgbe/offload.h Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/dev/cxgbe/offload.h Thu Feb 5 22:34:29 2015 (r278298) @@ -129,6 +129,7 @@ struct t4_virt_res { enum { ULD_TOM = 1, ULD_IWARP = 2, + ULD_ISCSI = 3, }; struct adapter; Modified: projects/clang360-import/sys/dev/iscsi/icl.h ============================================================================== --- projects/clang360-import/sys/dev/iscsi/icl.h Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/dev/iscsi/icl.h Thu Feb 5 22:34:29 2015 (r278298) @@ -113,6 +113,7 @@ struct icl_conn { bool ic_disconnecting; bool ic_iser; const char *ic_name; + const char *ic_offload; void (*ic_receive)(struct icl_pdu *); void (*ic_error)(struct icl_conn *); Modified: projects/clang360-import/sys/dev/iscsi/icl_soft.c ============================================================================== --- projects/clang360-import/sys/dev/iscsi/icl_soft.c Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/dev/iscsi/icl_soft.c Thu Feb 5 22:34:29 2015 (r278298) @@ -1185,6 +1185,7 @@ icl_soft_new_conn(const char *name, stru #endif ic->ic_max_data_segment_length = ICL_MAX_DATA_SEGMENT_LENGTH; ic->ic_name = name; + ic->ic_offload = "none"; return (ic); } Modified: projects/clang360-import/sys/dev/iscsi/iscsi.c ============================================================================== --- projects/clang360-import/sys/dev/iscsi/iscsi.c Thu Feb 5 22:28:00 2015 (r278297) +++ projects/clang360-import/sys/dev/iscsi/iscsi.c Thu Feb 5 22:34:29 2015 (r278298) @@ -421,6 +421,7 @@ iscsi_maintenance_thread_terminate(struc sx_xunlock(&sc->sc_lock); icl_conn_close(is->is_conn); + callout_drain(&is->is_callout); ISCSI_SESSION_LOCK(is); @@ -434,8 +435,6 @@ iscsi_maintenance_thread_terminate(struc cv_signal(&is->is_login_cv); #endif - callout_drain(&is->is_callout); - iscsi_session_cleanup(is, true); KASSERT(TAILQ_EMPTY(&is->is_outstanding), @@ -511,6 +510,7 @@ iscsi_session_reconnect(struct iscsi_ses static void iscsi_session_terminate(struct iscsi_session *is) { + if (is->is_terminating) return; @@ -532,12 +532,14 @@ iscsi_callout(void *context) is = context; - if (is->is_terminating) + ISCSI_SESSION_LOCK(is); + if (is->is_terminating) { + ISCSI_SESSION_UNLOCK(is); return; + } callout_schedule(&is->is_callout, 1 * hz); - ISCSI_SESSION_LOCK(is); is->is_timeout++; if (is->is_waiting_for_iscsid) { @@ -1306,6 +1308,16 @@ iscsi_ioctl_daemon_wait(struct iscsi_sof request->idr_tsih = 0; /* New or reinstated session. */ memcpy(&request->idr_conf, &is->is_conf, sizeof(request->idr_conf)); + + error = icl_limits(is->is_conf.isc_offload, + &request->idr_limits.isl_max_data_segment_length); + if (error != 0) { + ISCSI_SESSION_WARN(is, "icl_limits for offload \"%s\" " + "failed with error %d", is->is_conf.isc_offload, + error); + sx_sunlock(&sc->sc_lock); + return (error); + } sx_sunlock(&sc->sc_lock); return (0); @@ -1731,7 +1743,13 @@ iscsi_ioctl_session_add(struct iscsi_sof return (EBUSY); } - is->is_conn = icl_new_conn(NULL, "iscsi", &is->is_lock); + is->is_conn = icl_new_conn(is->is_conf.isc_offload, + "iscsi", &is->is_lock); + if (is->is_conn == NULL) { + sx_xunlock(&sc->sc_lock); + free(is, M_ISCSI); + return (EINVAL); + } is->is_conn->ic_receive = iscsi_receive_callback; is->is_conn->ic_error = iscsi_error_callback; is->is_conn->ic_prv0 = is; @@ -1750,15 +1768,17 @@ iscsi_ioctl_session_add(struct iscsi_sof arc4rand(&is->is_isid[1], 5, 0); is->is_tsih = 0; callout_init(&is->is_callout, 1); - callout_reset(&is->is_callout, 1 * hz, iscsi_callout, is); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri Feb 6 10:11:06 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D705D95D; Fri, 6 Feb 2015 10:11:06 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF0837CB; Fri, 6 Feb 2015 10:11:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t16AB6OS020776; Fri, 6 Feb 2015 10:11:06 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t16AAvnA020684; Fri, 6 Feb 2015 10:10:57 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201502061010.t16AAvnA020684@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 6 Feb 2015 10:10:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278312 - in projects/building-blocks: etc/rc.d lib/csu/powerpc64 lib/libc/gen lib/libc/stdlib lib/libdevinfo lib/libnetgraph release/doc/en_US.ISO8859-1/errata release/doc/en_US.ISO885... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2015 10:11:07 -0000 Author: ngie Date: Fri Feb 6 10:10:57 2015 New Revision: 278312 URL: https://svnweb.freebsd.org/changeset/base/278312 Log: MFhead @r278311 Added: projects/building-blocks/release/doc/share/xml/errata.xml - copied unchanged from r278311, head/release/doc/share/xml/errata.xml projects/building-blocks/release/doc/share/xml/security.xml - copied unchanged from r278311, head/release/doc/share/xml/security.xml projects/building-blocks/sys/contrib/vchiq/ - copied from r278311, head/sys/contrib/vchiq/ projects/building-blocks/sys/dev/cxgbe/if_cxl.c - copied unchanged from r278311, head/sys/dev/cxgbe/if_cxl.c projects/building-blocks/sys/modules/cxgbe/if_cxl/ - copied from r278311, head/sys/modules/cxgbe/if_cxl/ projects/building-blocks/tools/tools/qrndtest/ - copied from r278311, head/tools/tools/qrndtest/ Modified: projects/building-blocks/etc/rc.d/routing projects/building-blocks/lib/csu/powerpc64/Makefile projects/building-blocks/lib/libc/gen/disklabel.c projects/building-blocks/lib/libc/stdlib/tdelete.c projects/building-blocks/lib/libdevinfo/devinfo.h projects/building-blocks/lib/libnetgraph/debug.c projects/building-blocks/release/doc/en_US.ISO8859-1/errata/article.xml projects/building-blocks/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/building-blocks/release/doc/share/xml/release.ent projects/building-blocks/sbin/ipfw/ipfw2.c projects/building-blocks/sys/arm/broadcom/bcm2835/files.bcm2835 projects/building-blocks/sys/boot/amd64/boot1.efi/fat.tmpl.bz2.uu projects/building-blocks/sys/boot/amd64/boot1.efi/generate-fat.sh projects/building-blocks/sys/conf/kern.pre.mk projects/building-blocks/sys/dev/uart/uart_bus_pci.c projects/building-blocks/sys/dev/vt/hw/vga/vt_vga.c projects/building-blocks/sys/kern/subr_bus.c projects/building-blocks/sys/modules/cxgbe/Makefile projects/building-blocks/sys/netinet6/in6.c projects/building-blocks/sys/netpfil/ipfw/ip_fw_iface.c (contents, props changed) projects/building-blocks/sys/netpfil/ipfw/ip_fw_nat.c projects/building-blocks/sys/netpfil/ipfw/ip_fw_private.h projects/building-blocks/sys/netpfil/ipfw/ip_fw_table.c projects/building-blocks/sys/netpfil/ipfw/ip_fw_table_algo.c projects/building-blocks/sys/sys/bus.h projects/building-blocks/sys/sys/systm.h projects/building-blocks/sys/ufs/ffs/ffs_softdep.c projects/building-blocks/usr.sbin/devinfo/devinfo.c projects/building-blocks/usr.sbin/syslogd/syslogd.c Directory Properties: projects/building-blocks/ (props changed) projects/building-blocks/etc/ (props changed) projects/building-blocks/lib/libc/ (props changed) projects/building-blocks/sbin/ (props changed) projects/building-blocks/sbin/ipfw/ (props changed) projects/building-blocks/sys/ (props changed) projects/building-blocks/sys/boot/ (props changed) projects/building-blocks/sys/conf/ (props changed) Modified: projects/building-blocks/etc/rc.d/routing ============================================================================== --- projects/building-blocks/etc/rc.d/routing Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/etc/rc.d/routing Fri Feb 6 10:10:57 2015 (r278312) @@ -165,13 +165,14 @@ static_inet() static_inet6() { - local _action _if _skip fibmod fibs + local _action _if _skip fibmod fibs allfibs _action=$1 _if=$2 # get the number of FIBs supported. fibs=$((`${SYSCTL_N} net.fibs` - 1)) - if [ "$fibs" -gt 0 ]; then + allfibs=`${SYSCTL_N} net.add_addr_allfibs` + if [ "$fibs" -gt 0 ] && [ "$allfibs" -ne 0 ]; then fibmod="-fib 0-$fibs" else fibmod= Modified: projects/building-blocks/lib/csu/powerpc64/Makefile ============================================================================== --- projects/building-blocks/lib/csu/powerpc64/Makefile Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/lib/csu/powerpc64/Makefile Fri Feb 6 10:10:57 2015 (r278312) @@ -9,6 +9,10 @@ CFLAGS+= -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include \ -mlongcall +# XXX: See the log for r232932 as to why the above -mlongcall is needed. Since +# clang doesn't support -mlongcall, and testing shows a clang linked with a +# clang-built csu segfaults, this must currently be compiled with gcc. Once +# clang supports -mlongcall, or we get a fixed ld, this can be revisited. CC:= gcc COMPILER_TYPE:= gcc Modified: projects/building-blocks/lib/libc/gen/disklabel.c ============================================================================== --- projects/building-blocks/lib/libc/gen/disklabel.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/lib/libc/gen/disklabel.c Fri Feb 6 10:10:57 2015 (r278312) @@ -85,10 +85,13 @@ getdiskbyname(const char *name) cq++, cp++; *cq = '\0'; - if (cgetstr(buf, "ty", &cq) > 0 && strcmp(cq, "removable") == 0) - dp->d_flags |= D_REMOVABLE; - else if (cq && strcmp(cq, "simulated") == 0) - dp->d_flags |= D_RAMDISK; + if (cgetstr(buf, "ty", &cq) > 0) { + if (strcmp(cq, "removable") == 0) + dp->d_flags |= D_REMOVABLE; + else if (cq && strcmp(cq, "simulated") == 0) + dp->d_flags |= D_RAMDISK; + free(cq); + } if (cgetcap(buf, "sf", ':') != NULL) dp->d_flags |= D_BADSECT; @@ -100,9 +103,10 @@ getdiskbyname(const char *name) getnumdflt(dp->d_nsectors, "ns", 0); getnumdflt(dp->d_ncylinders, "nc", 0); - if (cgetstr(buf, "dt", &cq) > 0) + if (cgetstr(buf, "dt", &cq) > 0) { dp->d_type = gettype(cq, dktypenames); - else + free(cq); + } else getnumdflt(dp->d_type, "dt", 0); getnumdflt(dp->d_secpercyl, "sc", dp->d_nsectors * dp->d_ntracks); getnumdflt(dp->d_secperunit, "su", dp->d_secpercyl * dp->d_ncylinders); @@ -140,8 +144,11 @@ getdiskbyname(const char *name) pp->p_frag = 8; } getnumdflt(pp->p_fstype, ptype, 0); - if (pp->p_fstype == 0 && cgetstr(buf, ptype, &cq) > 0) - pp->p_fstype = gettype(cq, fstypenames); + if (pp->p_fstype == 0) + if (cgetstr(buf, ptype, &cq) >= 0) { + pp->p_fstype = gettype(cq, fstypenames); + free(cq); + } max = p; } } @@ -155,5 +162,6 @@ getdiskbyname(const char *name) dp->d_magic = DISKMAGIC; dp->d_magic2 = DISKMAGIC; free(buf); + (void)cgetclose(); return (dp); } Modified: projects/building-blocks/lib/libc/stdlib/tdelete.c ============================================================================== --- projects/building-blocks/lib/libc/stdlib/tdelete.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/lib/libc/stdlib/tdelete.c Fri Feb 6 10:10:57 2015 (r278312) @@ -65,7 +65,8 @@ tdelete(const void * __restrict vkey, vo q->rlink = (*rootp)->rlink; } } - free(*rootp); /* D4: Free node */ + if (p != *rootp) + free(*rootp); /* D4: Free node */ *rootp = q; /* link parent to new node */ return p; } Modified: projects/building-blocks/lib/libdevinfo/devinfo.h ============================================================================== --- projects/building-blocks/lib/libdevinfo/devinfo.h Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/lib/libdevinfo/devinfo.h Fri Feb 6 10:10:57 2015 (r278312) @@ -50,7 +50,7 @@ struct devinfo_dev { char *dd_location; /* Where bus thinks dev at */ uint32_t dd_devflags; /* API flags */ uint16_t dd_flags; /* internal dev flags */ - devinfo_state_t dd_state; /* attacement state of dev */ + devinfo_state_t dd_state; /* attachment state of dev */ }; struct devinfo_rman { Modified: projects/building-blocks/lib/libnetgraph/debug.c ============================================================================== --- projects/building-blocks/lib/libnetgraph/debug.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/lib/libnetgraph/debug.c Fri Feb 6 10:10:57 2015 (r278312) @@ -62,12 +62,15 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include #include #include #include +#include #include #include #include @@ -81,15 +84,20 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include +#include #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -129,12 +137,15 @@ static const struct ng_cookie cookies[] COOKIE(ATMLLC), COOKIE(BPF), COOKIE(BRIDGE), + COOKIE(CAR), COOKIE(CISCO), + COOKIE(DEFLATE), COOKIE(DEVICE), COOKIE(ECHO), COOKIE(EIFACE), COOKIE(ETF), COOKIE(ETHER), + COOKIE(ETHER_ECHO), COOKIE(FRAMERELAY), COOKIE(GIF), COOKIE(GIF_DEMUX), @@ -149,15 +160,20 @@ static const struct ng_cookie cookies[] COOKIE(LMI), COOKIE(MPPC), COOKIE(NAT), + COOKIE(NETFLOW), COOKIE(ONE2MANY), + COOKIE(PATCH), + COOKIE(PIPE), COOKIE(PPP), COOKIE(PPPOE), COOKIE(PPTPGRE), + COOKIE(PRED1), COOKIE(RFC1490), COOKIE(SOCKET), COOKIE(SOURCE), COOKIE(SPLIT), COOKIE(SPPP), + COOKIE(TAG), COOKIE(TCPMSS), COOKIE(TEE), COOKIE(TTY), @@ -181,9 +197,8 @@ NgSetDebug(int level) { int old = _gNgDebugLevel; - if (level < 0) - level = old; - _gNgDebugLevel = level; + if (level >= 0) + _gNgDebugLevel = level; return (old); } @@ -225,10 +240,10 @@ _NgDebugMsg(const struct ng_mesg *msg, c /* Display header stuff */ NGLOGX("NG_MESG :"); NGLOGX(" vers %d", msg->header.version); - NGLOGX(" arglen %d", msg->header.arglen); - NGLOGX(" flags %ld", msg->header.flags); - NGLOGX(" token %lu", (u_long)msg->header.token); - NGLOGX(" cookie %s (%d)", + NGLOGX(" arglen %u", msg->header.arglen); + NGLOGX(" flags %x", msg->header.flags); + NGLOGX(" token %u", msg->header.token); + NGLOGX(" cookie %s (%u)", NgCookie(msg->header.typecookie), msg->header.typecookie); /* At lower debugging levels, skip ASCII translation */ Modified: projects/building-blocks/release/doc/en_US.ISO8859-1/errata/article.xml ============================================================================== --- projects/building-blocks/release/doc/en_US.ISO8859-1/errata/article.xml Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/release/doc/en_US.ISO8859-1/errata/article.xml Fri Feb 6 10:10:57 2015 (r278312) @@ -4,6 +4,8 @@ %release; + + ]>
$FreeBSD$ - 2014 + 2015 The &os; Documentation Project @@ -76,7 +78,13 @@ Security Advisories - No advisory. + &security; + + + + Errata Notices + + &errata; Modified: projects/building-blocks/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- projects/building-blocks/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/release/doc/en_US.ISO8859-1/relnotes/article.xml Fri Feb 6 10:10:57 2015 (r278312) @@ -7,6 +7,8 @@ %sponsor; %vendor; + + ]>
@@ -138,15 +140,13 @@ Security Advisories - No advisories. - + &security; Errata Notices - No errata notices. - + &errata; Copied: projects/building-blocks/release/doc/share/xml/errata.xml (from r278311, head/release/doc/share/xml/errata.xml) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/building-blocks/release/doc/share/xml/errata.xml Fri Feb 6 10:10:57 2015 (r278312, copy of r278311, head/release/doc/share/xml/errata.xml) @@ -0,0 +1,28 @@ + + + + + + + + + + Errata + Date + Topic + + + + + + No errata notices. +   +   + + + + Modified: projects/building-blocks/release/doc/share/xml/release.ent ============================================================================== --- projects/building-blocks/release/doc/share/xml/release.ent Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/release/doc/share/xml/release.ent Fri Feb 6 10:10:57 2015 (r278312) @@ -16,7 +16,7 @@ - + @@ -25,7 +25,10 @@ - + + + + @@ -51,7 +54,7 @@ - + Copied: projects/building-blocks/release/doc/share/xml/security.xml (from r278311, head/release/doc/share/xml/security.xml) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/building-blocks/release/doc/share/xml/security.xml Fri Feb 6 10:10:57 2015 (r278312, copy of r278311, head/release/doc/share/xml/security.xml) @@ -0,0 +1,28 @@ + + + + + + + + + + Advisory + Date + Topic + + + + + + No advisories. +   +   + + + + Modified: projects/building-blocks/sbin/ipfw/ipfw2.c ============================================================================== --- projects/building-blocks/sbin/ipfw/ipfw2.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sbin/ipfw/ipfw2.c Fri Feb 6 10:10:57 2015 (r278312) @@ -61,6 +61,7 @@ struct format_opts { int bcwidth; int pcwidth; int show_counters; + int show_time; /* show timestamp */ uint32_t set_mask; /* enabled sets mask */ uint32_t flags; /* request flags */ uint32_t first; /* first rule to request */ @@ -2402,7 +2403,7 @@ list_static_range(struct cmdline_opts *c for (n = seen = 0; n < rcnt; n++, rtlv = (ipfw_obj_tlv *)((caddr_t)rtlv + rtlv->length)) { - if (fo->show_counters != 0) { + if ((fo->show_counters | fo->show_time) != 0) { cntr = (struct ip_fw_bcounter *)(rtlv + 1); r = (struct ip_fw_rule *)((caddr_t)cntr + cntr->size); } else { @@ -2504,10 +2505,11 @@ ipfw_list(int ac, char *av[], int show_c /* get configuraion from kernel */ cfg = NULL; sfo.show_counters = show_counters; + sfo.show_time = co.do_time; sfo.flags = IPFW_CFG_GET_STATIC; if (co.do_dynamic != 0) sfo.flags |= IPFW_CFG_GET_STATES; - if (sfo.show_counters != 0) + if ((sfo.show_counters | sfo.show_time) != 0) sfo.flags |= IPFW_CFG_GET_COUNTERS; if (ipfw_get_config(&co, &sfo, &cfg, &sz) != 0) err(EX_OSERR, "retrieving config failed"); Modified: projects/building-blocks/sys/arm/broadcom/bcm2835/files.bcm2835 ============================================================================== --- projects/building-blocks/sys/arm/broadcom/bcm2835/files.bcm2835 Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/arm/broadcom/bcm2835/files.bcm2835 Fri Feb 6 10:10:57 2015 (r278312) @@ -27,3 +27,23 @@ kern/kern_clocksource.c dev/mbox/mbox_if.m standard dev/ofw/ofw_cpu.c standard + +# VideoCore driver +contrib/vchiq/interface/compat/vchi_bsd.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c standard \ + compile-with "${NORMAL_C} -Wno-unused -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_arm.c standard \ + compile-with "${NORMAL_C} -Wno-unused -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_connected.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_core.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_kern_lib.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_shim.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" +contrib/vchiq/interface/vchiq_arm/vchiq_util.c standard \ + compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" Modified: projects/building-blocks/sys/boot/amd64/boot1.efi/fat.tmpl.bz2.uu ============================================================================== --- projects/building-blocks/sys/boot/amd64/boot1.efi/fat.tmpl.bz2.uu Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/boot/amd64/boot1.efi/fat.tmpl.bz2.uu Fri Feb 6 10:10:57 2015 (r278312) @@ -2,20 +2,19 @@ FAT template boot filesystem created by DO NOT EDIT $FreeBSD$ begin 644 fat.tmpl.bz2 -M0EIH.3%!62936=AO?&0`&J9____[ZZKJJ_^N_ZO^Z_^[OO_\`5`(0!0&#$D" -M0$)$2&(H:`81HT#)D!H-#U`T#31IH-&(``R8$9_I)6[MY/, -M(H=/()+4&!(3V0"20C3J5$L5@2`219,"T6JI,@0"2*2\=LAD6=>N6(8QSW'U+N42P^'5X@7X``23=EA``#Z,O)^-VTX@ -M`+E!=,&6PV11C:*D8K#^<%FTG-%!@PR72@\ZU0BF1Y] -MF-FPGL2L>4QCU&O/>89^#H$6^<;&WKC9W52KUX."CM6+GD;(=1!MUD,,?Y[] -MTLAG0];,:B^]M%BH0J1":_C-*2I9R3AS#,&0>$RCY'T/R?HR!?'5$MILQ:!" -M+;10A*!&^<(_/8>D8I-DTU,)ZAZ0VA-!M0T'J`>H#"9 +M'I#0-H&HQI&0&3&FH>H>*`JHHU3V]1%/4/2``T#0`!H``#0`````#1H,@``6 +M'1&G'&@?$6[T#A)?X8$A160"20BO#")0J4TB1*4GXF$B4I,&>43+=_?K=#3* +M6]R"ZNKJZI,9*68E8*E2Q +M4J5*E3'(1830A"$(12A-"<(0A#]VD)H0A"$,>I0FA"$(0I\>P^=F5:M6K5JU +M:DI3:64UN;[7%5B]Y-^\]@_K@B:N\/,5F%&H<\G#IXQXAEFC&D?![6%0'6MR +MX1@@%FC"FD`M7,/SXFNG:2`'-0<-C$8^+$N.7M1B,^6)9,DV9,0A\OL<:C"L +ML1V&,<\9YRB>XV#BG")'6NKRK^("UF2XO?_L!#29">MGDF$R3).!PX&%E,4C +M''=(FL1.`_3?CN@-IB2PI3!FF\<8X.X@D,>CA90I)#M$XRPNDFJELL<3=1?8 +M2B7\5Z64,!7Z;EEBW-MXN-4IJ@W$462]-*\YCR,-B,5[W?=3&L/U>SX,WV#\ +M\B`:I"'0Z)5"$1B.E)(K[5I4RS`%R$>Y\D0NR*,;<9CZ:^V3P(I?D + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +static int +mod_event(module_t mod, int cmd, void *arg) +{ + + return (0); +} +static moduledata_t if_cxl_mod = {"if_cxl", mod_event}; +DECLARE_MODULE(if_cxl, if_cxl_mod, SI_SUB_EXEC, SI_ORDER_ANY); +MODULE_VERSION(if_cxl, 1); +MODULE_DEPEND(if_cxl, cxl, 1, 1, 1); Modified: projects/building-blocks/sys/dev/uart/uart_bus_pci.c ============================================================================== --- projects/building-blocks/sys/dev/uart/uart_bus_pci.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/dev/uart/uart_bus_pci.c Fri Feb 6 10:10:57 2015 (r278312) @@ -121,6 +121,7 @@ static const struct pci_id pci_ns8250_id { 0x8086, 0x1c3d, 0xffff, 0, "Intel AMT - KT Controller", 0x10 }, { 0x8086, 0x1d3d, 0xffff, 0, "Intel C600/X79 Series Chipset KT Controller", 0x10 }, { 0x8086, 0x2a07, 0xffff, 0, "Intel AMT - PM965/GM965 KT Controller", 0x10 }, +{ 0x8086, 0x2a47, 0xffff, 0, "Mobile 4 Series Chipset KT Controller", 0x10 }, { 0x8086, 0x2e17, 0xffff, 0, "4 Series Chipset Serial KT Controller", 0x10 }, { 0x8086, 0x3b67, 0xffff, 0, "5 Series/3400 Series Chipset KT Controller", 0x10 }, Modified: projects/building-blocks/sys/dev/vt/hw/vga/vt_vga.c ============================================================================== --- projects/building-blocks/sys/dev/vt/hw/vga/vt_vga.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/dev/vt/hw/vga/vt_vga.c Fri Feb 6 10:10:57 2015 (r278312) @@ -1263,7 +1263,8 @@ static int vtvga_probe(device_t dev) { - device_set_desc(dev, "vt_vga driver"); + device_set_desc(dev, "VT VGA driver"); + return (BUS_PROBE_NOWILDCARD); } Modified: projects/building-blocks/sys/kern/subr_bus.c ============================================================================== --- projects/building-blocks/sys/kern/subr_bus.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/kern/subr_bus.c Fri Feb 6 10:10:57 2015 (r278312) @@ -128,15 +128,6 @@ struct device { device_state_t state; /**< current device state */ uint32_t devflags; /**< api level flags for device_get_flags() */ u_int flags; /**< internal device flags */ -#define DF_ENABLED 0x01 /* device should be probed/attached */ -#define DF_FIXEDCLASS 0x02 /* devclass specified at create time */ -#define DF_WILDCARD 0x04 /* unit was originally wildcard */ -#define DF_DESCMALLOCED 0x08 /* description was malloced */ -#define DF_QUIET 0x10 /* don't print verbose attach message */ -#define DF_DONENOMATCH 0x20 /* don't execute DEVICE_NOMATCH again */ -#define DF_EXTERNALSOFTC 0x40 /* softc not allocated by us */ -#define DF_REBID 0x80 /* Can rebid after attach */ -#define DF_SUSPENDED 0x100 /* Device is suspended. */ u_int order; /**< order from device_add_child_ordered() */ void *ivars; /**< instance variables */ void *softc; /**< current driver's variables */ @@ -3653,7 +3644,7 @@ bus_generic_suspend_child(device_t dev, error = DEVICE_SUSPEND(child); if (error == 0) - dev->flags |= DF_SUSPENDED; + child->flags |= DF_SUSPENDED; return (error); } @@ -3668,7 +3659,7 @@ bus_generic_resume_child(device_t dev, d { DEVICE_RESUME(child); - dev->flags &= ~DF_SUSPENDED; + child->flags &= ~DF_SUSPENDED; return (0); } Modified: projects/building-blocks/sys/modules/cxgbe/Makefile ============================================================================== --- projects/building-blocks/sys/modules/cxgbe/Makefile Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/modules/cxgbe/Makefile Fri Feb 6 10:10:57 2015 (r278312) @@ -6,6 +6,7 @@ SYSDIR?=${.CURDIR}/../.. .include "${SYSDIR}/conf/kern.opts.mk" SUBDIR= if_cxgbe +SUBDIR+= if_cxl SUBDIR+= t4_firmware SUBDIR+= t5_firmware SUBDIR+= ${_tom} Modified: projects/building-blocks/sys/netinet6/in6.c ============================================================================== --- projects/building-blocks/sys/netinet6/in6.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/netinet6/in6.c Fri Feb 6 10:10:57 2015 (r278312) @@ -1333,6 +1333,7 @@ in6_purgeaddr(struct ifaddr *ifa) static void in6_unlink_ifa(struct in6_ifaddr *ia, struct ifnet *ifp) { + char ip6buf[INET6_ADDRSTRLEN]; IF_ADDR_WLOCK(ifp); TAILQ_REMOVE(&ifp->if_addrhead, &ia->ia_ifa, ifa_link); @@ -1356,7 +1357,7 @@ in6_unlink_ifa(struct in6_ifaddr *ia, st if (ia->ia6_ndpr == NULL) { nd6log((LOG_NOTICE, "in6_unlink_ifa: autoconf'ed address " - "%p has no prefix\n", ia)); + "%s has no prefix\n", ip6_sprintf(ip6buf, IA6_IN6(ia)))); } else { ia->ia6_ndpr->ndpr_refcnt--; ia->ia6_ndpr = NULL; Modified: projects/building-blocks/sys/netpfil/ipfw/ip_fw_iface.c ============================================================================== --- projects/building-blocks/sys/netpfil/ipfw/ip_fw_iface.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/netpfil/ipfw/ip_fw_iface.c Fri Feb 6 10:10:57 2015 (r278312) @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: projects/ipfw/sys/netpfil/ipfw/ip_fw_iface.c 267384 2014-06-12 09:59:11Z melifaro $"); +__FBSDID("$FreeBSD$"); /* * Kernel interface tracking API. @@ -397,20 +397,20 @@ ipfw_iface_del_notify(struct ip_fw_chain /* * Unreference interface specified by @ic. - * Must be called without holding any locks. + * Must be called while holding UH lock. */ void ipfw_iface_unref(struct ip_fw_chain *ch, struct ipfw_ifc *ic) { struct ipfw_iface *iif; + IPFW_UH_WLOCK_ASSERT(ch); + iif = ic->iface; ic->iface = NULL; - IPFW_UH_WLOCK(ch); iif->no.refcnt--; /* TODO: check for references & delete */ - IPFW_UH_WUNLOCK(ch); } /* Modified: projects/building-blocks/sys/netpfil/ipfw/ip_fw_nat.c ============================================================================== --- projects/building-blocks/sys/netpfil/ipfw/ip_fw_nat.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/netpfil/ipfw/ip_fw_nat.c Fri Feb 6 10:10:57 2015 (r278312) @@ -691,7 +691,7 @@ nat44_get_cfg(struct ip_fw_chain *chain, export_nat_cfg(ptr, ucfg); /* Estimate memory amount */ - sz = sizeof(struct nat44_cfg_nat); + sz = sizeof(ipfw_obj_header) + sizeof(struct nat44_cfg_nat); LIST_FOREACH(r, &ptr->redir_chain, _next) { sz += sizeof(struct nat44_cfg_redir); LIST_FOREACH(s, &r->spool_chain, _next) @@ -699,7 +699,7 @@ nat44_get_cfg(struct ip_fw_chain *chain, } ucfg->size = sz; - if (sd->valsize < sz + sizeof(*oh)) { + if (sd->valsize < sz) { /* * Submitted buffer size is not enough. Modified: projects/building-blocks/sys/netpfil/ipfw/ip_fw_private.h ============================================================================== --- projects/building-blocks/sys/netpfil/ipfw/ip_fw_private.h Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/netpfil/ipfw/ip_fw_private.h Fri Feb 6 10:10:57 2015 (r278312) @@ -429,6 +429,7 @@ struct ipfw_ifc { #define IPFW_UH_RLOCK_ASSERT(_chain) rw_assert(&(_chain)->uh_lock, RA_RLOCKED) #define IPFW_UH_WLOCK_ASSERT(_chain) rw_assert(&(_chain)->uh_lock, RA_WLOCKED) +#define IPFW_UH_UNLOCK_ASSERT(_chain) rw_assert(&(_chain)->uh_lock, RA_UNLOCKED) #define IPFW_UH_RLOCK(p) rw_rlock(&(p)->uh_lock) #define IPFW_UH_RUNLOCK(p) rw_runlock(&(p)->uh_lock) Modified: projects/building-blocks/sys/netpfil/ipfw/ip_fw_table.c ============================================================================== --- projects/building-blocks/sys/netpfil/ipfw/ip_fw_table.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/netpfil/ipfw/ip_fw_table.c Fri Feb 6 10:10:57 2015 (r278312) @@ -1198,7 +1198,7 @@ flush_table(struct ip_fw_chain *ch, stru void *astate_old, *astate_new; char algostate[64], *pstate; struct tableop_state ts; - int error; + int error, need_gc; uint16_t kidx; uint8_t tflags; @@ -1212,6 +1212,9 @@ flush_table(struct ip_fw_chain *ch, stru IPFW_UH_WUNLOCK(ch); return (ESRCH); } + need_gc = 0; + astate_new = NULL; + memset(&ti_new, 0, sizeof(ti_new)); restart: /* Set up swap handler */ memset(&ts, 0, sizeof(ts)); @@ -1237,6 +1240,14 @@ restart: IPFW_UH_WUNLOCK(ch); /* + * Stage 1.5: if this is not the first attempt, destroy previous state + */ + if (need_gc != 0) { + ta->destroy(astate_new, &ti_new); + need_gc = 0; + } + + /* * Stage 2: allocate new table instance using same algo. */ memset(&ti_new, 0, sizeof(struct table_info)); @@ -1262,7 +1273,8 @@ restart: * complex checks. */ if (ts.modified != 0) { - ta->destroy(astate_new, &ti_new); + /* Delay destroying data since we're holding UH lock */ + need_gc = 1; goto restart; } @@ -3042,6 +3054,7 @@ free_table_config(struct namedobj_instan { KASSERT(tc->linked == 0, ("free() on linked config")); + /* UH lock MUST NOT be held */ /* * We're using ta without any locking/referencing. Modified: projects/building-blocks/sys/netpfil/ipfw/ip_fw_table_algo.c ============================================================================== --- projects/building-blocks/sys/netpfil/ipfw/ip_fw_table_algo.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/netpfil/ipfw/ip_fw_table_algo.c Fri Feb 6 10:10:57 2015 (r278312) @@ -97,7 +97,7 @@ __FBSDID("$FreeBSD$"); * * -destroy: request to destroy table instance. * typedef void (ta_destroy)(void *ta_state, struct table_info *ti); - * MANDATORY, may be locked (UH+WLOCK). (M_NOWAIT). + * MANDATORY, unlocked. (M_WAITOK). * * Frees all table entries and all tables structures allocated by -init. * @@ -2134,6 +2134,7 @@ destroy_ifidx_locked(struct namedobj_ins ife = (struct ifentry *)no; ipfw_iface_del_notify(ch, &ife->ic); + ipfw_iface_unref(ch, &ife->ic); free(ife, M_IPFW_TBL); } @@ -2153,7 +2154,9 @@ ta_destroy_ifidx(void *ta_state, struct if (icfg->main_ptr != NULL) free(icfg->main_ptr, M_IPFW); + IPFW_UH_WLOCK(ch); ipfw_objhash_foreach(icfg->ii, destroy_ifidx_locked, ch); + IPFW_UH_WUNLOCK(ch); ipfw_objhash_destroy(icfg->ii); @@ -2333,8 +2336,9 @@ ta_del_ifidx(void *ta_state, struct tabl /* Unlink from local list */ ipfw_objhash_del(icfg->ii, &ife->no); - /* Unlink notifier */ + /* Unlink notifier and deref */ ipfw_iface_del_notify(icfg->ch, &ife->ic); + ipfw_iface_unref(icfg->ch, &ife->ic); icfg->count--; tei->value = ife->value; @@ -2357,11 +2361,8 @@ ta_flush_ifidx_entry(struct ip_fw_chain tb = (struct ta_buf_ifidx *)ta_buf; - if (tb->ife != NULL) { - /* Unlink first */ - ipfw_iface_unref(ch, &tb->ife->ic); + if (tb->ife != NULL) free(tb->ife, M_IPFW_TBL); - } } Modified: projects/building-blocks/sys/sys/bus.h ============================================================================== --- projects/building-blocks/sys/sys/bus.h Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/sys/bus.h Fri Feb 6 10:10:57 2015 (r278312) @@ -70,11 +70,22 @@ struct u_device { char dv_pnpinfo[128]; /**< @brief Plug and play info */ char dv_location[128]; /**< @brief Where is the device? */ uint32_t dv_devflags; /**< @brief API Flags for device */ - uint16_t dv_flags; /**< @brief flags for dev date */ + uint16_t dv_flags; /**< @brief flags for dev state */ device_state_t dv_state; /**< @brief State of attachment */ /* XXX more driver info? */ }; +/* Flags exported via dv_flags. */ +#define DF_ENABLED 0x01 /* device should be probed/attached */ +#define DF_FIXEDCLASS 0x02 /* devclass specified at create time */ +#define DF_WILDCARD 0x04 /* unit was originally wildcard */ +#define DF_DESCMALLOCED 0x08 /* description was malloced */ +#define DF_QUIET 0x10 /* don't print verbose attach message */ +#define DF_DONENOMATCH 0x20 /* don't execute DEVICE_NOMATCH again */ +#define DF_EXTERNALSOFTC 0x40 /* softc not allocated by us */ +#define DF_REBID 0x80 /* Can rebid after attach */ +#define DF_SUSPENDED 0x100 /* Device is suspended. */ + #ifdef _KERNEL #include Modified: projects/building-blocks/sys/sys/systm.h ============================================================================== --- projects/building-blocks/sys/sys/systm.h Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/sys/systm.h Fri Feb 6 10:10:57 2015 (r278312) @@ -357,7 +357,6 @@ static __inline intrmask_t splhigh(void) static __inline intrmask_t splimp(void) { return 0; } static __inline intrmask_t splnet(void) { return 0; } static __inline intrmask_t spltty(void) { return 0; } -static __inline intrmask_t splvm(void) { return 0; } static __inline void splx(intrmask_t ipl __unused) { return; } /* Modified: projects/building-blocks/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- projects/building-blocks/sys/ufs/ffs/ffs_softdep.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/sys/ufs/ffs/ffs_softdep.c Fri Feb 6 10:10:57 2015 (r278312) @@ -1393,7 +1393,7 @@ softdep_flush(addr) VFSTOUFS(mp)->softdep_jblocks->jb_suspended)) kthread_suspend_check(); ACQUIRE_LOCK(ump); - while ((ump->softdep_flags & (FLUSH_CLEANUP | FLUSH_EXIT)) == 0) + if ((ump->softdep_flags & (FLUSH_CLEANUP | FLUSH_EXIT)) == 0) msleep(&ump->softdep_flushtd, LOCK_PTR(ump), PVM, "sdflush", hz / 2); ump->softdep_flags &= ~FLUSH_CLEANUP; @@ -1423,10 +1423,9 @@ worklist_speedup(mp) ump = VFSTOUFS(mp); LOCK_OWNED(ump); - if ((ump->softdep_flags & (FLUSH_CLEANUP | FLUSH_EXIT)) == 0) { + if ((ump->softdep_flags & (FLUSH_CLEANUP | FLUSH_EXIT)) == 0) ump->softdep_flags |= FLUSH_CLEANUP; - wakeup(&ump->softdep_flushtd); - } + wakeup(&ump->softdep_flushtd); } static int @@ -1471,11 +1470,10 @@ softdep_speedup(ump) TAILQ_INSERT_TAIL(&softdepmounts, sdp, sd_next); FREE_GBLLOCK(&lk); if ((altump->softdep_flags & - (FLUSH_CLEANUP | FLUSH_EXIT)) == 0) { + (FLUSH_CLEANUP | FLUSH_EXIT)) == 0) altump->softdep_flags |= FLUSH_CLEANUP; - altump->um_softdep->sd_cleanups++; - wakeup(&altump->softdep_flushtd); - } + altump->um_softdep->sd_cleanups++; + wakeup(&altump->softdep_flushtd); FREE_LOCK(altump); } } Modified: projects/building-blocks/usr.sbin/devinfo/devinfo.c ============================================================================== --- projects/building-blocks/usr.sbin/devinfo/devinfo.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/usr.sbin/devinfo/devinfo.c Fri Feb 6 10:10:57 2015 (r278312) @@ -146,6 +146,10 @@ print_device(struct devinfo_dev *dev, vo printf(" pnpinfo %s", dev->dd_pnpinfo); if (vflag && *dev->dd_location) printf(" at %s", dev->dd_location); + if (!(dev->dd_flags & DF_ENABLED)) + printf(" (disabled)"); + else if (dev->dd_flags & DF_SUSPENDED) + printf(" (suspended)"); printf("\n"); if (rflag) { ia.indent = indent + 4; Modified: projects/building-blocks/usr.sbin/syslogd/syslogd.c ============================================================================== --- projects/building-blocks/usr.sbin/syslogd/syslogd.c Fri Feb 6 09:41:16 2015 (r278311) +++ projects/building-blocks/usr.sbin/syslogd/syslogd.c Fri Feb 6 10:10:57 2015 (r278312) @@ -1020,7 +1020,7 @@ logmsg(int pri, const char *msg, const c */ if (no_compress - (f->f_type != F_PIPE) < 1 && (flags & MARK) == 0 && msglen == f->f_prevlen && - f->f_prevline && !strcmp(msg, f->f_prevline) && + !strcmp(msg, f->f_prevline) && !strcasecmp(from, f->f_prevhost)) { (void)strlcpy(f->f_lasttime, timestamp, sizeof(f->f_lasttime)); @@ -1175,11 +1175,9 @@ fprintlog(struct filed *f, int flags, co v->iov_base = repbuf; v->iov_len = snprintf(repbuf, sizeof repbuf, "last message repeated %d times", f->f_prevcount); - } else if (f->f_prevline) { + } else { v->iov_base = f->f_prevline; v->iov_len = f->f_prevlen; - } else { - return; } v++; From owner-svn-src-projects@FreeBSD.ORG Fri Feb 6 22:25:29 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 17A20C9D; Fri, 6 Feb 2015 22:25:29 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F27D382B; Fri, 6 Feb 2015 22:25:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t16MPSkV072086; Fri, 6 Feb 2015 22:25:28 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t16MPM52072051; Fri, 6 Feb 2015 22:25:22 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201502062225.t16MPM52072051@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 6 Feb 2015 22:25:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278334 - in projects/clang360-import/contrib/llvm/tools/lldb: docs include/lldb include/lldb/API include/lldb/Breakpoint include/lldb/Core include/lldb/DataFormatters include/lldb/Expr... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2015 22:25:29 -0000 Author: emaste Date: Fri Feb 6 22:25:21 2015 New Revision: 278334 URL: https://svnweb.freebsd.org/changeset/base/278334 Log: Update LLDB snapshot to upstream r225923 (git 2b588ecd) Sponsored by: DARPA, AFRL Added: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBExecutionContext.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/API/SBExecutionContext.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBThreadCollection.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/API/SBThreadCollection.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBThreadPlan.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/API/SBThreadPlan.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseMap.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Core/ThreadSafeDenseMap.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/StringPrinter.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/DataFormatters/StringPrinter.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeValidator.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/DataFormatters/TypeValidator.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Expression/ClangModulesDeclVendor.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Expression/ClangModulesDeclVendor.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/ConnectionFileDescriptor.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/ConnectionFileDescriptor.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeProcess.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/HostNativeProcess.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeProcessBase.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/HostNativeProcessBase.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThread.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/HostNativeThread.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadBase.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/HostNativeThreadBase.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadForward.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/HostNativeThreadForward.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/HostThread.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/HostThread.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/MonitoringProcessLauncher.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/MonitoringProcessLauncher.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/PipeBase.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/PipeBase.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLauncher.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/ProcessLauncher.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/ThisThread.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/ThisThread.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/ThreadLauncher.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/ThreadLauncher.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/freebsd/HostThreadFreeBSD.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/freebsd/HostThreadFreeBSD.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostThreadPosix.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/posix/HostThreadPosix.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/PipePosix.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/posix/PipePosix.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/ProcessLauncherPosix.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Host/posix/ProcessLauncherPosix.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueChar.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Interpreter/OptionValueChar.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/CompactUnwindInfo.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Symbol/CompactUnwindInfo.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/DeclVendor.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Symbol/DeclVendor.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntime.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Target/InstrumentationRuntime.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Target/InstrumentationRuntimeStopInfo.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/MemoryHistory.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Target/MemoryHistory.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/ThreadCollection.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Target/ThreadCollection.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanPython.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Target/ThreadPlanPython.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Utility/ProcessStructReader.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Utility/ProcessStructReader.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Utility/RegisterNumber.h - copied unchanged from r278333, vendor/lldb/dist/include/lldb/Utility/RegisterNumber.h projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBExecutionContext.cpp - copied unchanged from r278333, vendor/lldb/dist/source/API/SBExecutionContext.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBThreadCollection.cpp - copied unchanged from r278333, vendor/lldb/dist/source/API/SBThreadCollection.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBThreadPlan.cpp - copied unchanged from r278333, vendor/lldb/dist/source/API/SBThreadPlan.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxInitializerList.cpp - copied unchanged from r278333, vendor/lldb/dist/source/DataFormatters/LibCxxInitializerList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxVector.cpp - copied unchanged from r278333, vendor/lldb/dist/source/DataFormatters/LibCxxVector.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/NSIndexPath.cpp - copied unchanged from r278333, vendor/lldb/dist/source/DataFormatters/NSIndexPath.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/StringPrinter.cpp - copied unchanged from r278333, vendor/lldb/dist/source/DataFormatters/StringPrinter.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/TypeValidator.cpp - copied unchanged from r278333, vendor/lldb/dist/source/DataFormatters/TypeValidator.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Expression/ClangModulesDeclVendor.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Expression/ClangModulesDeclVendor.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/HostNativeThreadBase.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/common/HostNativeThreadBase.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/HostProcess.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/common/HostProcess.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/HostThread.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/common/HostThread.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/MonitoringProcessLauncher.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/common/MonitoringProcessLauncher.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/PipeBase.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/common/PipeBase.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/ThisThread.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/common/ThisThread.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/ThreadLauncher.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/common/ThreadLauncher.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/freebsd/HostThreadFreeBSD.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/freebsd/HostThreadFreeBSD.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/freebsd/ThisThread.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/freebsd/ThisThread.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/posix/ConnectionFileDescriptorPosix.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/posix/HostThreadPosix.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/posix/HostThreadPosix.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/posix/PipePosix.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/posix/PipePosix.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosix.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Host/posix/ProcessLauncherPosix.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueChar.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Interpreter/OptionValueChar.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ - copied from r278333, vendor/lldb/dist/source/Plugins/ABI/SysV-ppc/ projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ - copied from r278333, vendor/lldb/dist/source/Plugins/ABI/SysV-ppc64/ projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ - copied from r278333, vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/ - copied from r278333, vendor/lldb/dist/source/Plugins/MemoryHistory/ projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_powerpc.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_powerpc.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_powerpc.h - copied unchanged from r278333, vendor/lldb/dist/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_powerpc.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h - copied unchanged from r278333, vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h - copied unchanged from r278333, vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_powerpc.h - copied unchanged from r278333, vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContext_powerpc.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h - copied unchanged from r278333, vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_powerpc.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h - copied unchanged from r278333, vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/CompactUnwindInfo.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Symbol/CompactUnwindInfo.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntime.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Target/InstrumentationRuntime.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntimeStopInfo.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Target/InstrumentationRuntimeStopInfo.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/MemoryHistory.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Target/MemoryHistory.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadCollection.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Target/ThreadCollection.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadPlanPython.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Target/ThreadPlanPython.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Utility/RegisterNumber.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Utility/RegisterNumber.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Utility/UriParser.cpp - copied unchanged from r278333, vendor/lldb/dist/source/Utility/UriParser.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Utility/UriParser.h - copied unchanged from r278333, vendor/lldb/dist/source/Utility/UriParser.h projects/clang360-import/contrib/llvm/tools/lldb/tools/compact-unwind/ - copied from r278333, vendor/lldb/dist/tools/compact-unwind/ Deleted: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/ConnectionFileDescriptor.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeVendor.h projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ConnectionFileDescriptor.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/Pipe.cpp Modified: projects/clang360-import/contrib/llvm/tools/lldb/docs/lldb.1 projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBAddress.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBCompileUnit.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBData.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBEvent.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBListener.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBSection.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBType.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBTypeSummary.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBValue.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBValueList.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointID.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointIDList.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointList.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocation.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationCollection.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationList.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolver.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverAddress.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileLine.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileRegex.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverName.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSite.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/Address.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/ArchSpec.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/Communication.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/Connection.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/DataBuffer.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/DataExtractor.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/Debugger.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/Disassembler.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/FileSpecList.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/ModuleList.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/RegularExpression.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/SearchFilter.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/Section.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/StreamString.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLMap.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/ValueObject.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectChild.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResult.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultImpl.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFormatterFunctions.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DataVisualization.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatCache.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatManager.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersContainer.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategory.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategoryMap.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSynthetic.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Expression/ClangExpressionParser.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Expression/ClangExpressionVariable.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Expression/ClangFunction.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Expression/ClangUserExpression.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/Config.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/Editline.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/FileSpec.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/Host.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/HostProcess.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/Pipe.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/Predicate.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/TimeValue.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/freebsd/HostInfoFreeBSD.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostInfoPosix.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostProcessPosix.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/Args.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValue.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueProperties.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValues.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/Property.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTType.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/DWARFCallFrameInfo.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContext.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/Type.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindPlan.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/CPPLanguageRuntime.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/FileAction.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/ObjCLanguageRuntime.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/Process.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/StackFrame.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/Target.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/TargetList.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/ThreadList.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlan.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverBreakpoint.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepRange.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Target/Unwind.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Utility/CleanUp.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Utility/Iterable.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/lldb-defines.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/lldb-private-enumerations.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/lldb-private-interfaces.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/lldb-private-types.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/lldb-private.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/lldb-python.h projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/lldb-types.h projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBAddress.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBBreakpoint.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBCommunication.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBCompileUnit.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBEvent.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBFunction.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBHostOS.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBInstruction.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBInstructionList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBListener.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBProcess.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBSection.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBTarget.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBThread.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBType.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBTypeSummary.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBValue.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/API/SBValueList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointIDList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationCollection.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverAddress.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileRegex.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverName.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSite.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandCompletions.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.h projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectSyntax.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/Address.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/AddressRange.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/AddressResolverFileLine.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ArchSpec.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/Communication.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/Connection.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ConnectionSharedMemory.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ConstString.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/DataExtractor.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/Debugger.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/Disassembler.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/FastDemangle.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/FileSpecList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/Log.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/Mangled.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/Module.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/RegularExpression.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/SearchFilter.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/Section.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/StreamString.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ValueObject.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ValueObjectCast.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ValueObjectChild.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResult.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultImpl.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ValueObjectSyntheticFilter.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/CF.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/CXXFormatterFunctions.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/Cocoa.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/DataVisualization.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/FormatCache.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/FormatManager.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/LibCxx.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxMap.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxUnorderedMap.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/LibStdcpp.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/NSArray.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/NSDictionary.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/NSSet.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategory.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategoryMap.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/TypeFormat.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/TypeSummary.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/TypeSynthetic.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/DataFormatters/ValueObjectPrinter.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Expression/ClangASTSource.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Expression/ClangExpressionDeclMap.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Expression/ClangExpressionParser.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Expression/ClangExpressionVariable.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Expression/ClangFunction.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Expression/ClangUserExpression.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Expression/IRForTarget.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/File.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/FileSpec.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/Host.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.h projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.h projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/posix/HostInfoPosix.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Host/posix/HostProcessPosix.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/Args.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectRegexCommand.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupPlatform.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValue.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArch.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArray.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueBoolean.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueDictionary.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueEnumeration.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpecLIst.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormat.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValuePathMappings.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueProperties.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueRegex.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueSInt64.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUInt64.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUUID.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/Property.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreter.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreterPython.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Interpreter/embedded_interpreter.py projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/POSIXThread.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_arm64.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_mips64.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_x86.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMDefines.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InstructionUtils.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/ClangASTImporter.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/ClangASTType.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/CompileUnit.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/Declaration.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/LineTable.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/Symbol.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/SymbolContext.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/Type.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/UnwindPlan.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/CPPLanguageRuntime.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/FileAction.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/LanguageRuntime.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/Memory.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/Platform.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/Process.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/Target.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/TargetList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/Thread.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadList.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInstruction.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOut.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverRange.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepThrough.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Utility/PseudoTerminal.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Utility/StringExtractor.h projects/clang360-import/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/Utility/StringLexer.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/lldb-log.cpp projects/clang360-import/contrib/llvm/tools/lldb/source/lldb.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/driver/Driver.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/driver/Driver.h projects/clang360-import/contrib/llvm/tools/lldb/tools/driver/Platform.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/Driver.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/Driver.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnConfig.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdinLinux.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdinLinux.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdinWindows.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdinWindows.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDataTypes.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonBase.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonHelper.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemLinux.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemLinux.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemOsx.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemOsx.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemWindows.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemWindows.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilTermios.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilTermios.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/Platform.cpp projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-mi/Platform.h projects/clang360-import/contrib/llvm/tools/lldb/tools/lldb-platform/lldb-platform.cpp Directory Properties: projects/clang360-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang360-import/contrib/llvm/tools/lldb/docs/lldb.1 ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/docs/lldb.1 Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/docs/lldb.1 Fri Feb 6 22:25:21 2015 (r278334) @@ -1,7 +1,7 @@ .Dd June 7, 2012 \" DATE .Dt LLDB 1 \" Program name and manual section number .Os Darwin \" Operating System -.Sh NAME \" Section Header - required - don't modify +.Sh NAME \" Section Header - required - don't modify .Nm lldb .Nd The debugger .Sh SYNOPSIS \" Section Header - required - don't modify Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h Fri Feb 6 22:25:21 2015 (r278334) @@ -29,6 +29,7 @@ #include "lldb/API/SBDeclaration.h" #include "lldb/API/SBError.h" #include "lldb/API/SBEvent.h" +#include "lldb/API/SBExecutionContext.h" #include "lldb/API/SBFileSpec.h" #include "lldb/API/SBFrame.h" #include "lldb/API/SBFunction.h" Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBAddress.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBAddress.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBAddress.h Fri Feb 6 22:25:21 2015 (r278334) @@ -117,6 +117,7 @@ protected: friend class SBSymbolContext; friend class SBTarget; friend class SBThread; + friend class SBThreadPlan; friend class SBValue; friend class SBQueueItem; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h Fri Feb 6 22:25:21 2015 (r278334) @@ -123,6 +123,18 @@ public: SBError SetScriptCallbackBody (const char *script_body_text); + + bool + AddName (const char *new_name); + + void + RemoveName (const char *name_to_remove); + + bool + MatchesName (const char *name); + + void + GetNames (SBStringList &names); size_t GetNumResolvedLocations() const; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h Fri Feb 6 22:25:21 2015 (r278334) @@ -15,6 +15,61 @@ namespace lldb { +class SBCommandInterpreterRunOptions +{ +friend class SBDebugger; +friend class SBCommandInterpreter; + +public: + SBCommandInterpreterRunOptions(); + ~SBCommandInterpreterRunOptions(); + + bool + GetStopOnContinue () const; + + void + SetStopOnContinue (bool); + + bool + GetStopOnError () const; + + void + SetStopOnError (bool); + + bool + GetStopOnCrash () const; + + void + SetStopOnCrash (bool); + + bool + GetEchoCommands () const; + + void + SetEchoCommands (bool); + + bool + GetPrintResults () const; + + void + SetPrintResults (bool); + + bool + GetAddToHistory () const; + + void + SetAddToHistory (bool); +private: + lldb_private::CommandInterpreterRunOptions * + get () const; + + lldb_private::CommandInterpreterRunOptions & + ref () const; + + // This is set in the constructor and will always be valid. + mutable std::unique_ptr m_opaque_up; +}; + class SBCommandInterpreter { public: @@ -85,6 +140,15 @@ public: lldb::ReturnStatus HandleCommand (const char *command_line, lldb::SBCommandReturnObject &result, bool add_to_history = false); + lldb::ReturnStatus + HandleCommand (const char *command_line, SBExecutionContext &exe_ctx, SBCommandReturnObject &result, bool add_to_history = false); + + void + HandleCommandsFromFile (lldb::SBFileSpec &file, + lldb::SBExecutionContext &override_context, + lldb::SBCommandInterpreterRunOptions &options, + lldb::SBCommandReturnObject result); + // The pointer based interface is not useful in SWIG, since the cursor & last_char arguments are string pointers INTO current_line // and you can't do that in a scripting language interface in general... @@ -175,9 +239,9 @@ class SBCommandPluginInterface { public: virtual bool - DoExecute (lldb::SBDebugger debugger, - char** command, - lldb::SBCommandReturnObject &result) + DoExecute (lldb::SBDebugger /*debugger*/, + char** /*command*/, + lldb::SBCommandReturnObject & /*result*/) { return false; } Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBCompileUnit.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBCompileUnit.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBCompileUnit.h Fri Feb 6 22:25:21 2015 (r278334) @@ -78,6 +78,9 @@ public: lldb::SBTypeList GetTypes (uint32_t type_mask = lldb::eTypeClassAny); + lldb::LanguageType + GetLanguage (); + bool operator == (const lldb::SBCompileUnit &rhs) const; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBData.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBData.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBData.h Fri Feb 6 22:25:21 2015 (r278334) @@ -169,6 +169,7 @@ private: friend class SBInstruction; friend class SBProcess; friend class SBSection; + friend class SBTarget; friend class SBValue; lldb::DataExtractorSP m_opaque_sp; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h Fri Feb 6 22:25:21 2015 (r278334) @@ -27,6 +27,7 @@ public: void SetIsDone(bool); bool IsActive() const; }; + class SBDebugger { public: @@ -321,6 +322,13 @@ public: RunCommandInterpreter (bool auto_handle_events, bool spawn_thread); + void + RunCommandInterpreter (bool auto_handle_events, + bool spawn_thread, + SBCommandInterpreterRunOptions &options, + int &num_errors, + bool &quit_requested, + bool &stopped_for_crash); private: friend class SBCommandInterpreter; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h Fri Feb 6 22:25:21 2015 (r278334) @@ -35,6 +35,7 @@ class LLDB_API SBBreakpointLocation; class LLDB_API SBBroadcaster; class LLDB_API SBCommand; class LLDB_API SBCommandInterpreter; +class LLDB_API SBCommandInterpreterRunOptions; class LLDB_API SBCommandPluginInterface; class LLDB_API SBCommandReturnObject; class LLDB_API SBCommunication; @@ -45,6 +46,7 @@ class LLDB_API SBDeclaration; class LLDB_API SBError; class LLDB_API SBEvent; class LLDB_API SBEventList; +class LLDB_API SBExecutionContext; class LLDB_API SBExpressionOptions; class LLDB_API SBFileSpec; class LLDB_API SBFileSpecList; @@ -70,14 +72,18 @@ class LLDB_API SBSymbolContext; class LLDB_API SBSymbolContextList; class LLDB_API SBTarget; class LLDB_API SBThread; +class LLDB_API SBThreadCollection; +class LLDB_API SBThreadPlan; class LLDB_API SBType; class LLDB_API SBTypeCategory; class LLDB_API SBTypeEnumMember; class LLDB_API SBTypeEnumMemberList; class LLDB_API SBTypeFilter; class LLDB_API SBTypeFormat; +class LLDB_API SBTypeMemberFunction; class LLDB_API SBTypeNameSpecifier; class LLDB_API SBTypeSummary; +class LLDB_API SBTypeSummaryOptions; #ifndef LLDB_DISABLE_PYTHON class LLDB_API SBTypeSynthetic; #endif Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBEvent.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBEvent.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBEvent.h Fri Feb 6 22:25:21 2015 (r278334) @@ -30,6 +30,10 @@ public: // Make an event that contains a C string. SBEvent (uint32_t event, const char *cstr, uint32_t cstr_len); + SBEvent (lldb::EventSP &event_sp); + + SBEvent (lldb_private::Event *event_sp); + ~SBEvent(); const SBEvent & @@ -77,8 +81,6 @@ protected: friend class SBThread; friend class SBWatchpoint; - SBEvent (lldb::EventSP &event_sp); - lldb::EventSP & GetSP () const; Copied: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBExecutionContext.h (from r278333, vendor/lldb/dist/include/lldb/API/SBExecutionContext.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBExecutionContext.h Fri Feb 6 22:25:21 2015 (r278334, copy of r278333, vendor/lldb/dist/include/lldb/API/SBExecutionContext.h) @@ -0,0 +1,74 @@ +//===-- SBExecutionContext.h -----------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_SBExecutionContext_h_ +#define LLDB_SBExecutionContext_h_ + +#include "lldb/API/SBDefines.h" + +#include +#include + + +namespace lldb { + +class SBExecutionContext +{ +friend class SBCommandInterpreter; + +public: + SBExecutionContext(); + + SBExecutionContext (const lldb::SBExecutionContext &rhs); + + SBExecutionContext (lldb::ExecutionContextRefSP exe_ctx_ref_sp); + + SBExecutionContext (const lldb::SBTarget &target); + + SBExecutionContext (const lldb::SBProcess &process); + + SBExecutionContext (lldb::SBThread thread); // can't be a const& because SBThread::get() isn't itself a const function + + SBExecutionContext (const lldb::SBFrame &frame); + + ~SBExecutionContext(); + + const SBExecutionContext & + operator = (const lldb::SBExecutionContext &rhs); + + SBTarget + GetTarget () const; + + SBProcess + GetProcess () const; + + SBThread + GetThread () const; + + SBFrame + GetFrame () const; + +protected: + ExecutionContextRefSP & + GetSP () const; + + void + reset (lldb::ExecutionContextRefSP &event_sp); + + lldb_private::ExecutionContextRef * + get () const; + +private: + + mutable lldb::ExecutionContextRefSP m_exe_ctx_sp; +}; + +} // namespace lldb + +#endif // LLDB_SBExecutionContext_h_ Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h Fri Feb 6 22:25:21 2015 (r278334) @@ -63,6 +63,7 @@ public: private: friend class SBAttachInfo; friend class SBBlock; + friend class SBCommandInterpreter; friend class SBCompileUnit; friend class SBDeclaration; friend class SBFileSpecList; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h Fri Feb 6 22:25:21 2015 (r278334) @@ -198,21 +198,6 @@ public: lldb::SBValue FindValue (const char *name, ValueType value_type, lldb::DynamicValueType use_dynamic); - /// Find and watch a variable using the frame as the scope. - /// It returns an SBValue, similar to FindValue() method, if find-and-watch - /// operation succeeds. Otherwise, an invalid SBValue is returned. - /// You can use LLDB_WATCH_TYPE_READ | LLDB_WATCH_TYPE_WRITE for 'rw' watch. - lldb::SBValue - WatchValue (const char *name, ValueType value_type, uint32_t watch_type); - - /// Find and watch the location pointed to by a variable using the frame as - /// the scope. - /// It returns an SBValue, similar to FindValue() method, if find-and-watch - /// operation succeeds. Otherwise, an invalid SBValue is returned. - /// You can use LLDB_WATCH_TYPE_READ | LLDB_WATCH_TYPE_WRITE for 'rw' watch. - lldb::SBValue - WatchLocation (const char *name, ValueType value_type, uint32_t watch_type, size_t size); - bool GetDescription (lldb::SBStream &description); @@ -221,6 +206,7 @@ public: protected: friend class SBBlock; + friend class SBExecutionContext; friend class SBInstruction; friend class SBThread; friend class SBValue; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h Fri Feb 6 22:25:21 2015 (r278334) @@ -58,6 +58,9 @@ public: lldb::SBBlock GetBlock (); + + lldb::LanguageType + GetLanguage (); bool operator == (const lldb::SBFunction &rhs) const; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBListener.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBListener.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBListener.h Fri Feb 6 22:25:21 2015 (r278334) @@ -99,13 +99,23 @@ public: HandleBroadcastEvent (const lldb::SBEvent &event); protected: + friend class SBAttachInfo; friend class SBBroadcaster; friend class SBCommandInterpreter; friend class SBDebugger; + friend class SBLaunchInfo; friend class SBTarget; SBListener (lldb_private::Listener &listener); + SBListener (const lldb::ListenerSP &listener_sp); + + lldb::ListenerSP + GetSP () + { + return m_opaque_sp; + } + private: lldb_private::Listener * Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h Fri Feb 6 22:25:21 2015 (r278334) @@ -316,6 +316,12 @@ public: //------------------------------------------------------------------ const char * GetExtendedBacktraceTypeAtIndex (uint32_t idx); + + lldb::SBThreadCollection + GetHistoryThreads (addr_t addr); + + bool + IsInstrumentationRuntimePresent(InstrumentationRuntimeType type); protected: friend class SBAddress; @@ -323,6 +329,7 @@ protected: friend class SBBreakpointLocation; friend class SBCommandInterpreter; friend class SBDebugger; + friend class SBExecutionContext; friend class SBFunction; friend class SBModule; friend class SBTarget; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBSection.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBSection.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBSection.h Fri Feb 6 22:25:21 2015 (r278334) @@ -71,6 +71,18 @@ public: SectionType GetSectionType (); + //------------------------------------------------------------------ + /// Return the size of a target's byte represented by this section + /// in numbers of host bytes. Note that certain architectures have + /// varying minimum addressable unit (i.e. byte) size for their + /// CODE or DATA buses. + /// + /// @return + /// The number of host (8-bit) bytes needed to hold a target byte + //------------------------------------------------------------------ + uint32_t + GetTargetByteSize (); + bool operator == (const lldb::SBSection &rhs); Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h Fri Feb 6 22:25:21 2015 (r278334) @@ -85,8 +85,10 @@ protected: friend class SBSymbolContextList; friend class SBTarget; friend class SBThread; + friend class SBThreadPlan; friend class SBType; friend class SBTypeEnumMember; + friend class SBTypeMemberFunction; friend class SBTypeMember; friend class SBValue; friend class SBWatchpoint; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h Fri Feb 6 22:25:21 2015 (r278334) @@ -22,6 +22,8 @@ namespace lldb { +class SBPlatform; + class SBLaunchInfo { public: @@ -49,7 +51,7 @@ public: SBFileSpec GetExecutableFile (); - + //---------------------------------------------------------------------- /// Set the executable file that will be used to launch the process and /// optionally set it as the first argument in the argument vector. @@ -75,7 +77,29 @@ public: //---------------------------------------------------------------------- void SetExecutableFile (SBFileSpec exe_file, bool add_as_first_arg); - + + + //---------------------------------------------------------------------- + /// Get the listener that will be used to receive process events. + /// + /// If no listener has been set via a call to + /// SBLaunchInfo::SetListener(), then an invalid SBListener will be + /// returned (SBListener::IsValid() will return false). If a listener + /// has been set, then the valid listener object will be returned. + //---------------------------------------------------------------------- + SBListener + GetListener (); + + //---------------------------------------------------------------------- + /// Set the listener that will be used to receive process events. + /// + /// By default the SBDebugger, which has a listener, that the SBTarget + /// belongs to will listen for the process events. Calling this function + /// allows a different listener to be used to listen for process events. + //---------------------------------------------------------------------- + void + SetListener (SBListener &listener); + uint32_t GetNumArguments (); @@ -256,7 +280,28 @@ public: bool ParentProcessIDIsValid(); - + + //---------------------------------------------------------------------- + /// Get the listener that will be used to receive process events. + /// + /// If no listener has been set via a call to + /// SBLaunchInfo::SetListener(), then an invalid SBListener will be + /// returned (SBListener::IsValid() will return false). If a listener + /// has been set, then the valid listener object will be returned. + //---------------------------------------------------------------------- + SBListener + GetListener (); + + //---------------------------------------------------------------------- + /// Set the listener that will be used to receive process events. + /// + /// By default the SBDebugger, which has a listener, that the SBTarget + /// belongs to will listen for the process events. Calling this function + /// allows a different listener to be used to listen for process events. + //---------------------------------------------------------------------- + void + SetListener (SBListener &listener); + protected: friend class SBTarget; @@ -309,6 +354,18 @@ public: GetProcess (); //------------------------------------------------------------------ + /// Return the platform object associated with the target. + /// + /// After return, the platform object should be checked for + /// validity. + /// + /// @return + /// A platform object. + //------------------------------------------------------------------ + lldb::SBPlatform + GetPlatform (); + + //------------------------------------------------------------------ /// Install any binaries that need to be installed. /// /// This function does nothing when debugging on the host system. @@ -564,6 +621,26 @@ public: GetTriple (); //------------------------------------------------------------------ + /// Architecture data byte width accessor + /// + /// @return + /// The size in 8-bit (host) bytes of a minimum addressable + /// unit from the Architecture's data bus + //------------------------------------------------------------------ + uint32_t + GetDataByteSize (); + + //------------------------------------------------------------------ + /// Architecture code byte width accessor + /// + /// @return + /// The size in 8-bit (host) bytes of a minimum addressable + /// unit from the Architecture's code bus + //------------------------------------------------------------------ + uint32_t + GetCodeByteSize (); + + //------------------------------------------------------------------ /// Set the base load address for a module section. /// /// @param[in] section @@ -683,11 +760,62 @@ public: //------------------------------------------------------------------ lldb::SBValue FindFirstGlobalVariable (const char* name); + + //------------------------------------------------------------------ + /// Find global and static variables by pattern. + /// + /// @param[in] name + /// The pattern to search for global or static variables + /// + /// @param[in] max_matches + /// Allow the number of matches to be limited to \a max_matches. + /// + /// @param[in] matchtype + /// The match type to use. + /// + /// @return + /// A list of matched variables in an SBValueList. + //------------------------------------------------------------------ + lldb::SBValueList + FindGlobalVariables(const char *name, + uint32_t max_matches, + MatchType matchtype); + //------------------------------------------------------------------ + /// Find global functions by their name with pattern matching. + /// + /// @param[in] name + /// The pattern to search for global or static variables + /// + /// @param[in] max_matches + /// Allow the number of matches to be limited to \a max_matches. + /// + /// @param[in] matchtype + /// The match type to use. + /// + /// @return + /// A list of matched variables in an SBValueList. + //------------------------------------------------------------------ + lldb::SBSymbolContextList + FindGlobalFunctions(const char *name, + uint32_t max_matches, + MatchType matchtype); + void Clear (); //------------------------------------------------------------------ + /// Resolve a current file address into a section offset address. + /// + /// @param[in] file_addr + /// + /// @return + /// An SBAddress which will be valid if... + //------------------------------------------------------------------ + lldb::SBAddress + ResolveFileAddress (lldb::addr_t file_addr); + + //------------------------------------------------------------------ /// Resolve a current load address into a section offset address. /// /// @param[in] vm_addr @@ -732,6 +860,31 @@ public: ResolveSymbolContextForAddress (const SBAddress& addr, uint32_t resolve_scope); + //------------------------------------------------------------------ + /// Read target memory. If a target process is running then memory + /// is read from here. Otherwise the memory is read from the object + /// files. For a target whose bytes are sized as a multiple of host + /// bytes, the data read back will preserve the target's byte order. + /// + /// @param[in] addr + /// A target address to read from. + /// + /// @param[out] buf + /// The buffer to read memory into. + /// + /// @param[in] size + /// The maximum number of host bytes to read in the buffer passed + /// into this call + /// + /// @param[out] error + /// Error information is written here if the memory read fails. + /// + /// @return + /// The amount of data read in host bytes. + //------------------------------------------------------------------ + size_t + ReadMemory (const SBAddress addr, void *buf, size_t size, lldb::SBError &error); + lldb::SBBreakpoint BreakpointCreateByLocation (const char *file, uint32_t line); @@ -845,6 +998,12 @@ public: lldb::SBValue CreateValueFromAddress (const char *name, lldb::SBAddress addr, lldb::SBType type); + + lldb::SBValue + CreateValueFromData (const char *name, lldb::SBData data, lldb::SBType type); + + lldb::SBValue + CreateValueFromExpression (const char *name, const char* expr); SBSourceManager GetSourceManager(); @@ -893,6 +1052,7 @@ protected: friend class SBAddress; friend class SBBlock; friend class SBDebugger; + friend class SBExecutionContext; friend class SBFunction; friend class SBInstruction; friend class SBModule; Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h Fri Feb 6 22:25:21 2015 (r278334) @@ -78,7 +78,10 @@ public: //-------------------------------------------------------------------------- uint64_t GetStopReasonDataAtIndex(uint32_t idx); - + + bool + GetStopReasonExtendedInfoAsJSON (lldb::SBStream &stream); + size_t GetStopDescription (char *dst, size_t dst_len); @@ -127,6 +130,9 @@ public: uint32_t line); SBError + StepUsingScriptedThreadPlan (const char *script_class_name); + + SBError JumpToLine (lldb::SBFileSpec &file_spec, uint32_t line); void @@ -216,9 +222,19 @@ public: bool SafeToCallFunctions (); +#ifndef SWIG + lldb_private::Thread * + operator->(); + + lldb_private::Thread * + get(); + +#endif + protected: friend class SBBreakpoint; friend class SBBreakpointLocation; + friend class SBExecutionContext; friend class SBFrame; friend class SBProcess; friend class SBDebugger; Copied: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBThreadCollection.h (from r278333, vendor/lldb/dist/include/lldb/API/SBThreadCollection.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBThreadCollection.h Fri Feb 6 22:25:21 2015 (r278334, copy of r278333, vendor/lldb/dist/include/lldb/API/SBThreadCollection.h) @@ -0,0 +1,68 @@ +//===-- SBThreadCollection.h ------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_SBThreadCollection_h_ +#define LLDB_SBThreadCollection_h_ + +#include "lldb/API/SBDefines.h" + +namespace lldb { + +class SBThreadCollection +{ +public: + + SBThreadCollection (); + + SBThreadCollection (const SBThreadCollection &rhs); + + const SBThreadCollection & + operator = (const SBThreadCollection &rhs); + + ~SBThreadCollection (); + + bool + IsValid () const; + + size_t + GetSize (); + + lldb::SBThread + GetThreadAtIndex (size_t idx); + +protected: + + // Mimic shared pointer... + lldb_private::ThreadCollection * + get() const; + + lldb_private::ThreadCollection * + operator->() const; + + lldb::ThreadCollectionSP & + operator*(); + + const lldb::ThreadCollectionSP & + operator*() const; + + SBThreadCollection (const lldb::ThreadCollectionSP &threads); + + void + SetOpaque (const lldb::ThreadCollectionSP &threads); + +private: + friend class SBProcess; + + lldb::ThreadCollectionSP m_opaque_sp; +}; + + +} // namespace lldb + +#endif // LLDB_SBThreadCollection_h_ Copied: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBThreadPlan.h (from r278333, vendor/lldb/dist/include/lldb/API/SBThreadPlan.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBThreadPlan.h Fri Feb 6 22:25:21 2015 (r278334, copy of r278333, vendor/lldb/dist/include/lldb/API/SBThreadPlan.h) @@ -0,0 +1,129 @@ +//===-- SBThread.h ----------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_SBThreadPlan_h_ +#define LLDB_SBThreadPlan_h_ + +#include "lldb/API/SBDefines.h" + +#include + +namespace lldb { + +class SBThreadPlan +{ + +friend class lldb_private::ThreadPlan; + +public: + SBThreadPlan (); + + SBThreadPlan (const lldb::SBThreadPlan &threadPlan); + + SBThreadPlan (const lldb::ThreadPlanSP& lldb_object_sp); + + SBThreadPlan (lldb::SBThread &thread, const char *class_name); + + ~SBThreadPlan (); + + bool + IsValid() const; + + void + Clear (); + + lldb::StopReason + GetStopReason(); + + /// Get the number of words associated with the stop reason. + /// See also GetStopReasonDataAtIndex(). + size_t + GetStopReasonDataCount(); + + //-------------------------------------------------------------------------- + /// Get information associated with a stop reason. + /// + /// Breakpoint stop reasons will have data that consists of pairs of + /// breakpoint IDs followed by the breakpoint location IDs (they always come + /// in pairs). + /// + /// Stop Reason Count Data Type + /// ======================== ===== ========================================= + /// eStopReasonNone 0 + /// eStopReasonTrace 0 + /// eStopReasonBreakpoint N duple: {breakpoint id, location id} + /// eStopReasonWatchpoint 1 watchpoint id + /// eStopReasonSignal 1 unix signal number + /// eStopReasonException N exception data + /// eStopReasonExec 0 + /// eStopReasonPlanComplete 0 + //-------------------------------------------------------------------------- + uint64_t + GetStopReasonDataAtIndex(uint32_t idx); + + SBThread + GetThread () const; + + const lldb::SBThreadPlan & + operator = (const lldb::SBThreadPlan &rhs); + + bool + GetDescription (lldb::SBStream &description) const; + + void + SetPlanComplete (bool success); + + bool + IsPlanComplete(); + + bool + IsValid(); + + // This section allows an SBThreadPlan to push another of the common types of plans... + SBThreadPlan + QueueThreadPlanForStepOverRange (SBAddress &start_address, + lldb::addr_t range_size); + + SBThreadPlan + QueueThreadPlanForStepInRange (SBAddress &start_address, + lldb::addr_t range_size); + + SBThreadPlan + QueueThreadPlanForStepOut (uint32_t frame_idx_to_step_to, bool first_insn = false); + + SBThreadPlan + QueueThreadPlanForRunToAddress (SBAddress address); + +#ifndef SWIG + lldb_private::ThreadPlan * + get(); +#endif + +protected: + friend class SBBreakpoint; + friend class SBBreakpointLocation; + friend class SBFrame; + friend class SBProcess; + friend class SBDebugger; + friend class SBValue; + friend class lldb_private::QueueImpl; + friend class SBQueueItem; + +#ifndef SWIG + void + SetThreadPlan (const lldb::ThreadPlanSP& lldb_object_sp); +#endif + +private: + lldb::ThreadPlanSP m_opaque_sp; +}; + +} // namespace lldb + +#endif // LLDB_SBThreadPlan_h_ Modified: projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBType.h ============================================================================== --- projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBType.h Fri Feb 6 21:48:00 2015 (r278333) +++ projects/clang360-import/contrib/llvm/tools/lldb/include/lldb/API/SBType.h Fri Feb 6 22:25:21 2015 (r278334) @@ -67,6 +67,59 @@ protected: std::unique_ptr m_opaque_ap; }; + +class SBTypeMemberFunction +{ +public: + SBTypeMemberFunction (); + + SBTypeMemberFunction (const lldb::SBTypeMemberFunction& rhs); + + ~SBTypeMemberFunction(); + + lldb::SBTypeMemberFunction& + operator = (const lldb::SBTypeMemberFunction& rhs); + + bool + IsValid() const; + + const char * + GetName (); + + lldb::SBType + GetType (); + + lldb::SBType + GetReturnType (); + + uint32_t + GetNumberOfArguments (); + + lldb::SBType + GetArgumentTypeAtIndex (uint32_t); + + lldb::MemberFunctionKind + GetKind(); + + bool + GetDescription (lldb::SBStream &description, + lldb::DescriptionLevel description_level); + +protected: + friend class SBType; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sat Feb 7 09:56:41 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F094482E for ; Sat, 7 Feb 2015 09:56:41 +0000 (UTC) Received: from nk11p08mm-asmtp002.mac.com (nk11p08mm-asmtp002.mac.com [17.158.58.247]) (using TLSv1.2 with cipher DHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D987D21F for ; Sat, 7 Feb 2015 09:56:41 +0000 (UTC) Received: from [192.168.1.65] (189.223.188.227.dsl.dyn.telnor.net [189.223.188.227]) by nk11p08mm-asmtp002.mac.com (Oracle Communications Messaging Server 7.0.5.35.0 64bit (built Dec 4 2014)) with ESMTPSA id <0NJE003098T6OV00@nk11p08mm-asmtp002.mac.com> for svn-src-projects@freebsd.org; Sat, 07 Feb 2015 08:55:55 +0000 (GMT) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.13.68,1.0.33,0.0.0000 definitions=2015-02-07_01:2015-02-07,2015-02-07,1970-01-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=5 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1412110000 definitions=main-1502070091 From: Alex Rivera Content-type: text/plain Content-transfer-encoding: 7bit Subject: Message-id: <4CEEDBC9-FAF1-41B7-8DDE-5CD9D88F46A8@icloud.com> Date: Sat, 07 Feb 2015 00:55:53 -0800 To: svn-src-projects@freebsd.org MIME-version: 1.0 (Mac OS X Mail 8.1 \(1993\)) X-Mailer: Apple Mail (2.1993) X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2015 09:56:42 -0000 From owner-svn-src-projects@FreeBSD.ORG Sat Feb 7 12:57:50 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1ABAF6DB; Sat, 7 Feb 2015 12:57:50 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 031CA61A; Sat, 7 Feb 2015 12:57:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t17CvnX5079354; Sat, 7 Feb 2015 12:57:49 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t17Cvfb2079314; Sat, 7 Feb 2015 12:57:41 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201502071257.t17Cvfb2079314@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 7 Feb 2015 12:57:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278351 - in projects/clang360-import: contrib/mdocml etc/rc.d lib lib/csu/powerpc64 lib/libc/gen lib/libc/stdlib lib/libdevctl lib/libdevinfo lib/libnetgraph lib/libthr/thread lib/msun... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2015 12:57:50 -0000 Author: dim Date: Sat Feb 7 12:57:40 2015 New Revision: 278351 URL: https://svnweb.freebsd.org/changeset/base/278351 Log: Merging ^/head r278298 through r278350. Added: projects/clang360-import/lib/libdevctl/ - copied from r278350, head/lib/libdevctl/ projects/clang360-import/sys/dev/cxgbe/if_cxl.c - copied unchanged from r278350, head/sys/dev/cxgbe/if_cxl.c projects/clang360-import/sys/modules/cxgbe/if_cxl/ - copied from r278350, head/sys/modules/cxgbe/if_cxl/ projects/clang360-import/sys/modules/dtb/rpi/ - copied from r278350, head/sys/modules/dtb/rpi/ projects/clang360-import/usr.sbin/devctl/ - copied from r278350, head/usr.sbin/devctl/ Modified: projects/clang360-import/contrib/mdocml/lib.in projects/clang360-import/etc/rc.d/jail projects/clang360-import/etc/rc.d/routing projects/clang360-import/lib/Makefile projects/clang360-import/lib/csu/powerpc64/Makefile projects/clang360-import/lib/libc/gen/disklabel.c projects/clang360-import/lib/libc/stdlib/tdelete.c projects/clang360-import/lib/libdevinfo/devinfo.h projects/clang360-import/lib/libnetgraph/debug.c projects/clang360-import/lib/libthr/thread/thr_barrier.c projects/clang360-import/lib/msun/src/s_scalbln.c projects/clang360-import/share/man/man4/witness.4 projects/clang360-import/share/mk/bsd.libnames.mk projects/clang360-import/share/mk/src.libnames.mk projects/clang360-import/sys/amd64/amd64/mp_machdep.c projects/clang360-import/sys/arm/broadcom/bcm2835/files.bcm2835 projects/clang360-import/sys/arm/conf/RPI-B projects/clang360-import/sys/boot/amd64/boot1.efi/fat.tmpl.bz2.uu projects/clang360-import/sys/boot/amd64/boot1.efi/generate-fat.sh projects/clang360-import/sys/boot/forth/beastie.4th projects/clang360-import/sys/boot/forth/brand.4th projects/clang360-import/sys/cam/ctl/ctl_frontend_iscsi.c projects/clang360-import/sys/cam/ctl/ctl_ioctl.h projects/clang360-import/sys/conf/files projects/clang360-import/sys/conf/kern.pre.mk projects/clang360-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h projects/clang360-import/sys/dev/acpica/acpi.c projects/clang360-import/sys/dev/cxgbe/t4_main.c projects/clang360-import/sys/dev/ipmi/ipmi.c projects/clang360-import/sys/dev/ipmi/ipmi_kcs.c projects/clang360-import/sys/dev/ipmi/ipmi_smic.c projects/clang360-import/sys/dev/ipmi/ipmi_ssif.c projects/clang360-import/sys/dev/ipmi/ipmivars.h projects/clang360-import/sys/dev/pci/pci.c projects/clang360-import/sys/i386/i386/mp_machdep.c projects/clang360-import/sys/kern/subr_bus.c projects/clang360-import/sys/kern/subr_hints.c projects/clang360-import/sys/modules/Makefile projects/clang360-import/sys/modules/cxgbe/Makefile projects/clang360-import/sys/sys/bus.h projects/clang360-import/sys/x86/x86/local_apic.c projects/clang360-import/tools/tools/makeroot/makeroot.8 projects/clang360-import/tools/tools/makeroot/makeroot.sh projects/clang360-import/usr.bin/ktrdump/ktrdump.8 projects/clang360-import/usr.bin/ktrdump/ktrdump.c projects/clang360-import/usr.sbin/Makefile projects/clang360-import/usr.sbin/ctladm/ctladm.c projects/clang360-import/usr.sbin/ctld/ctl.conf.5 projects/clang360-import/usr.sbin/ctld/ctld.c projects/clang360-import/usr.sbin/ctld/ctld.h projects/clang360-import/usr.sbin/ctld/discovery.c projects/clang360-import/usr.sbin/ctld/kernel.c projects/clang360-import/usr.sbin/ctld/login.c projects/clang360-import/usr.sbin/ctld/parse.y projects/clang360-import/usr.sbin/ctld/token.l projects/clang360-import/usr.sbin/devinfo/devinfo.c projects/clang360-import/usr.sbin/freebsd-update/freebsd-update.sh projects/clang360-import/usr.sbin/jail/command.c projects/clang360-import/usr.sbin/jail/config.c projects/clang360-import/usr.sbin/jail/jail.8 projects/clang360-import/usr.sbin/jail/jail.c projects/clang360-import/usr.sbin/jail/jailp.h Directory Properties: projects/clang360-import/ (props changed) projects/clang360-import/contrib/llvm/ (props changed) projects/clang360-import/contrib/mdocml/ (props changed) projects/clang360-import/etc/ (props changed) projects/clang360-import/lib/libc/ (props changed) projects/clang360-import/share/ (props changed) projects/clang360-import/share/man/man4/ (props changed) projects/clang360-import/sys/ (props changed) projects/clang360-import/sys/boot/ (props changed) projects/clang360-import/sys/conf/ (props changed) projects/clang360-import/usr.sbin/jail/ (props changed) Modified: projects/clang360-import/contrib/mdocml/lib.in ============================================================================== --- projects/clang360-import/contrib/mdocml/lib.in Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/contrib/mdocml/lib.in Sat Feb 7 12:57:40 2015 (r278351) @@ -41,6 +41,7 @@ LINE("libcrypt", "Crypt Library (libcryp LINE("libcurses", "Curses Library (libcurses, \\-lcurses)") LINE("libcuse", "Userland Character Device Library (libcuse, \\-lcuse)") LINE("libdevattr", "Device attribute and event library (libdevattr, \\-ldevattr)") +LINE("libdevctl", "Device Control Library (libdevctl, \\-ldevctl)") LINE("libdevinfo", "Device and Resource Information Utility Library (libdevinfo, \\-ldevinfo)") LINE("libdevstat", "Device Statistics Library (libdevstat, \\-ldevstat)") LINE("libdisk", "Interface to Slice and Partition Labels Library (libdisk, \\-ldisk)") Modified: projects/clang360-import/etc/rc.d/jail ============================================================================== --- projects/clang360-import/etc/rc.d/jail Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/etc/rc.d/jail Sat Feb 7 12:57:40 2015 (r278351) @@ -28,7 +28,7 @@ extra_commands="config console status" need_dad_wait= -# extact_var jail name param num defval +# extract_var jail name param num defval # Extract value from ${jail_$jail_$name} or ${jail_$name} and # set it to $param. If not defined, $defval is used. # When $num is [0-9]*, ${jail_$jail_$name$num} are looked up and Modified: projects/clang360-import/etc/rc.d/routing ============================================================================== --- projects/clang360-import/etc/rc.d/routing Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/etc/rc.d/routing Sat Feb 7 12:57:40 2015 (r278351) @@ -165,13 +165,14 @@ static_inet() static_inet6() { - local _action _if _skip fibmod fibs + local _action _if _skip fibmod fibs allfibs _action=$1 _if=$2 # get the number of FIBs supported. fibs=$((`${SYSCTL_N} net.fibs` - 1)) - if [ "$fibs" -gt 0 ]; then + allfibs=`${SYSCTL_N} net.add_addr_allfibs` + if [ "$fibs" -gt 0 ] && [ "$allfibs" -ne 0 ]; then fibmod="-fib 0-$fibs" else fibmod= Modified: projects/clang360-import/lib/Makefile ============================================================================== --- projects/clang360-import/lib/Makefile Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/lib/Makefile Sat Feb 7 12:57:40 2015 (r278351) @@ -41,6 +41,7 @@ SUBDIR= ${SUBDIR_ORDERED} \ ${_libcom_err} \ libcompat \ libcrypt \ + libdevctl \ libdevinfo \ libdevstat \ libdpv \ Modified: projects/clang360-import/lib/csu/powerpc64/Makefile ============================================================================== --- projects/clang360-import/lib/csu/powerpc64/Makefile Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/lib/csu/powerpc64/Makefile Sat Feb 7 12:57:40 2015 (r278351) @@ -9,6 +9,10 @@ CFLAGS+= -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include \ -mlongcall +# XXX: See the log for r232932 as to why the above -mlongcall is needed. Since +# clang doesn't support -mlongcall, and testing shows a clang linked with a +# clang-built csu segfaults, this must currently be compiled with gcc. Once +# clang supports -mlongcall, or we get a fixed ld, this can be revisited. CC:= gcc COMPILER_TYPE:= gcc Modified: projects/clang360-import/lib/libc/gen/disklabel.c ============================================================================== --- projects/clang360-import/lib/libc/gen/disklabel.c Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/lib/libc/gen/disklabel.c Sat Feb 7 12:57:40 2015 (r278351) @@ -85,10 +85,13 @@ getdiskbyname(const char *name) cq++, cp++; *cq = '\0'; - if (cgetstr(buf, "ty", &cq) > 0 && strcmp(cq, "removable") == 0) - dp->d_flags |= D_REMOVABLE; - else if (cq && strcmp(cq, "simulated") == 0) - dp->d_flags |= D_RAMDISK; + if (cgetstr(buf, "ty", &cq) > 0) { + if (strcmp(cq, "removable") == 0) + dp->d_flags |= D_REMOVABLE; + else if (cq && strcmp(cq, "simulated") == 0) + dp->d_flags |= D_RAMDISK; + free(cq); + } if (cgetcap(buf, "sf", ':') != NULL) dp->d_flags |= D_BADSECT; @@ -100,9 +103,10 @@ getdiskbyname(const char *name) getnumdflt(dp->d_nsectors, "ns", 0); getnumdflt(dp->d_ncylinders, "nc", 0); - if (cgetstr(buf, "dt", &cq) > 0) + if (cgetstr(buf, "dt", &cq) > 0) { dp->d_type = gettype(cq, dktypenames); - else + free(cq); + } else getnumdflt(dp->d_type, "dt", 0); getnumdflt(dp->d_secpercyl, "sc", dp->d_nsectors * dp->d_ntracks); getnumdflt(dp->d_secperunit, "su", dp->d_secpercyl * dp->d_ncylinders); @@ -140,8 +144,11 @@ getdiskbyname(const char *name) pp->p_frag = 8; } getnumdflt(pp->p_fstype, ptype, 0); - if (pp->p_fstype == 0 && cgetstr(buf, ptype, &cq) > 0) - pp->p_fstype = gettype(cq, fstypenames); + if (pp->p_fstype == 0) + if (cgetstr(buf, ptype, &cq) >= 0) { + pp->p_fstype = gettype(cq, fstypenames); + free(cq); + } max = p; } } Modified: projects/clang360-import/lib/libc/stdlib/tdelete.c ============================================================================== --- projects/clang360-import/lib/libc/stdlib/tdelete.c Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/lib/libc/stdlib/tdelete.c Sat Feb 7 12:57:40 2015 (r278351) @@ -14,7 +14,7 @@ #include #if 0 #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: tdelete.c,v 1.2 1999/09/16 11:45:37 lukem Exp $"); +__RCSID("$NetBSD: tdelete.c,v 1.6 2012/06/25 22:32:45 abs Exp $"); #endif /* LIBC_SCCS and not lint */ #endif __FBSDID("$FreeBSD$"); @@ -25,9 +25,9 @@ __FBSDID("$FreeBSD$"); /* - * delete node with given key + * find a node with given key * - * vkey: key to be deleted + * vkey: key to be found * vrootp: address of the root of the tree * compar: function to carry out node comparisons */ @@ -65,7 +65,8 @@ tdelete(const void * __restrict vkey, vo q->rlink = (*rootp)->rlink; } } - free(*rootp); /* D4: Free node */ + if (p != *rootp) + free(*rootp); /* D4: Free node */ *rootp = q; /* link parent to new node */ return p; } Modified: projects/clang360-import/lib/libdevinfo/devinfo.h ============================================================================== --- projects/clang360-import/lib/libdevinfo/devinfo.h Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/lib/libdevinfo/devinfo.h Sat Feb 7 12:57:40 2015 (r278351) @@ -50,7 +50,7 @@ struct devinfo_dev { char *dd_location; /* Where bus thinks dev at */ uint32_t dd_devflags; /* API flags */ uint16_t dd_flags; /* internal dev flags */ - devinfo_state_t dd_state; /* attacement state of dev */ + devinfo_state_t dd_state; /* attachment state of dev */ }; struct devinfo_rman { Modified: projects/clang360-import/lib/libnetgraph/debug.c ============================================================================== --- projects/clang360-import/lib/libnetgraph/debug.c Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/lib/libnetgraph/debug.c Sat Feb 7 12:57:40 2015 (r278351) @@ -62,12 +62,15 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include #include #include #include +#include #include #include #include @@ -81,15 +84,20 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include +#include #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -129,12 +137,15 @@ static const struct ng_cookie cookies[] COOKIE(ATMLLC), COOKIE(BPF), COOKIE(BRIDGE), + COOKIE(CAR), COOKIE(CISCO), + COOKIE(DEFLATE), COOKIE(DEVICE), COOKIE(ECHO), COOKIE(EIFACE), COOKIE(ETF), COOKIE(ETHER), + COOKIE(ETHER_ECHO), COOKIE(FRAMERELAY), COOKIE(GIF), COOKIE(GIF_DEMUX), @@ -149,15 +160,20 @@ static const struct ng_cookie cookies[] COOKIE(LMI), COOKIE(MPPC), COOKIE(NAT), + COOKIE(NETFLOW), COOKIE(ONE2MANY), + COOKIE(PATCH), + COOKIE(PIPE), COOKIE(PPP), COOKIE(PPPOE), COOKIE(PPTPGRE), + COOKIE(PRED1), COOKIE(RFC1490), COOKIE(SOCKET), COOKIE(SOURCE), COOKIE(SPLIT), COOKIE(SPPP), + COOKIE(TAG), COOKIE(TCPMSS), COOKIE(TEE), COOKIE(TTY), @@ -181,9 +197,8 @@ NgSetDebug(int level) { int old = _gNgDebugLevel; - if (level < 0) - level = old; - _gNgDebugLevel = level; + if (level >= 0) + _gNgDebugLevel = level; return (old); } @@ -225,10 +240,10 @@ _NgDebugMsg(const struct ng_mesg *msg, c /* Display header stuff */ NGLOGX("NG_MESG :"); NGLOGX(" vers %d", msg->header.version); - NGLOGX(" arglen %d", msg->header.arglen); - NGLOGX(" flags %ld", msg->header.flags); - NGLOGX(" token %lu", (u_long)msg->header.token); - NGLOGX(" cookie %s (%d)", + NGLOGX(" arglen %u", msg->header.arglen); + NGLOGX(" flags %x", msg->header.flags); + NGLOGX(" token %u", msg->header.token); + NGLOGX(" cookie %s (%u)", NgCookie(msg->header.typecookie), msg->header.typecookie); /* At lower debugging levels, skip ASCII translation */ Modified: projects/clang360-import/lib/libthr/thread/thr_barrier.c ============================================================================== --- projects/clang360-import/lib/libthr/thread/thr_barrier.c Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/lib/libthr/thread/thr_barrier.c Sat Feb 7 12:57:40 2015 (r278351) @@ -86,16 +86,13 @@ _pthread_barrier_init(pthread_barrier_t if (barrier == NULL || count <= 0) return (EINVAL); - bar = malloc(sizeof(struct pthread_barrier)); + bar = calloc(1, sizeof(struct pthread_barrier)); if (bar == NULL) return (ENOMEM); _thr_umutex_init(&bar->b_lock); _thr_ucond_init(&bar->b_cv); - bar->b_cycle = 0; - bar->b_waiters = 0; bar->b_count = count; - bar->b_refcount = 0; *barrier = bar; return (0); Modified: projects/clang360-import/lib/msun/src/s_scalbln.c ============================================================================== --- projects/clang360-import/lib/msun/src/s_scalbln.c Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/lib/msun/src/s_scalbln.c Sat Feb 7 12:57:40 2015 (r278351) @@ -27,38 +27,28 @@ #include __FBSDID("$FreeBSD$"); -#include #include +#define NMAX 65536 +#define NMIN -65536 + double -scalbln (double x, long n) +scalbln(double x, long n) { - int in; - in = (int)n; - if (in != n) - in = (n > 0) ? INT_MAX: INT_MIN; - return (scalbn(x, in)); + return (scalbn(x, (n > NMAX) ? NMAX : (n < NMIN) ? NMIN : (int)n)); } float -scalblnf (float x, long n) +scalblnf(float x, long n) { - int in; - in = (int)n; - if (in != n) - in = (n > 0) ? INT_MAX: INT_MIN; - return (scalbnf(x, in)); + return (scalbnf(x, (n > NMAX) ? NMAX : (n < NMIN) ? NMIN : (int)n)); } long double -scalblnl (long double x, long n) +scalblnl(long double x, long n) { - int in; - in = (int)n; - if (in != n) - in = (n > 0) ? INT_MAX: INT_MIN; - return (scalbnl(x, in)); + return (scalbnl(x, (n > NMAX) ? NMAX : (n < NMIN) ? NMIN : (int)n)); } Modified: projects/clang360-import/share/man/man4/witness.4 ============================================================================== --- projects/clang360-import/share/man/man4/witness.4 Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/share/man/man4/witness.4 Sat Feb 7 12:57:40 2015 (r278351) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 30, 2012 +.Dd February 6, 2015 .Dt WITNESS 4 .Os .Sh NAME @@ -32,7 +32,9 @@ .Nd lock validation facility .Sh SYNOPSIS .Cd options WITNESS +.Cd options WITNESS_COUNT .Cd options WITNESS_KDB +.Cd options WITNESS_NO_VNODE .Cd options WITNESS_SKIPSPIN .Sh DESCRIPTION The @@ -56,6 +58,28 @@ does not recurse on a non-recursive lock or attempt an upgrade on a shared lock held by another thread. If any of these checks fail, then the kernel will panic. .Pp +The +.Dv WITNESS_COUNT +kernel option controls the maximum number of +.Xr witness 4 +entries that are tracked in the kernel. +The maximum number of entries can be queried via the +.Va debug.witness.count +sysctl. +It can also be set from the +.Xr loader 8 +via the +.Va debug.witness.count +environment variable. +.Pp +The +.Dv WITNESS_NO_VNODE +kernel option tells +.Xr witness 4 +to ignore locking issues between +.Xr vnode 9 +objects. +.Pp The flag that controls whether or not the kernel debugger is entered when a lock order violation is detected can be set in a variety of ways. By default, the flag is off, but if the Modified: projects/clang360-import/share/mk/bsd.libnames.mk ============================================================================== --- projects/clang360-import/share/mk/bsd.libnames.mk Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/share/mk/bsd.libnames.mk Sat Feb 7 12:57:40 2015 (r278351) @@ -39,6 +39,7 @@ LIBCRYPT?= ${DESTDIR}${LIBDIR}/libcrypt. LIBCRYPTO?= ${DESTDIR}${LIBDIR}/libcrypto.a LIBCTF?= ${DESTDIR}${LIBDIR}/libctf.a LIBCURSES?= ${DESTDIR}${LIBDIR}/libcurses.a +LIBDEVCTL?= ${DESTDIR}${LIBDIR}/libdevctl.a LIBDEVINFO?= ${DESTDIR}${LIBDIR}/libdevinfo.a LIBDEVSTAT?= ${DESTDIR}${LIBDIR}/libdevstat.a LIBDIALOG?= ${DESTDIR}${LIBDIR}/libdialog.a Modified: projects/clang360-import/share/mk/src.libnames.mk ============================================================================== --- projects/clang360-import/share/mk/src.libnames.mk Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/share/mk/src.libnames.mk Sat Feb 7 12:57:40 2015 (r278351) @@ -72,6 +72,7 @@ _LIBRARIES= \ ctf \ cuse \ cxxrt \ + devctl \ devinfo \ devstat \ dialog \ Modified: projects/clang360-import/sys/amd64/amd64/mp_machdep.c ============================================================================== --- projects/clang360-import/sys/amd64/amd64/mp_machdep.c Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/amd64/amd64/mp_machdep.c Sat Feb 7 12:57:40 2015 (r278351) @@ -1065,14 +1065,27 @@ ipi_startup(int apic_id, int vector) { /* + * This attempts to follow the algorithm described in the + * Intel Multiprocessor Specification v1.4 in section B.4. + * For each IPI, we allow the local APIC ~20us to deliver the + * IPI. If that times out, we panic. + */ + + /* * first we do an INIT IPI: this INIT IPI might be run, resetting * and running the target CPU. OR this INIT IPI might be latched (P5 * bug), CPU waiting for STARTUP IPI. OR this INIT IPI might be * ignored. */ - lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | + lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_LEVEL | APIC_LEVEL_ASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_INIT, apic_id); - lapic_ipi_wait(-1); + lapic_ipi_wait(20); + + /* Explicitly deassert the INIT IPI. */ + lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_LEVEL | + APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_INIT, + apic_id); + DELAY(10000); /* wait ~10mS */ /* @@ -1084,9 +1097,11 @@ ipi_startup(int apic_id, int vector) * will run. */ lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | - APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_STARTUP | + APIC_LEVEL_ASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_STARTUP | vector, apic_id); - lapic_ipi_wait(-1); + if (!lapic_ipi_wait(20)) + panic("Failed to deliver first STARTUP IPI to APIC %d", + apic_id); DELAY(200); /* wait ~200uS */ /* @@ -1096,9 +1111,12 @@ ipi_startup(int apic_id, int vector) * recognized after hardware RESET or INIT IPI. */ lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | - APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_STARTUP | + APIC_LEVEL_ASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_STARTUP | vector, apic_id); - lapic_ipi_wait(-1); + if (!lapic_ipi_wait(20)) + panic("Failed to deliver second STARTUP IPI to APIC %d", + apic_id); + DELAY(200); /* wait ~200uS */ } Modified: projects/clang360-import/sys/arm/broadcom/bcm2835/files.bcm2835 ============================================================================== --- projects/clang360-import/sys/arm/broadcom/bcm2835/files.bcm2835 Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/arm/broadcom/bcm2835/files.bcm2835 Sat Feb 7 12:57:40 2015 (r278351) @@ -29,21 +29,21 @@ dev/mbox/mbox_if.m standard dev/ofw/ofw_cpu.c standard # VideoCore driver -contrib/vchiq/interface/compat/vchi_bsd.c standard \ +contrib/vchiq/interface/compat/vchi_bsd.c optional vchiq \ compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" -contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c standard \ +contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c optional vchiq \ compile-with "${NORMAL_C} -Wno-unused -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" -contrib/vchiq/interface/vchiq_arm/vchiq_arm.c standard \ +contrib/vchiq/interface/vchiq_arm/vchiq_arm.c optional vchiq \ compile-with "${NORMAL_C} -Wno-unused -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" -contrib/vchiq/interface/vchiq_arm/vchiq_connected.c standard \ +contrib/vchiq/interface/vchiq_arm/vchiq_connected.c optional vchiq \ compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" -contrib/vchiq/interface/vchiq_arm/vchiq_core.c standard \ +contrib/vchiq/interface/vchiq_arm/vchiq_core.c optional vchiq \ compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" -contrib/vchiq/interface/vchiq_arm/vchiq_kern_lib.c standard \ +contrib/vchiq/interface/vchiq_arm/vchiq_kern_lib.c optional vchiq \ compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" -contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c standard \ +contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c optional vchiq \ compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" -contrib/vchiq/interface/vchiq_arm/vchiq_shim.c standard \ +contrib/vchiq/interface/vchiq_arm/vchiq_shim.c optional vchiq \ compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" -contrib/vchiq/interface/vchiq_arm/vchiq_util.c standard \ +contrib/vchiq/interface/vchiq_arm/vchiq_util.c optional vchiq \ compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" Modified: projects/clang360-import/sys/arm/conf/RPI-B ============================================================================== --- projects/clang360-import/sys/arm/conf/RPI-B Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/arm/conf/RPI-B Sat Feb 7 12:57:40 2015 (r278351) @@ -129,9 +129,12 @@ device smsc device spibus device bcm2835_spi +device vchiq + # Flattened Device Tree options FDT # Configure using FDT/DTB data # Note: DTB is normally loaded and modified by RPi boot loader, then # handed to kernel via U-Boot and ubldr. #options FDT_DTB_STATIC -makeoptions FDT_DTS_FILE=rpi.dts +#makeoptions FDT_DTS_FILE=rpi.dts +makeoptions MODULES_EXTRA=dtb/rpi Modified: projects/clang360-import/sys/boot/amd64/boot1.efi/fat.tmpl.bz2.uu ============================================================================== --- projects/clang360-import/sys/boot/amd64/boot1.efi/fat.tmpl.bz2.uu Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/boot/amd64/boot1.efi/fat.tmpl.bz2.uu Sat Feb 7 12:57:40 2015 (r278351) @@ -2,20 +2,19 @@ FAT template boot filesystem created by DO NOT EDIT $FreeBSD$ begin 644 fat.tmpl.bz2 -M0EIH.3%!62936=AO?&0`&J9____[ZZKJJ_^N_ZO^Z_^[OO_\`5`(0!0&#$D" -M0$)$2&(H:`81HT#)D!H-#U`T#31IH-&(``R8$9_I)6[MY/, -M(H=/()+4&!(3V0"20C3J5$L5@2`219,"T6JI,@0"2*2\=LAD6=>N6(8QSW'U+N42P^'5X@7X``23=EA``#Z,O)^-VTX@ -M`+E!=,&6PV11C:*D8K#^<%FTG-%!@PR72@\ZU0BF1Y] -MF-FPGL2L>4QCU&O/>89^#H$6^<;&WKC9W52KUX."CM6+GD;(=1!MUD,,?Y[] -MTLAG0];,:B^]M%BH0J1":_C-*2I9R3AS#,&0>$RCY'T/R?HR!?'5$MILQ:!" -M+;10A*!&^<(_/8>D8I-DTU,)ZAZ0VA-!M0T'J`>H#"9 +M'I#0-H&HQI&0&3&FH>H>*`JHHU3V]1%/4/2``T#0`!H``#0`````#1H,@``6 +M'1&G'&@?$6[T#A)?X8$A160"20BO#")0J4TB1*4GXF$B4I,&>43+=_?K=#3* +M6]R"ZNKJZI,9*68E8*E2Q +M4J5*E3'(1830A"$(12A-"<(0A#]VD)H0A"$,>I0FA"$(0I\>P^=F5:M6K5JU +M:DI3:64UN;[7%5B]Y-^\]@_K@B:N\/,5F%&H<\G#IXQXAEFC&D?![6%0'6MR +MX1@@%FC"FD`M7,/SXFNG:2`'-0<-C$8^+$N.7M1B,^6)9,DV9,0A\OL<:C"L +ML1V&,<\9YRB>XV#BG")'6NKRK^("UF2XO?_L!#29">MGDF$R3).!PX&%E,4C +M''=(FL1.`_3?CN@-IB2PI3!FF\<8X.X@D,>CA90I)#M$XRPNDFJELL<3=1?8 +M2B7\5Z64,!7Z;EEBW-MXN-4IJ@W$462]-*\YCR,-B,5[W?=3&L/U>SX,WV#\ +M\B`:I"'0Z)5"$1B.E)(K[5I4RS`%R$>Y\D0NR*,;<9CZ:^V3P(I?Dcs_login_cv, "cfiscsi_login"); #endif - cs->cs_conn = icl_new_conn(NULL, "cfiscsi", &cs->cs_lock); + cs->cs_conn = icl_new_conn(offload, "cfiscsi", &cs->cs_lock); + if (cs->cs_conn == NULL) { + free(cs, M_CFISCSI); + return (NULL); + } cs->cs_conn->ic_receive = cfiscsi_receive_callback; cs->cs_conn->ic_error = cfiscsi_error_callback; cs->cs_conn->ic_prv0 = cs; @@ -1325,7 +1329,7 @@ cfiscsi_accept(struct socket *so, struct { struct cfiscsi_session *cs; - cs = cfiscsi_session_new(&cfiscsi_softc); + cs = cfiscsi_session_new(&cfiscsi_softc, NULL); if (cs == NULL) { CFISCSI_WARN("failed to create session"); return; @@ -1469,7 +1473,7 @@ cfiscsi_ioctl_handoff(struct ctl_iscsi * mtx_unlock(&cfiscsi_softc.lock); } else { #endif - cs = cfiscsi_session_new(softc); + cs = cfiscsi_session_new(softc, cihp->offload); if (cs == NULL) { ci->status = CTL_ISCSI_ERROR; snprintf(ci->error_str, sizeof(ci->error_str), @@ -1620,6 +1624,7 @@ cfiscsi_ioctl_list(struct ctl_iscsi *ci) "%zd" "%d" "%d" + "%s" "\n", cs->cs_id, cs->cs_initiator_name, cs->cs_initiator_addr, cs->cs_initiator_alias, @@ -1629,7 +1634,8 @@ cfiscsi_ioctl_list(struct ctl_iscsi *ci) cs->cs_conn->ic_data_crc32c ? "CRC32C" : "None", cs->cs_max_data_segment_length, cs->cs_immediate_data, - cs->cs_conn->ic_iser); + cs->cs_conn->ic_iser, + cs->cs_conn->ic_offload); if (error != 0) break; } @@ -1749,6 +1755,26 @@ cfiscsi_ioctl_logout(struct ctl_iscsi *c ci->status = CTL_ISCSI_OK; } +static void +cfiscsi_ioctl_limits(struct ctl_iscsi *ci) +{ + struct ctl_iscsi_limits_params *cilp; + int error; + + cilp = (struct ctl_iscsi_limits_params *)&(ci->data); + + error = icl_limits(cilp->offload, &cilp->data_segment_limit); + if (error != 0) { + ci->status = CTL_ISCSI_ERROR; + snprintf(ci->error_str, sizeof(ci->error_str), + "%s: icl_limits failed with error %d", + __func__, error); + return; + } + + ci->status = CTL_ISCSI_OK; +} + #ifdef ICL_KERNEL_PROXY static void cfiscsi_ioctl_listen(struct ctl_iscsi *ci) @@ -2176,6 +2202,9 @@ cfiscsi_ioctl(struct cdev *dev, case CTL_ISCSI_LOGOUT: cfiscsi_ioctl_logout(ci); break; + case CTL_ISCSI_LIMITS: + cfiscsi_ioctl_limits(ci); + break; #ifdef ICL_KERNEL_PROXY case CTL_ISCSI_LISTEN: cfiscsi_ioctl_listen(ci); Modified: projects/clang360-import/sys/cam/ctl/ctl_ioctl.h ============================================================================== --- projects/clang360-import/sys/cam/ctl/ctl_ioctl.h Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/cam/ctl/ctl_ioctl.h Sat Feb 7 12:57:40 2015 (r278351) @@ -657,6 +657,7 @@ typedef enum { CTL_ISCSI_LIST, CTL_ISCSI_LOGOUT, CTL_ISCSI_TERMINATE, + CTL_ISCSI_LIMITS, #if defined(ICL_KERNEL_PROXY) || 1 /* * We actually need those in all cases, but leave the ICL_KERNEL_PROXY, @@ -677,6 +678,7 @@ typedef enum { #define CTL_ISCSI_NAME_LEN 224 /* 223 bytes, by RFC 3720, + '\0' */ #define CTL_ISCSI_ADDR_LEN 47 /* INET6_ADDRSTRLEN + '\0' */ #define CTL_ISCSI_ALIAS_LEN 128 /* Arbitrary. */ +#define CTL_ISCSI_OFFLOAD_LEN 8 /* Arbitrary. */ struct ctl_iscsi_handoff_params { char initiator_name[CTL_ISCSI_NAME_LEN]; @@ -698,11 +700,12 @@ struct ctl_iscsi_handoff_params { uint32_t max_burst_length; uint32_t first_burst_length; uint32_t immediate_data; + char offload[CTL_ISCSI_OFFLOAD_LEN]; #ifdef ICL_KERNEL_PROXY int connection_id; - int spare[3]; + int spare[1]; #else - int spare[4]; + int spare[2]; #endif }; @@ -733,6 +736,14 @@ struct ctl_iscsi_terminate_params { int spare[4]; }; +struct ctl_iscsi_limits_params { + char offload[CTL_ISCSI_OFFLOAD_LEN]; + /* passed to kernel */ + size_t data_segment_limit; + /* passed to userland */ + int spare[4]; +}; + #ifdef ICL_KERNEL_PROXY struct ctl_iscsi_listen_params { int iser; @@ -780,6 +791,7 @@ union ctl_iscsi_data { struct ctl_iscsi_list_params list; struct ctl_iscsi_logout_params logout; struct ctl_iscsi_terminate_params terminate; + struct ctl_iscsi_limits_params limits; #ifdef ICL_KERNEL_PROXY struct ctl_iscsi_listen_params listen; struct ctl_iscsi_accept_params accept; Modified: projects/clang360-import/sys/conf/files ============================================================================== --- projects/clang360-import/sys/conf/files Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/conf/files Sat Feb 7 12:57:40 2015 (r278351) @@ -3193,7 +3193,7 @@ libkern/jenkins_hash.c standard libkern/murmur3_32.c standard libkern/mcount.c optional profiling-routine libkern/memcchr.c standard -libkern/memchr.c optional fdt | gdb +libkern/memchr.c standard libkern/memcmp.c standard libkern/memmem.c optional gdb libkern/qsort.c standard Modified: projects/clang360-import/sys/conf/kern.pre.mk ============================================================================== --- projects/clang360-import/sys/conf/kern.pre.mk Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/conf/kern.pre.mk Sat Feb 7 12:57:40 2015 (r278351) @@ -174,7 +174,7 @@ SYSTEM_OBJS= locore.o ${MDOBJS} ${OBJS} SYSTEM_OBJS+= ${SYSTEM_CFILES:.c=.o} SYSTEM_OBJS+= hack.So SYSTEM_LD= @${LD} -Bdynamic -T ${LDSCRIPT} ${_LDFLAGS} --no-warn-mismatch \ - -warn-common -export-dynamic -dynamic-linker /red/herring \ + --warn-common --export-dynamic --dynamic-linker /red/herring \ -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o SYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \ ${SIZE} ${.TARGET} ; chmod 755 ${.TARGET} Modified: projects/clang360-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h ============================================================================== --- projects/clang360-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h Sat Feb 7 12:57:40 2015 (r278351) @@ -317,12 +317,12 @@ typedef struct { /* Support for multiple INIs */ struct ar9300_ini_array { - u_int32_t *ia_array; + const u_int32_t *ia_array; u_int32_t ia_rows; u_int32_t ia_columns; }; #define INIT_INI_ARRAY(iniarray, array, rows, columns) do { \ - (iniarray)->ia_array = (u_int32_t *)(array); \ + (iniarray)->ia_array = (const u_int32_t *)(array); \ (iniarray)->ia_rows = (rows); \ (iniarray)->ia_columns = (columns); \ } while (0) Modified: projects/clang360-import/sys/dev/acpica/acpi.c ============================================================================== --- projects/clang360-import/sys/dev/acpica/acpi.c Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/dev/acpica/acpi.c Sat Feb 7 12:57:40 2015 (r278351) @@ -101,6 +101,7 @@ int acpi_quirks; /* Supported sleep states. */ static BOOLEAN acpi_sleep_states[ACPI_S_STATE_COUNT]; +static void acpi_lookup(void *arg, const char *name, device_t *dev); static int acpi_modevent(struct module *mod, int event, void *junk); static int acpi_probe(device_t dev); static int acpi_attach(device_t dev); @@ -671,8 +672,10 @@ acpi_attach(device_t dev) /* Register ACPI again to pass the correct argument of pm_func. */ power_pm_register(POWER_PM_TYPE_ACPI, acpi_pm_func, sc); - if (!acpi_disabled("bus")) + if (!acpi_disabled("bus")) { + EVENTHANDLER_REGISTER(dev_lookup, acpi_lookup, NULL, 1000); acpi_probe_children(dev); + } /* Update all GPEs and enable runtime GPEs. */ status = AcpiUpdateAllGpes(); @@ -3401,6 +3404,31 @@ acpi_disabled(char *subsys) return (0); } +static void +acpi_lookup(void *arg, const char *name, device_t *dev) +{ + ACPI_HANDLE handle; + + if (*dev != NULL) + return; + + /* + * Allow any handle name that is specified as an absolute path and + * starts with '\'. We could restrict this to \_SB and friends, + * but see acpi_probe_children() for notes on why we scan the entire + * namespace for devices. + * + * XXX: The pathname argument to AcpiGetHandle() should be fixed to + * be const. + */ + if (name[0] != '\\') + return; + if (ACPI_FAILURE(AcpiGetHandle(ACPI_ROOT_OBJECT, __DECONST(char *, name), + &handle))) + return; + *dev = acpi_get_device(handle); +} + /* * Control interface. * Copied: projects/clang360-import/sys/dev/cxgbe/if_cxl.c (from r278350, head/sys/dev/cxgbe/if_cxl.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang360-import/sys/dev/cxgbe/if_cxl.c Sat Feb 7 12:57:40 2015 (r278351, copy of r278350, head/sys/dev/cxgbe/if_cxl.c) @@ -0,0 +1,44 @@ +/*- + * Copyright (c) 2015 Chelsio Communications, Inc. + * All rights reserved. + * Written by: Navdeep Parhar + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +static int +mod_event(module_t mod, int cmd, void *arg) +{ + + return (0); +} +static moduledata_t if_cxl_mod = {"if_cxl", mod_event}; +DECLARE_MODULE(if_cxl, if_cxl_mod, SI_SUB_EXEC, SI_ORDER_ANY); +MODULE_VERSION(if_cxl, 1); +MODULE_DEPEND(if_cxl, cxl, 1, 1, 1); Modified: projects/clang360-import/sys/dev/cxgbe/t4_main.c ============================================================================== --- projects/clang360-import/sys/dev/cxgbe/t4_main.c Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/dev/cxgbe/t4_main.c Sat Feb 7 12:57:40 2015 (r278351) @@ -8215,7 +8215,12 @@ toe_capability(struct port_info *pi, int return (ENODEV); if (enable) { - if (!(sc->flags & FULL_INIT_DONE)) { + /* + * We need the port's queues around so that we're able to send + * and receive CPLs to/from the TOE even if the ifnet for this + * port has never been UP'd administratively. + */ + if (!(pi->flags & PORT_INIT_DONE)) { rc = cxgbe_init_synchronized(pi); if (rc) return (rc); Modified: projects/clang360-import/sys/dev/ipmi/ipmi.c ============================================================================== --- projects/clang360-import/sys/dev/ipmi/ipmi.c Sat Feb 7 12:52:34 2015 (r278350) +++ projects/clang360-import/sys/dev/ipmi/ipmi.c Sat Feb 7 12:57:40 2015 (r278351) @@ -49,6 +49,23 @@ __FBSDID("$FreeBSD$"); #include #endif +/* + * Driver request structures are allocated on the stack via alloca() to + * avoid calling malloc(), especially for the watchdog handler. + * To avoid too much stack growth, a previously allocated structure can + * be reused via IPMI_INIT_DRIVER_REQUEST(), but the caller should ensure + * that there is adequate reply/request space in the original allocation. + */ +#define IPMI_INIT_DRIVER_REQUEST(req, addr, cmd, reqlen, replylen) \ + bzero((req), sizeof(struct ipmi_request)); \ + ipmi_init_request((req), NULL, 0, (addr), (cmd), (reqlen), (replylen)) + +#define IPMI_ALLOC_DRIVER_REQUEST(req, addr, cmd, reqlen, replylen) \ + (req) = __builtin_alloca(sizeof(struct ipmi_request) + \ + (reqlen) + (replylen)); \ + IPMI_INIT_DRIVER_REQUEST((req), (addr), (cmd), (reqlen), \ + (replylen)) + #ifdef IPMB static int ipmi_ipmb_checksum(u_char, int); static int ipmi_ipmb_send_message(device_t, u_char, u_char, u_char, @@ -181,8 +198,8 @@ ipmi_dtor(void *arg) */ dev->ipmi_closing = 1; while (dev->ipmi_requests > 0) { - msleep(&dev->ipmi_requests, &sc->ipmi_lock, PWAIT, - "ipmidrain", 0); + msleep(&dev->ipmi_requests, &sc->ipmi_requests_lock, + PWAIT, "ipmidrain", 0); ipmi_purge_completed_requests(dev); } } @@ -215,7 +232,7 @@ ipmi_ipmb_send_message(device_t dev, u_c u_char slave_addr = 0x52; int error; - req = ipmi_alloc_driver_request(IPMI_ADDR(IPMI_APP_REQUEST, 0), + IPMI_ALLOC_DRIVER_REQUEST(req, IPMI_ADDR(IPMI_APP_REQUEST, 0), IPMI_SEND_MSG, data_len + 8, 0); req->ir_request[0] = channel; req->ir_request[1] = slave_addr; @@ -231,7 +248,6 @@ ipmi_ipmb_send_message(device_t dev, u_c ipmi_submit_driver_request(sc, req); error = req->ir_error; - ipmi_free_request(req); return (error); } @@ -243,7 +259,7 @@ ipmi_handle_attn(struct ipmi_softc *sc) int error; device_printf(sc->ipmi_dev, "BMC has a message\n"); - req = ipmi_alloc_driver_request(IPMI_ADDR(IPMI_APP_REQUEST, 0), + IPMI_ALLOC_DRIVER_REQUEST(req, IPMI_ADDR(IPMI_APP_REQUEST, 0), IPMI_GET_MSG_FLAGS, 0, 1); ipmi_submit_driver_request(sc, req); @@ -257,9 +273,7 @@ ipmi_handle_attn(struct ipmi_softc *sc) "watchdog about to go off"); } if (req->ir_reply[0] & IPMI_MSG_AVAILABLE) { - ipmi_free_request(req); - - req = ipmi_alloc_driver_request( + IPMI_ALLOC_DRIVER_REQUEST(req, IPMI_ADDR(IPMI_APP_REQUEST, 0), IPMI_GET_MSG, 0, 16); @@ -268,7 +282,6 @@ ipmi_handle_attn(struct ipmi_softc *sc) } } error = req->ir_error; - ipmi_free_request(req); return (error); } @@ -478,15 +491,11 @@ ipmi_ioctl(struct cdev *cdev, u_long cmd * Request management. */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sat Feb 7 23:25:58 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 851E8ADD; Sat, 7 Feb 2015 23:25:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6EE3569D; Sat, 7 Feb 2015 23:25:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t17NPwqJ076057; Sat, 7 Feb 2015 23:25:58 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t17NPvTf076052; Sat, 7 Feb 2015 23:25:57 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201502072325.t17NPvTf076052@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 7 Feb 2015 23:25:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r278367 - projects/clang360-import/contrib/llvm/lib/Target/Mips X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2015 23:25:58 -0000 Author: dim Date: Sat Feb 7 23:25:56 2015 New Revision: 278367 URL: https://svnweb.freebsd.org/changeset/base/278367 Log: Pull in r227089 from upstream llvm trunk (by Vasileios Kalintiris): [mips] Enable arithmetic and binary operations for the i128 data type. Summary: This patch adds support for some operations that were missing from 128-bit integer types (add/sub/mul/sdiv/udiv... etc.). With these changes we can support the __int128_t and __uint128_t data types from C/C++. Depends on D7125 Reviewers: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7143 This fixes "error in backend" messages, when compiling parts of compiler-rt using 128-bit integer types for mips64. Reported by: sbruno PR: 197259 Modified: projects/clang360-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp Modified: projects/clang360-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td Sat Feb 7 23:11:38 2015 (r278366) +++ projects/clang360-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td Sat Feb 7 23:25:56 2015 (r278367) @@ -440,6 +440,16 @@ def : MipsPat<(i64 (sext_inreg GPR64:$sr // bswap MipsPattern def : MipsPat<(bswap GPR64:$rt), (DSHD (DSBH GPR64:$rt))>; +// Carry pattern +def : MipsPat<(subc GPR64:$lhs, GPR64:$rhs), + (DSUBu GPR64:$lhs, GPR64:$rhs)>; +let AdditionalPredicates = [NotDSP] in { + def : MipsPat<(addc GPR64:$lhs, GPR64:$rhs), + (DADDu GPR64:$lhs, GPR64:$rhs)>; + def : MipsPat<(addc GPR64:$lhs, immSExt16:$imm), + (DADDiu GPR64:$lhs, imm:$imm)>; +} + //===----------------------------------------------------------------------===// // Instruction aliases //===----------------------------------------------------------------------===// Modified: projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp Sat Feb 7 23:11:38 2015 (r278366) +++ projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp Sat Feb 7 23:25:56 2015 (r278367) @@ -261,6 +261,9 @@ MipsTargetLowering::MipsTargetLowering(c setOperationAction(ISD::LOAD, MVT::i64, Custom); setOperationAction(ISD::STORE, MVT::i64, Custom); setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom); + setOperationAction(ISD::SHL_PARTS, MVT::i64, Custom); + setOperationAction(ISD::SRA_PARTS, MVT::i64, Custom); + setOperationAction(ISD::SRL_PARTS, MVT::i64, Custom); } if (!Subtarget.isGP64bit()) { @@ -2017,10 +2020,11 @@ SDValue MipsTargetLowering::lowerATOMIC_ SDValue MipsTargetLowering::lowerShiftLeftParts(SDValue Op, SelectionDAG &DAG) const { SDLoc DL(Op); + MVT VT = Subtarget.isGP64bit() ? MVT::i64 : MVT::i32; + SDValue Lo = Op.getOperand(0), Hi = Op.getOperand(1); SDValue Shamt = Op.getOperand(2); - - // if shamt < 32: + // if shamt < (VT.bits): // lo = (shl lo, shamt) // hi = (or (shl hi, shamt) (srl (srl lo, 1), ~shamt)) // else: @@ -2028,18 +2032,17 @@ SDValue MipsTargetLowering::lowerShiftLe // hi = (shl lo, shamt[4:0]) SDValue Not = DAG.getNode(ISD::XOR, DL, MVT::i32, Shamt, DAG.getConstant(-1, MVT::i32)); - SDValue ShiftRight1Lo = DAG.getNode(ISD::SRL, DL, MVT::i32, Lo, - DAG.getConstant(1, MVT::i32)); - SDValue ShiftRightLo = DAG.getNode(ISD::SRL, DL, MVT::i32, ShiftRight1Lo, - Not); - SDValue ShiftLeftHi = DAG.getNode(ISD::SHL, DL, MVT::i32, Hi, Shamt); - SDValue Or = DAG.getNode(ISD::OR, DL, MVT::i32, ShiftLeftHi, ShiftRightLo); - SDValue ShiftLeftLo = DAG.getNode(ISD::SHL, DL, MVT::i32, Lo, Shamt); + SDValue ShiftRight1Lo = DAG.getNode(ISD::SRL, DL, VT, Lo, + DAG.getConstant(1, VT)); + SDValue ShiftRightLo = DAG.getNode(ISD::SRL, DL, VT, ShiftRight1Lo, Not); + SDValue ShiftLeftHi = DAG.getNode(ISD::SHL, DL, VT, Hi, Shamt); + SDValue Or = DAG.getNode(ISD::OR, DL, VT, ShiftLeftHi, ShiftRightLo); + SDValue ShiftLeftLo = DAG.getNode(ISD::SHL, DL, VT, Lo, Shamt); SDValue Cond = DAG.getNode(ISD::AND, DL, MVT::i32, Shamt, DAG.getConstant(0x20, MVT::i32)); - Lo = DAG.getNode(ISD::SELECT, DL, MVT::i32, Cond, - DAG.getConstant(0, MVT::i32), ShiftLeftLo); - Hi = DAG.getNode(ISD::SELECT, DL, MVT::i32, Cond, ShiftLeftLo, Or); + Lo = DAG.getNode(ISD::SELECT, DL, VT, Cond, + DAG.getConstant(0, VT), ShiftLeftLo); + Hi = DAG.getNode(ISD::SELECT, DL, VT, Cond, ShiftLeftLo, Or); SDValue Ops[2] = {Lo, Hi}; return DAG.getMergeValues(Ops, DL); @@ -2050,8 +2053,9 @@ SDValue MipsTargetLowering::lowerShiftRi SDLoc DL(Op); SDValue Lo = Op.getOperand(0), Hi = Op.getOperand(1); SDValue Shamt = Op.getOperand(2); + MVT VT = Subtarget.isGP64bit() ? MVT::i64 : MVT::i32; - // if shamt < 32: + // if shamt < (VT.bits): // lo = (or (shl (shl hi, 1), ~shamt) (srl lo, shamt)) // if isSRA: // hi = (sra hi, shamt) @@ -2066,21 +2070,19 @@ SDValue MipsTargetLowering::lowerShiftRi // hi = 0 SDValue Not = DAG.getNode(ISD::XOR, DL, MVT::i32, Shamt, DAG.getConstant(-1, MVT::i32)); - SDValue ShiftLeft1Hi = DAG.getNode(ISD::SHL, DL, MVT::i32, Hi, - DAG.getConstant(1, MVT::i32)); - SDValue ShiftLeftHi = DAG.getNode(ISD::SHL, DL, MVT::i32, ShiftLeft1Hi, Not); - SDValue ShiftRightLo = DAG.getNode(ISD::SRL, DL, MVT::i32, Lo, Shamt); - SDValue Or = DAG.getNode(ISD::OR, DL, MVT::i32, ShiftLeftHi, ShiftRightLo); - SDValue ShiftRightHi = DAG.getNode(IsSRA ? ISD::SRA : ISD::SRL, DL, MVT::i32, - Hi, Shamt); + SDValue ShiftLeft1Hi = DAG.getNode(ISD::SHL, DL, VT, Hi, + DAG.getConstant(1, VT)); + SDValue ShiftLeftHi = DAG.getNode(ISD::SHL, DL, VT, ShiftLeft1Hi, Not); + SDValue ShiftRightLo = DAG.getNode(ISD::SRL, DL, VT, Lo, Shamt); + SDValue Or = DAG.getNode(ISD::OR, DL, VT, ShiftLeftHi, ShiftRightLo); + SDValue ShiftRightHi = DAG.getNode(IsSRA ? ISD::SRA : ISD::SRL, + DL, VT, Hi, Shamt); SDValue Cond = DAG.getNode(ISD::AND, DL, MVT::i32, Shamt, DAG.getConstant(0x20, MVT::i32)); - SDValue Shift31 = DAG.getNode(ISD::SRA, DL, MVT::i32, Hi, - DAG.getConstant(31, MVT::i32)); - Lo = DAG.getNode(ISD::SELECT, DL, MVT::i32, Cond, ShiftRightHi, Or); - Hi = DAG.getNode(ISD::SELECT, DL, MVT::i32, Cond, - IsSRA ? Shift31 : DAG.getConstant(0, MVT::i32), - ShiftRightHi); + SDValue Shift31 = DAG.getNode(ISD::SRA, DL, VT, Hi, DAG.getConstant(31, VT)); + Lo = DAG.getNode(ISD::SELECT, DL, VT, Cond, ShiftRightHi, Or); + Hi = DAG.getNode(ISD::SELECT, DL, VT, Cond, + IsSRA ? Shift31 : DAG.getConstant(0, VT), ShiftRightHi); SDValue Ops[2] = {Lo, Hi}; return DAG.getMergeValues(Ops, DL); Modified: projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp Sat Feb 7 23:11:38 2015 (r278366) +++ projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp Sat Feb 7 23:25:56 2015 (r278367) @@ -236,13 +236,31 @@ SDNode *MipsSEDAGToDAGISel::selectAddESu (Opc == ISD::SUBC || Opc == ISD::SUBE)) && "(ADD|SUB)E flag operand must come from (ADD|SUB)C/E insn"); + unsigned SLTuOp = Mips::SLTu, ADDuOp = Mips::ADDu; + if (Subtarget->isGP64bit()) { + SLTuOp = Mips::SLTu64; + ADDuOp = Mips::DADDu; + } + SDValue Ops[] = { CmpLHS, InFlag.getOperand(1) }; SDValue LHS = Node->getOperand(0), RHS = Node->getOperand(1); EVT VT = LHS.getValueType(); - SDNode *Carry = CurDAG->getMachineNode(Mips::SLTu, DL, VT, Ops); - SDNode *AddCarry = CurDAG->getMachineNode(Mips::ADDu, DL, VT, + SDNode *Carry = CurDAG->getMachineNode(SLTuOp, DL, VT, Ops); + + if (Subtarget->isGP64bit()) { + // On 64-bit targets, sltu produces an i64 but our backend currently says + // that SLTu64 produces an i32. We need to fix this in the long run but for + // now, just make the DAG type-correct by asserting the upper bits are zero. + Carry = CurDAG->getMachineNode(Mips::SUBREG_TO_REG, DL, VT, + CurDAG->getTargetConstant(0, VT), + SDValue(Carry, 0), + CurDAG->getTargetConstant(Mips::sub_32, VT)); + } + + SDNode *AddCarry = CurDAG->getMachineNode(ADDuOp, DL, VT, SDValue(Carry, 0), RHS); + return CurDAG->SelectNodeTo(Node, MOp, VT, MVT::Glue, LHS, SDValue(AddCarry, 0)); } @@ -641,7 +659,8 @@ std::pair MipsSEDAGToDAGI case ISD::SUBE: { SDValue InFlag = Node->getOperand(2); - Result = selectAddESubE(Mips::SUBu, InFlag, InFlag.getOperand(0), DL, Node); + unsigned Opc = Subtarget->isGP64bit() ? Mips::DSUBu : Mips::SUBu; + Result = selectAddESubE(Opc, InFlag, InFlag.getOperand(0), DL, Node); return std::make_pair(true, Result); } @@ -649,7 +668,8 @@ std::pair MipsSEDAGToDAGI if (Subtarget->hasDSP()) // Select DSP instructions, ADDSC and ADDWC. break; SDValue InFlag = Node->getOperand(2); - Result = selectAddESubE(Mips::ADDu, InFlag, InFlag.getValue(0), DL, Node); + unsigned Opc = Subtarget->isGP64bit() ? Mips::DADDu : Mips::ADDu; + Result = selectAddESubE(Opc, InFlag, InFlag.getValue(0), DL, Node); return std::make_pair(true, Result); } Modified: projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp ============================================================================== --- projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp Sat Feb 7 23:11:38 2015 (r278366) +++ projects/clang360-import/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp Sat Feb 7 23:25:56 2015 (r278367) @@ -122,6 +122,8 @@ MipsSETargetLowering::MipsSETargetLoweri setOperationAction(ISD::MUL, MVT::i64, Custom); if (Subtarget.isGP64bit()) { + setOperationAction(ISD::SMUL_LOHI, MVT::i64, Custom); + setOperationAction(ISD::UMUL_LOHI, MVT::i64, Custom); setOperationAction(ISD::MULHS, MVT::i64, Custom); setOperationAction(ISD::MULHU, MVT::i64, Custom); setOperationAction(ISD::SDIVREM, MVT::i64, Custom); @@ -200,6 +202,8 @@ MipsSETargetLowering::MipsSETargetLoweri if (Subtarget.hasMips64r6()) { // MIPS64r6 replaces the accumulator-based multiplies with a three register // instruction + setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand); + setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand); setOperationAction(ISD::MUL, MVT::i64, Legal); setOperationAction(ISD::MULHS, MVT::i64, Legal); setOperationAction(ISD::MULHU, MVT::i64, Legal);