Date: Fri, 23 Jan 2015 22:35:57 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r277616 - in projects/ifnet: . bin/freebsd-version bin/ln cddl/contrib/opensolaris/lib/libzfs/common cddl/contrib/opensolaris/lib/libzpool/common/sys contrib/elftoolchain/common contrib... Message-ID: <201501232235.t0NMZvY5042865@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: glebius Date: Fri Jan 23 22:35:55 2015 New Revision: 277616 URL: https://svnweb.freebsd.org/changeset/base/277616 Log: Merge head r257698 through r277615. Added: projects/ifnet/etc/newsyslog.conf.d/ - copied from r277615, head/etc/newsyslog.conf.d/ projects/ifnet/lib/libc/sys/futimens.c - copied unchanged from r277615, head/lib/libc/sys/futimens.c projects/ifnet/lib/libc/sys/utimensat.2 - copied unchanged from r277615, head/lib/libc/sys/utimensat.2 projects/ifnet/lib/libc/sys/utimensat.c - copied unchanged from r277615, head/lib/libc/sys/utimensat.c projects/ifnet/lib/libthr/arch/common/ - copied from r277615, head/lib/libthr/arch/common/ projects/ifnet/lib/libthr/thread/thr_ctrdtr.c - copied unchanged from r277615, head/lib/libthr/thread/thr_ctrdtr.c projects/ifnet/release/Makefile.vm - copied unchanged from r277615, head/release/Makefile.vm projects/ifnet/release/scripts/mk-vmimage.sh - copied unchanged from r277615, head/release/scripts/mk-vmimage.sh projects/ifnet/release/tools/gce.conf - copied unchanged from r277615, head/release/tools/gce.conf projects/ifnet/release/tools/openstack.conf - copied unchanged from r277615, head/release/tools/openstack.conf projects/ifnet/release/tools/vmimage.subr - copied unchanged from r277615, head/release/tools/vmimage.subr projects/ifnet/sys/arm/arm/bus_space_base.c - copied unchanged from r277615, head/sys/arm/arm/bus_space_base.c projects/ifnet/sys/dev/drm2/i915/i915_gem_stolen.c - copied unchanged from r277615, head/sys/dev/drm2/i915/i915_gem_stolen.c projects/ifnet/sys/dev/drm2/i915/intel_ddi.c - copied unchanged from r277615, head/sys/dev/drm2/i915/intel_ddi.c projects/ifnet/sys/dev/drm2/i915/intel_pm.c - copied unchanged from r277615, head/sys/dev/drm2/i915/intel_pm.c Deleted: projects/ifnet/lib/libthr/arch/amd64/amd64/pthread_md.c projects/ifnet/lib/libthr/arch/arm/Makefile.inc projects/ifnet/lib/libthr/arch/arm/arm/ projects/ifnet/lib/libthr/arch/i386/i386/pthread_md.c projects/ifnet/lib/libthr/arch/mips/Makefile.inc projects/ifnet/lib/libthr/arch/mips/mips/ projects/ifnet/lib/libthr/arch/powerpc/Makefile.inc projects/ifnet/lib/libthr/arch/powerpc/powerpc/ projects/ifnet/lib/libthr/arch/sparc64/sparc64/pthread_md.c projects/ifnet/release/amd64/mk-azure.sh projects/ifnet/release/amd64/mk-vmimage.sh projects/ifnet/release/i386/mk-azure.sh projects/ifnet/release/i386/mk-vmimage.sh projects/ifnet/sys/arm/arm/bus_space-v6.c projects/ifnet/sys/arm/lpc/lpc_space.c projects/ifnet/sys/arm/mv/bus_space.c projects/ifnet/sys/arm/samsung/s3c2xx0/s3c2xx0_space.c projects/ifnet/sys/arm/versatile/bus_space.c projects/ifnet/sys/arm/versatile/versatile_pci_bus_space.c projects/ifnet/sys/arm/versatile/versatile_pci_bus_space.h projects/ifnet/sys/arm/xilinx/zy7_bus_space.c projects/ifnet/sys/arm/xscale/i80321/obio_space.c projects/ifnet/sys/arm/xscale/i8134x/obio_space.c projects/ifnet/tools/regression/lib/libc/stdio/test-fmemopen.t Modified: projects/ifnet/Makefile.inc1 projects/ifnet/bin/freebsd-version/Makefile projects/ifnet/bin/ln/symlink.7 projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c projects/ifnet/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h projects/ifnet/contrib/elftoolchain/common/elfdefinitions.h projects/ifnet/contrib/elftoolchain/readelf/readelf.c projects/ifnet/contrib/gdb/gdb/remote.c projects/ifnet/contrib/gdb/gdb/std-regs.c projects/ifnet/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/ifnet/etc/Makefile projects/ifnet/lib/libc/include/libc_private.h projects/ifnet/lib/libc/sys/Makefile.inc projects/ifnet/lib/libc/sys/Symbol.map projects/ifnet/lib/libelftc/elftc_version.c projects/ifnet/lib/libstand/libstand.3 projects/ifnet/lib/libstand/printf.c projects/ifnet/lib/libthr/Makefile projects/ifnet/lib/libthr/arch/amd64/Makefile.inc projects/ifnet/lib/libthr/arch/amd64/include/pthread_md.h projects/ifnet/lib/libthr/arch/arm/include/pthread_md.h projects/ifnet/lib/libthr/arch/i386/Makefile.inc projects/ifnet/lib/libthr/arch/i386/include/pthread_md.h projects/ifnet/lib/libthr/arch/mips/include/pthread_md.h projects/ifnet/lib/libthr/arch/powerpc/include/pthread_md.h projects/ifnet/lib/libthr/arch/sparc64/Makefile.inc projects/ifnet/lib/libthr/arch/sparc64/include/pthread_md.h projects/ifnet/lib/libthr/thread/Makefile.inc projects/ifnet/lib/libthr/thread/thr_private.h projects/ifnet/lib/libthr/thread/thr_sig.c projects/ifnet/release/Makefile projects/ifnet/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/ifnet/release/release.conf.sample projects/ifnet/release/release.sh projects/ifnet/release/tools/azure.conf projects/ifnet/sbin/ping/ping.c projects/ifnet/share/man/man4/rights.4 projects/ifnet/share/man/man7/release.7 projects/ifnet/share/man/man9/Makefile projects/ifnet/share/man/man9/device_get_softc.9 projects/ifnet/share/man/man9/printf.9 projects/ifnet/share/man/man9/timeout.9 projects/ifnet/share/misc/committers-ports.dot projects/ifnet/sys/arm/allwinner/a20/files.a20 projects/ifnet/sys/arm/allwinner/files.a10 projects/ifnet/sys/arm/altera/socfpga/files.socfpga projects/ifnet/sys/arm/arm/bus_space_asm_generic.S projects/ifnet/sys/arm/arm/bus_space_generic.c projects/ifnet/sys/arm/arm/locore-v4.S projects/ifnet/sys/arm/arm/physmem.c projects/ifnet/sys/arm/arm/trap-v6.c projects/ifnet/sys/arm/at91/at91.c projects/ifnet/sys/arm/at91/files.at91 projects/ifnet/sys/arm/broadcom/bcm2835/files.bcm2835 projects/ifnet/sys/arm/cavium/cns11xx/econa.c projects/ifnet/sys/arm/cavium/cns11xx/files.econa projects/ifnet/sys/arm/conf/RK3188 projects/ifnet/sys/arm/freescale/imx/files.imx51 projects/ifnet/sys/arm/freescale/imx/files.imx53 projects/ifnet/sys/arm/freescale/imx/files.imx6 projects/ifnet/sys/arm/freescale/imx/imx6_ccm.c projects/ifnet/sys/arm/freescale/imx/imx_iomux.c projects/ifnet/sys/arm/freescale/vybrid/files.vybrid projects/ifnet/sys/arm/include/bus.h projects/ifnet/sys/arm/include/cpu-v6.h projects/ifnet/sys/arm/include/md_var.h projects/ifnet/sys/arm/lpc/files.lpc projects/ifnet/sys/arm/mv/files.mv projects/ifnet/sys/arm/rockchip/files.rk30xx projects/ifnet/sys/arm/samsung/exynos/files.exynos5 projects/ifnet/sys/arm/samsung/s3c2xx0/files.s3c2xx0 projects/ifnet/sys/arm/samsung/s3c2xx0/s3c24x0.c projects/ifnet/sys/arm/samsung/s3c2xx0/s3c2xx0var.h projects/ifnet/sys/arm/samsung/s3c2xx0/uart_cpu_s3c2410.c projects/ifnet/sys/arm/ti/am335x/am335x_lcd.c projects/ifnet/sys/arm/ti/files.ti projects/ifnet/sys/arm/ti/ti_mbox.c projects/ifnet/sys/arm/ti/ti_pruss.c projects/ifnet/sys/arm/versatile/files.versatile projects/ifnet/sys/arm/versatile/versatile_pci.c projects/ifnet/sys/arm/xilinx/files.zynq7 projects/ifnet/sys/arm/xscale/i80321/ep80219_machdep.c projects/ifnet/sys/arm/xscale/i80321/files.ep80219 projects/ifnet/sys/arm/xscale/i80321/files.i80219 projects/ifnet/sys/arm/xscale/i80321/files.i80321 projects/ifnet/sys/arm/xscale/i80321/files.iq31244 projects/ifnet/sys/arm/xscale/i80321/i80321_space.c projects/ifnet/sys/arm/xscale/i80321/iq31244_machdep.c projects/ifnet/sys/arm/xscale/i80321/obio.c projects/ifnet/sys/arm/xscale/i80321/obiovar.h projects/ifnet/sys/arm/xscale/i80321/uart_cpu_i80321.c projects/ifnet/sys/arm/xscale/i8134x/crb_machdep.c projects/ifnet/sys/arm/xscale/i8134x/files.i81342 projects/ifnet/sys/arm/xscale/i8134x/i81342_space.c projects/ifnet/sys/arm/xscale/i8134x/obio.c projects/ifnet/sys/arm/xscale/i8134x/obiovar.h projects/ifnet/sys/arm/xscale/i8134x/uart_cpu_i81342.c projects/ifnet/sys/arm/xscale/ixp425/avila_ata.c projects/ifnet/sys/arm/xscale/ixp425/cambria_exp_space.c projects/ifnet/sys/arm/xscale/ixp425/ixp425_a4x_space.c projects/ifnet/sys/arm/xscale/ixp425/ixp425_pci_space.c projects/ifnet/sys/arm/xscale/ixp425/ixp425_space.c projects/ifnet/sys/arm/xscale/pxa/pxa_space.c projects/ifnet/sys/boot/fdt/dts/arm/rk3188-radxa-lite.dts projects/ifnet/sys/boot/fdt/dts/arm/rk3188-radxa.dts projects/ifnet/sys/boot/fdt/dts/arm/rk3188.dtsi projects/ifnet/sys/boot/i386/libi386/bootinfo64.c projects/ifnet/sys/cam/cam_xpt.c projects/ifnet/sys/cam/ctl/ctl.c projects/ifnet/sys/cddl/compat/opensolaris/sys/sunddi.h projects/ifnet/sys/cddl/compat/opensolaris/sys/time.h projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/gfs.c projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c projects/ifnet/sys/compat/freebsd32/freebsd32_misc.c projects/ifnet/sys/compat/freebsd32/freebsd32_proto.h projects/ifnet/sys/compat/freebsd32/freebsd32_syscall.h projects/ifnet/sys/compat/freebsd32/freebsd32_syscalls.c projects/ifnet/sys/compat/freebsd32/freebsd32_sysent.c projects/ifnet/sys/compat/freebsd32/freebsd32_systrace_args.c projects/ifnet/sys/compat/freebsd32/syscalls.master projects/ifnet/sys/contrib/rdma/krping/krping.c projects/ifnet/sys/dev/acpica/acpi_ec.c projects/ifnet/sys/dev/agp/agp_nvidia.c projects/ifnet/sys/dev/cx/cxddk.c projects/ifnet/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c projects/ifnet/sys/dev/cxgbe/iw_cxgbe/device.c projects/ifnet/sys/dev/dc/if_dc.c projects/ifnet/sys/dev/dcons/dcons.c projects/ifnet/sys/dev/dcons/dcons_crom.c projects/ifnet/sys/dev/dcons/dcons_os.h projects/ifnet/sys/dev/drm2/drm.h projects/ifnet/sys/dev/drm2/drmP.h projects/ifnet/sys/dev/drm2/drm_crtc.c projects/ifnet/sys/dev/drm2/drm_crtc.h projects/ifnet/sys/dev/drm2/drm_crtc_helper.c projects/ifnet/sys/dev/drm2/drm_crtc_helper.h projects/ifnet/sys/dev/drm2/drm_drv.c projects/ifnet/sys/dev/drm2/drm_edid.c projects/ifnet/sys/dev/drm2/drm_edid.h projects/ifnet/sys/dev/drm2/drm_edid_modes.h projects/ifnet/sys/dev/drm2/drm_fb_helper.c projects/ifnet/sys/dev/drm2/drm_ioctl.c projects/ifnet/sys/dev/drm2/drm_irq.c projects/ifnet/sys/dev/drm2/drm_memory.c projects/ifnet/sys/dev/drm2/drm_mode.h projects/ifnet/sys/dev/drm2/drm_pciids.h projects/ifnet/sys/dev/drm2/drm_stub.c projects/ifnet/sys/dev/drm2/i915/i915_debug.c projects/ifnet/sys/dev/drm2/i915/i915_dma.c projects/ifnet/sys/dev/drm2/i915/i915_drm.h projects/ifnet/sys/dev/drm2/i915/i915_drv.c projects/ifnet/sys/dev/drm2/i915/i915_drv.h projects/ifnet/sys/dev/drm2/i915/i915_gem.c projects/ifnet/sys/dev/drm2/i915/i915_gem_context.c projects/ifnet/sys/dev/drm2/i915/i915_gem_evict.c projects/ifnet/sys/dev/drm2/i915/i915_gem_execbuffer.c projects/ifnet/sys/dev/drm2/i915/i915_gem_gtt.c projects/ifnet/sys/dev/drm2/i915/i915_gem_tiling.c projects/ifnet/sys/dev/drm2/i915/i915_irq.c projects/ifnet/sys/dev/drm2/i915/i915_reg.h projects/ifnet/sys/dev/drm2/i915/i915_suspend.c projects/ifnet/sys/dev/drm2/i915/intel_bios.c projects/ifnet/sys/dev/drm2/i915/intel_crt.c projects/ifnet/sys/dev/drm2/i915/intel_display.c projects/ifnet/sys/dev/drm2/i915/intel_dp.c projects/ifnet/sys/dev/drm2/i915/intel_drv.h projects/ifnet/sys/dev/drm2/i915/intel_fb.c projects/ifnet/sys/dev/drm2/i915/intel_hdmi.c projects/ifnet/sys/dev/drm2/i915/intel_iic.c projects/ifnet/sys/dev/drm2/i915/intel_lvds.c projects/ifnet/sys/dev/drm2/i915/intel_modes.c projects/ifnet/sys/dev/drm2/i915/intel_overlay.c projects/ifnet/sys/dev/drm2/i915/intel_panel.c projects/ifnet/sys/dev/drm2/i915/intel_ringbuffer.c projects/ifnet/sys/dev/drm2/i915/intel_ringbuffer.h projects/ifnet/sys/dev/drm2/i915/intel_sdvo.c projects/ifnet/sys/dev/drm2/i915/intel_sprite.c projects/ifnet/sys/dev/drm2/i915/intel_tv.c projects/ifnet/sys/dev/drm2/radeon/atombios_encoders.c projects/ifnet/sys/dev/drm2/radeon/radeon_legacy_encoders.c projects/ifnet/sys/dev/firewire/firewire.c projects/ifnet/sys/dev/firewire/fwmem.c projects/ifnet/sys/dev/firewire/fwohci.c projects/ifnet/sys/dev/hwpmc/hwpmc_core.c projects/ifnet/sys/dev/hwpmc/pmc_events.h projects/ifnet/sys/dev/isp/isp.c projects/ifnet/sys/dev/isp/isp_freebsd.c projects/ifnet/sys/dev/mii/mii.c projects/ifnet/sys/dev/mmc/host/dwmmc.c projects/ifnet/sys/dev/mmc/host/dwmmc.h projects/ifnet/sys/dev/ofw/ofw_cpu.c projects/ifnet/sys/dev/usb/controller/ehci_ixp4xx.c projects/ifnet/sys/dev/usb/net/if_cdce.c projects/ifnet/sys/dev/usb/usb_generic.c projects/ifnet/sys/kern/capabilities.conf projects/ifnet/sys/kern/init_main.c projects/ifnet/sys/kern/init_sysent.c projects/ifnet/sys/kern/kern_condvar.c projects/ifnet/sys/kern/kern_descrip.c projects/ifnet/sys/kern/kern_lock.c projects/ifnet/sys/kern/kern_switch.c projects/ifnet/sys/kern/kern_synch.c projects/ifnet/sys/kern/kern_tc.c projects/ifnet/sys/kern/kern_thread.c projects/ifnet/sys/kern/kern_timeout.c projects/ifnet/sys/kern/subr_dummy_vdso_tc.c projects/ifnet/sys/kern/subr_prf.c projects/ifnet/sys/kern/subr_sleepqueue.c projects/ifnet/sys/kern/sys_pipe.c projects/ifnet/sys/kern/syscalls.c projects/ifnet/sys/kern/syscalls.master projects/ifnet/sys/kern/systrace_args.c projects/ifnet/sys/kern/vfs_syscalls.c projects/ifnet/sys/mips/include/cache_mipsNN.h projects/ifnet/sys/mips/mips/cache.c projects/ifnet/sys/mips/mips/cache_mipsNN.c projects/ifnet/sys/modules/drm2/i915kms/Makefile projects/ifnet/sys/net/ieee8023ad_lacp.c projects/ifnet/sys/net/if_lagg.c projects/ifnet/sys/net/pfvar.h projects/ifnet/sys/netinet/ip_carp.c projects/ifnet/sys/netinet/sctp_sysctl.c projects/ifnet/sys/netpfil/pf/pf.c projects/ifnet/sys/netpfil/pf/pf_if.c projects/ifnet/sys/netpfil/pf/pf_ioctl.c projects/ifnet/sys/netpfil/pf/pf_norm.c projects/ifnet/sys/netpfil/pf/pf_table.c projects/ifnet/sys/ofed/drivers/infiniband/core/device.c projects/ifnet/sys/ofed/drivers/infiniband/hw/mlx4/main.c projects/ifnet/sys/ofed/drivers/infiniband/hw/mthca/mthca_main.c projects/ifnet/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c projects/ifnet/sys/ofed/drivers/net/mlx4/en_main.c projects/ifnet/sys/ofed/drivers/net/mlx4/main.c projects/ifnet/sys/ofed/include/linux/completion.h projects/ifnet/sys/ofed/include/linux/module.h projects/ifnet/sys/powerpc/aim/locore64.S projects/ifnet/sys/powerpc/aim/machdep.c projects/ifnet/sys/powerpc/aim/mp_cpudep.c projects/ifnet/sys/powerpc/aim/trap_subr32.S projects/ifnet/sys/powerpc/aim/trap_subr64.S projects/ifnet/sys/powerpc/include/trap.h projects/ifnet/sys/powerpc/ofw/ofw_machdep.c projects/ifnet/sys/powerpc/ofw/rtas.c projects/ifnet/sys/powerpc/powerpc/elf64_machdep.c projects/ifnet/sys/powerpc/powerpc/mem.c projects/ifnet/sys/sys/_callout.h projects/ifnet/sys/sys/callout.h projects/ifnet/sys/sys/capsicum.h projects/ifnet/sys/sys/elf_common.h projects/ifnet/sys/sys/param.h projects/ifnet/sys/sys/pmc.h projects/ifnet/sys/sys/proc.h projects/ifnet/sys/sys/stat.h projects/ifnet/sys/sys/syscall.h projects/ifnet/sys/sys/syscall.mk projects/ifnet/sys/sys/syscallsubr.h projects/ifnet/sys/sys/sysproto.h projects/ifnet/sys/sys/vdso.h projects/ifnet/sys/x86/x86/tsc.c projects/ifnet/sys/x86/xen/pv.c projects/ifnet/tools/regression/file/flock/flock.c projects/ifnet/tools/tools/nanobsd/nanobsd.sh (contents, props changed) projects/ifnet/usr.bin/grep/file.c projects/ifnet/usr.bin/kdump/kdump.c projects/ifnet/usr.bin/vmstat/vmstat.c projects/ifnet/usr.sbin/config/config.y projects/ifnet/usr.sbin/iostat/iostat.c projects/ifnet/usr.sbin/pmcstudy/pmcstudy.c Directory Properties: projects/ifnet/ (props changed) projects/ifnet/cddl/ (props changed) projects/ifnet/cddl/contrib/opensolaris/ (props changed) projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/ (props changed) projects/ifnet/contrib/elftoolchain/ (props changed) projects/ifnet/contrib/gdb/ (props changed) projects/ifnet/contrib/llvm/ (props changed) projects/ifnet/contrib/llvm/tools/clang/ (props changed) projects/ifnet/etc/ (props changed) projects/ifnet/lib/libc/ (props changed) projects/ifnet/sbin/ (props changed) projects/ifnet/share/ (props changed) projects/ifnet/share/man/man4/ (props changed) projects/ifnet/sys/ (props changed) projects/ifnet/sys/boot/ (props changed) projects/ifnet/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/ifnet/Makefile.inc1 ============================================================================== --- projects/ifnet/Makefile.inc1 Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/Makefile.inc1 Fri Jan 23 22:35:55 2015 (r277616) @@ -1292,12 +1292,16 @@ _clang_tblgen= \ usr.bin/clang/clang-tblgen .endif +# ELF Tool Chain libraries are needed for ELF tools and dtrace tools. # dtrace tools are required for older bootstrap env and cross-build # pre libdwarf -.if ${MK_CDDL} != "no" && (${BOOTSTRAPPING} < 1100006 \ - || (${MACHINE} != ${TARGET} || ${MACHINE_ARCH} != ${TARGET_ARCH})) -_dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \ - lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge +.if ${BOOTSTRAPPING} < 1100006 || (${MACHINE} != ${TARGET} || \ + ${MACHINE_ARCH} != ${TARGET_ARCH}) +_elftoolchain_libs= lib/libelf lib/libdwarf +.if ${MK_CDDL} != "no" +_dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf cddl/usr.bin/ctfconvert \ + cddl/usr.bin/ctfmerge +.endif .endif # Default to building the GPL DTC, but build the BSDL one if users explicitly @@ -1324,6 +1328,7 @@ bootstrap-tools: .MAKE .for _tool in \ ${_clang_tblgen} \ ${_kerberos5_bootstrap_tools} \ + ${_elftoolchain_libs} \ ${_dtrace_tools} \ ${_strfile} \ ${_gperf} \ @@ -1428,11 +1433,13 @@ _binutils= gnu/usr.bin/binutils .endif .if ${MK_ELFTOOLCHAIN_TOOLS} != "no" _elftctools= lib/libelftc \ - usr.bin/addr2line \ usr.bin/elfcopy \ usr.bin/nm \ usr.bin/size \ usr.bin/strings +# These are not required by the build, but can be useful for developers who +# cross-build on a FreeBSD 10 host: +_elftctools+= usr.bin/addr2line .endif .endif Modified: projects/ifnet/bin/freebsd-version/Makefile ============================================================================== --- projects/ifnet/bin/freebsd-version/Makefile Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/bin/freebsd-version/Makefile Fri Jan 23 22:35:55 2015 (r277616) @@ -11,7 +11,7 @@ freebsd-version.sh: ${.CURDIR}/freebsd-v s/@@TYPE@@/$${TYPE}/g; \ s/@@REVISION@@/$${REVISION}/g; \ s/@@BRANCH@@/$${BRANCH}/g; \ - " ${.ALLSRC} >${.TARGET} ; then \ + " ${.CURDIR}/freebsd-version.sh.in >${.TARGET} ; then \ rm -f ${.TARGET} ; \ exit 1 ; \ fi Modified: projects/ifnet/bin/ln/symlink.7 ============================================================================== --- projects/ifnet/bin/ln/symlink.7 Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/bin/ln/symlink.7 Fri Jan 23 22:35:55 2015 (r277616) @@ -29,7 +29,7 @@ .\" @(#)symlink.7 8.3 (Berkeley) 3/31/94 .\" $FreeBSD$ .\" -.Dd December 29, 2014 +.Dd January 23, 2015 .Dt SYMLINK 7 .Os .Sh NAME @@ -147,9 +147,10 @@ unless given the .Dv AT_SYMLINK_NOFOLLOW flag: .Xr fchmodat 2 , -.Xr fchownat 2 +.Xr fchownat 2 , +.Xr fstatat 2 and -.Xr fstatat 2 . +.Xr utimensat 2 . .Pp The owner and group of an existing symbolic link can be changed by means of the Modified: projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c ============================================================================== --- projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c Fri Jan 23 22:35:55 2015 (r277616) @@ -18,10 +18,11 @@ * * CDDL HEADER END */ + /* + * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013 by Delphix. All rights reserved. - * Copyright 2014 Nexenta Systems, Inc. All rights reserved. */ /* @@ -198,8 +199,10 @@ fix_paths(nvlist_t *nv, name_entry_t *na if ((devid = get_devid(best->ne_name)) == NULL) { (void) nvlist_remove_all(nv, ZPOOL_CONFIG_DEVID); } else { - if (nvlist_add_string(nv, ZPOOL_CONFIG_DEVID, devid) != 0) + if (nvlist_add_string(nv, ZPOOL_CONFIG_DEVID, devid) != 0) { + devid_str_free(devid); return (-1); + } devid_str_free(devid); } @@ -665,8 +668,10 @@ get_configs(libzfs_handle_t *hdl, pool_l nvlist_add_uint64(holey, ZPOOL_CONFIG_ID, c) != 0 || nvlist_add_uint64(holey, - ZPOOL_CONFIG_GUID, 0ULL) != 0) + ZPOOL_CONFIG_GUID, 0ULL) != 0) { + nvlist_free(holey); goto nomem; + } child[c] = holey; } } @@ -1118,8 +1123,10 @@ zpool_clear_label(int fd) for (l = 0; l < VDEV_LABELS; l++) { if (pwrite64(fd, label, sizeof (vdev_label_t), - label_offset(size, l)) != sizeof (vdev_label_t)) + label_offset(size, l)) != sizeof (vdev_label_t)) { + free(label); return (-1); + } } free(label); @@ -1137,7 +1144,6 @@ static nvlist_t * zpool_find_import_impl(libzfs_handle_t *hdl, importargs_t *iarg) { int i, dirs = iarg->paths; - DIR *dirp = NULL; struct dirent64 *dp; char path[MAXPATHLEN]; char *end, **dir = iarg->path; @@ -1167,6 +1173,8 @@ zpool_find_import_impl(libzfs_handle_t * tpool_t *t; char *rdsk; int dfd; + boolean_t config_failed = B_FALSE; + DIR *dirp; /* use realpath to normalize the path */ if (realpath(dir[i], path) == 0) { @@ -1191,6 +1199,8 @@ zpool_find_import_impl(libzfs_handle_t * if ((dfd = open64(rdsk, O_RDONLY)) < 0 || (dirp = fdopendir(dfd)) == NULL) { + if (dfd >= 0) + (void) close(dfd); zfs_error_aux(hdl, strerror(errno)); (void) zfs_error_fmt(hdl, EZFS_BADPATH, dgettext(TEXT_DOMAIN, "cannot open '%s'"), @@ -1272,7 +1282,7 @@ skipdir: cookie = NULL; while ((slice = avl_destroy_nodes(&slice_cache, &cookie)) != NULL) { - if (slice->rn_config != NULL) { + if (slice->rn_config != NULL && !config_failed) { nvlist_t *config = slice->rn_config; boolean_t matched = B_TRUE; @@ -1293,13 +1303,16 @@ skipdir: } if (!matched) { nvlist_free(config); - config = NULL; - continue; + } else { + /* + * use the non-raw path for the config + */ + (void) strlcpy(end, slice->rn_name, + pathleft); + if (add_config(hdl, &pools, path, + config) != 0) + config_failed = B_TRUE; } - /* use the non-raw path for the config */ - (void) strlcpy(end, slice->rn_name, pathleft); - if (add_config(hdl, &pools, path, config) != 0) - goto error; } free(slice->rn_name); free(slice); @@ -1307,7 +1320,9 @@ skipdir: avl_destroy(&slice_cache); (void) closedir(dirp); - dirp = NULL; + + if (config_failed) + goto error; } ret = get_configs(hdl, &pools, iarg->can_be_active); @@ -1330,14 +1345,10 @@ error: for (ne = pools.names; ne != NULL; ne = nenext) { nenext = ne->ne_next; - if (ne->ne_name) - free(ne->ne_name); + free(ne->ne_name); free(ne); } - if (dirp) - (void) closedir(dirp); - return (ret); } @@ -1695,9 +1706,9 @@ zpool_in_use(libzfs_handle_t *hdl, int f cb.cb_type = ZPOOL_CONFIG_SPARES; if (zpool_iter(hdl, find_aux, &cb) == 1) { name = (char *)zpool_get_name(cb.cb_zhp); - ret = TRUE; + ret = B_TRUE; } else { - ret = FALSE; + ret = B_FALSE; } break; @@ -1711,9 +1722,9 @@ zpool_in_use(libzfs_handle_t *hdl, int f cb.cb_type = ZPOOL_CONFIG_L2CACHE; if (zpool_iter(hdl, find_aux, &cb) == 1) { name = (char *)zpool_get_name(cb.cb_zhp); - ret = TRUE; + ret = B_TRUE; } else { - ret = FALSE; + ret = B_FALSE; } break; Modified: projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c ============================================================================== --- projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Fri Jan 23 22:35:55 2015 (r277616) @@ -20,8 +20,8 @@ */ /* + * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2011, 2014 by Delphix. All rights reserved. * Copyright (c) 2013, Joyent, Inc. All rights reserved. */ @@ -1715,7 +1715,7 @@ zpool_import_props(libzfs_handle_t *hdl, thename = origname; } - if (props) { + if (props != NULL) { uint64_t version; prop_flags_t flags = { .create = B_FALSE, .import = B_TRUE }; @@ -1723,12 +1723,13 @@ zpool_import_props(libzfs_handle_t *hdl, &version) == 0); if ((props = zpool_valid_proplist(hdl, origname, - props, version, flags, errbuf)) == NULL) { + props, version, flags, errbuf)) == NULL) return (-1); - } else if (zcmd_write_src_nvlist(hdl, &zc, props) != 0) { + if (zcmd_write_src_nvlist(hdl, &zc, props) != 0) { nvlist_free(props); return (-1); } + nvlist_free(props); } (void) strlcpy(zc.zc_name, thename, sizeof (zc.zc_name)); @@ -1737,11 +1738,11 @@ zpool_import_props(libzfs_handle_t *hdl, &zc.zc_guid) == 0); if (zcmd_write_conf_nvlist(hdl, &zc, config) != 0) { - nvlist_free(props); + zcmd_free_nvlists(&zc); return (-1); } if (zcmd_alloc_dst_nvlist(hdl, &zc, zc.zc_nvlist_conf_size * 2) != 0) { - nvlist_free(props); + zcmd_free_nvlists(&zc); return (-1); } @@ -1757,6 +1758,9 @@ zpool_import_props(libzfs_handle_t *hdl, error = errno; (void) zcmd_read_dst_nvlist(hdl, &zc, &nv); + + zcmd_free_nvlists(&zc); + zpool_get_rewind_policy(config, &policy); if (error) { @@ -1862,9 +1866,6 @@ zpool_import_props(libzfs_handle_t *hdl, return (0); } - zcmd_free_nvlists(&zc); - nvlist_free(props); - return (ret); } @@ -3332,8 +3333,10 @@ devid_to_path(char *devid_str) if (ret != 0) return (NULL); - if ((path = strdup(list[0].devname)) == NULL) - return (NULL); + /* + * In a case the strdup() fails, we will just return NULL below. + */ + path = strdup(list[0].devname); devid_free_nmlist(list); Modified: projects/ifnet/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h ============================================================================== --- projects/ifnet/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h Fri Jan 23 22:35:55 2015 (r277616) @@ -535,7 +535,7 @@ extern vnode_t *rootdir; extern void delay(clock_t ticks); #define SEC_TO_TICK(sec) ((sec) * hz) -#define NSEC_TO_TICK(usec) ((usec) / (NANOSEC / hz)) +#define NSEC_TO_TICK(nsec) ((nsec) / (NANOSEC / hz)) #define gethrestime_sec() time(NULL) #define gethrestime(t) \ Modified: projects/ifnet/contrib/elftoolchain/common/elfdefinitions.h ============================================================================== --- projects/ifnet/contrib/elftoolchain/common/elfdefinitions.h Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/contrib/elftoolchain/common/elfdefinitions.h Fri Jan 23 22:35:55 2015 (r277616) @@ -1948,11 +1948,17 @@ _ELF_DEFINE_RELOC(R_X86_64_TPOFF32, 23) _ELF_DEFINE_RELOC(R_X86_64_PC64, 24) \ _ELF_DEFINE_RELOC(R_X86_64_GOTOFF64, 25) \ _ELF_DEFINE_RELOC(R_X86_64_GOTPC32, 26) \ +_ELF_DEFINE_RELOC(R_X86_64_GOT64, 27) \ +_ELF_DEFINE_RELOC(R_X86_64_GOTPCREL64, 28) \ +_ELF_DEFINE_RELOC(R_X86_64_GOTPC64, 29) \ +_ELF_DEFINE_RELOC(R_X86_64_GOTPLT64, 30) \ +_ELF_DEFINE_RELOC(R_X86_64_PLTOFF64, 31) \ _ELF_DEFINE_RELOC(R_X86_64_SIZE32, 32) \ _ELF_DEFINE_RELOC(R_X86_64_SIZE64, 33) \ _ELF_DEFINE_RELOC(R_X86_64_GOTPC32_TLSDESC, 34) \ _ELF_DEFINE_RELOC(R_X86_64_TLSDESC_CALL, 35) \ -_ELF_DEFINE_RELOC(R_X86_64_TLSDESC, 36) +_ELF_DEFINE_RELOC(R_X86_64_TLSDESC, 36) \ +_ELF_DEFINE_RELOC(R_X86_64_IRELATIVE, 37) #define _ELF_DEFINE_RELOCATIONS() \ _ELF_DEFINE_386_RELOCATIONS() \ Modified: projects/ifnet/contrib/elftoolchain/readelf/readelf.c ============================================================================== --- projects/ifnet/contrib/elftoolchain/readelf/readelf.c Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/contrib/elftoolchain/readelf/readelf.c Fri Jan 23 22:35:55 2015 (r277616) @@ -1480,6 +1480,20 @@ r_type(unsigned int mach, unsigned int t case 21: return "R_X86_64_DTPOFF32"; case 22: return "R_X86_64_GOTTPOFF"; case 23: return "R_X86_64_TPOFF32"; + case 24: return "R_X86_64_PC64"; + case 25: return "R_X86_64_GOTOFF64"; + case 26: return "R_X86_64_GOTPC32"; + case 27: return "R_X86_64_GOT64"; + case 28: return "R_X86_64_GOTPCREL64"; + case 29: return "R_X86_64_GOTPC64"; + case 30: return "R_X86_64_GOTPLT64"; + case 31: return "R_X86_64_PLTOFF64"; + case 32: return "R_X86_64_SIZE32"; + case 33: return "R_X86_64_SIZE64"; + case 34: return "R_X86_64_GOTPC32_TLSDESC"; + case 35: return "R_X86_64_TLSDESC_CALL"; + case 36: return "R_X86_64_TLSDESC"; + case 37: return "R_X86_64_IRELATIVE"; default: return ""; } default: return ""; Modified: projects/ifnet/contrib/gdb/gdb/remote.c ============================================================================== --- projects/ifnet/contrib/gdb/gdb/remote.c Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/contrib/gdb/gdb/remote.c Fri Jan 23 22:35:55 2015 (r277616) @@ -3463,7 +3463,7 @@ remote_store_registers (int regnum) { int i; regs = alloca (rs->sizeof_g_packet); - memset (regs, rs->sizeof_g_packet, 0); + memset (regs, 0, rs->sizeof_g_packet); for (i = 0; i < NUM_REGS + NUM_PSEUDO_REGS; i++) { struct packet_reg *r = &rs->regs[i]; Modified: projects/ifnet/contrib/gdb/gdb/std-regs.c ============================================================================== --- projects/ifnet/contrib/gdb/gdb/std-regs.c Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/contrib/gdb/gdb/std-regs.c Fri Jan 23 22:35:55 2015 (r277616) @@ -61,7 +61,7 @@ value_of_builtin_frame_reg (struct frame val = allocate_value (builtin_type_frame_reg); VALUE_LVAL (val) = not_lval; buf = VALUE_CONTENTS_RAW (val); - memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0); + memset (buf, 0, TYPE_LENGTH (VALUE_TYPE (val))); /* frame.base. */ if (frame != NULL) ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf, @@ -87,7 +87,7 @@ value_of_builtin_frame_fp_reg (struct fr struct value *val = allocate_value (builtin_type_void_data_ptr); char *buf = VALUE_CONTENTS_RAW (val); if (frame == NULL) - memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0); + memset (buf, 0, TYPE_LENGTH (VALUE_TYPE (val))); else ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf, get_frame_base_address (frame)); @@ -105,7 +105,7 @@ value_of_builtin_frame_pc_reg (struct fr struct value *val = allocate_value (builtin_type_void_data_ptr); char *buf = VALUE_CONTENTS_RAW (val); if (frame == NULL) - memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0); + memset (buf, 0, TYPE_LENGTH (VALUE_TYPE (val))); else ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf, get_frame_pc (frame)); Modified: projects/ifnet/contrib/llvm/tools/clang/lib/Driver/Tools.cpp ============================================================================== --- projects/ifnet/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Fri Jan 23 22:35:55 2015 (r277616) @@ -6587,6 +6587,17 @@ void freebsd::Link::ConstructJob(Compila 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()); Modified: projects/ifnet/etc/Makefile ============================================================================== --- projects/ifnet/etc/Makefile Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/etc/Makefile Fri Jan 23 22:35:55 2015 (r277616) @@ -3,8 +3,11 @@ .include <src.opts.mk> +SUBDIR= \ + newsyslog.conf.d + .if ${MK_SENDMAIL} != "no" -SUBDIR= sendmail +SUBDIR+=sendmail .endif .if ${MK_TESTS} != "no" Modified: projects/ifnet/lib/libc/include/libc_private.h ============================================================================== --- projects/ifnet/lib/libc/include/libc_private.h Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/lib/libc/include/libc_private.h Fri Jan 23 22:35:55 2015 (r277616) @@ -357,6 +357,10 @@ int __libc_system(const char *); int __libc_tcdrain(int); int __fcntl_compat(int fd, int cmd, ...); +int __sys_futimens(int fd, const struct timespec *times) __hidden; +int __sys_utimensat(int fd, const char *path, + const struct timespec *times, int flag) __hidden; + /* execve() with PATH processing to implement posix_spawnp() */ int _execvpe(const char *, char * const *, char * const *); Modified: projects/ifnet/lib/libc/sys/Makefile.inc ============================================================================== --- projects/ifnet/lib/libc/sys/Makefile.inc Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/lib/libc/sys/Makefile.inc Fri Jan 23 22:35:55 2015 (r277616) @@ -38,6 +38,10 @@ SRCS+= ${SYSCALL_COMPAT_SRCS} NOASM+= ${SYSCALL_COMPAT_SRCS:S/.c/.o/} .endif +SRCS+= futimens.c utimensat.c +NOASM+= futimens.o utimensat.o +PSEUDO+= _futimens.o _utimensat.o + INTERPOSED = \ accept \ accept4 \ @@ -310,6 +314,7 @@ MAN+= sctp_generic_recvmsg.2 \ umask.2 \ undelete.2 \ unlink.2 \ + utimensat.2 \ utimes.2 \ utrace.2 \ uuidgen.2 \ @@ -442,6 +447,7 @@ MLINKS+=timer_settime.2 timer_getoverrun timer_settime.2 timer_gettime.2 MLINKS+=truncate.2 ftruncate.2 MLINKS+=unlink.2 unlinkat.2 +MLINKS+=utimensat.2 futimens.2 MLINKS+=utimes.2 futimes.2 \ utimes.2 futimesat.2 \ utimes.2 lutimes.2 Modified: projects/ifnet/lib/libc/sys/Symbol.map ============================================================================== --- projects/ifnet/lib/libc/sys/Symbol.map Fri Jan 23 21:47:44 2015 (r277615) +++ projects/ifnet/lib/libc/sys/Symbol.map Fri Jan 23 22:35:55 2015 (r277616) @@ -397,7 +397,9 @@ FBSD_1.3 { }; FBSD_1.4 { + futimens; ppoll; + utimensat; }; FBSDprivate_1.0 { Copied: projects/ifnet/lib/libc/sys/futimens.c (from r277615, head/lib/libc/sys/futimens.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ifnet/lib/libc/sys/futimens.c Fri Jan 23 22:35:55 2015 (r277616, copy of r277615, head/lib/libc/sys/futimens.c) @@ -0,0 +1,97 @@ +/*- + * Copyright (c) 2015 Jilles Tjoelker + * All rights reserved. + * + * 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 <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include "namespace.h" +#include <sys/stat.h> + +#include <errno.h> +#include <fcntl.h> +#include <time.h> +#include "un-namespace.h" + +#include "libc_private.h" + +int +futimens(int fd, const struct timespec times[2]) +{ + struct timeval now, tv[2], *tvp; + struct stat sb; + + if (__getosreldate() >= 1100056) + return (__sys_futimens(fd, times)); + + if (times == NULL || (times[0].tv_nsec == UTIME_NOW && + times[1].tv_nsec == UTIME_NOW)) + tvp = NULL; + else if (times[0].tv_nsec == UTIME_OMIT && + times[1].tv_nsec == UTIME_OMIT) + return (0); + else { + if ((times[0].tv_nsec < 0 || times[0].tv_nsec > 999999999) && + times[0].tv_nsec != UTIME_NOW && + times[0].tv_nsec != UTIME_OMIT) { + errno = EINVAL; + return (-1); + } + if ((times[1].tv_nsec < 0 || times[1].tv_nsec > 999999999) && + times[1].tv_nsec != UTIME_NOW && + times[1].tv_nsec != UTIME_OMIT) { + errno = EINVAL; + return (-1); + } + tv[0].tv_sec = times[0].tv_sec; + tv[0].tv_usec = times[0].tv_nsec / 1000; + tv[1].tv_sec = times[1].tv_sec; + tv[1].tv_usec = times[1].tv_nsec / 1000; + tvp = tv; + if (times[0].tv_nsec == UTIME_OMIT || + times[1].tv_nsec == UTIME_OMIT) { + if (_fstat(fd, &sb) == -1) + return (-1); + if (times[0].tv_nsec == UTIME_OMIT) { + tv[0].tv_sec = sb.st_atim.tv_sec; + tv[0].tv_usec = sb.st_atim.tv_nsec / 1000; + } + if (times[1].tv_nsec == UTIME_OMIT) { + tv[1].tv_sec = sb.st_mtim.tv_sec; + tv[1].tv_usec = sb.st_mtim.tv_nsec / 1000; + } + } + if (times[0].tv_nsec == UTIME_NOW || + times[1].tv_nsec == UTIME_NOW) { + if (gettimeofday(&now, NULL) == -1) + return (-1); + if (times[0].tv_nsec == UTIME_NOW) + tv[0] = now; + if (times[1].tv_nsec == UTIME_NOW) + tv[1] = now; + } + } + return (futimes(fd, tvp)); +} Copied: projects/ifnet/lib/libc/sys/utimensat.2 (from r277615, head/lib/libc/sys/utimensat.2) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ifnet/lib/libc/sys/utimensat.2 Fri Jan 23 22:35:55 2015 (r277616, copy of r277615, head/lib/libc/sys/utimensat.2) @@ -0,0 +1,292 @@ +.\" $NetBSD: utimes.2,v 1.13 1999/03/22 19:45:11 garbled Exp $ +.\" +.\" Copyright (c) 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" Copyright (c) 2012, Jilles Tjoelker +.\" +.\" 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. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. +.\" +.\" @(#)utimes.2 8.1 (Berkeley) 6/4/93 +.\" $FreeBSD$ +.\" +.Dd January 23, 2015 +.Dt UTIMENSAT 2 +.Os +.Sh NAME +.Nm futimens , +.Nm utimensat +.Nd set file access and modification times +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In sys/stat.h +.Ft int +.Fn futimens "int fd" "const struct timespec times[2]" +.Ft int +.Fo utimensat +.Fa "int fd" +.Fa "const char *path" +.Fa "const struct timespec times[2]" +.Fa "int flag" +.Fc +.Sh DESCRIPTION +The access and modification times of the file named by +.Fa path +or referenced by +.Fa fd +are changed as specified by the argument +.Fa times . +The inode-change-time of the file is set to the current time. +.Pp +If +.Fa path +specifies a relative path, +it is relative to the current working directory if +.Fa fd +is +.Dv AT_FDCWD +and otherwise relative to the directory associated with the file descriptor +.Fa fd . +.Pp +The +.Va tv_nsec +field of a +.Vt timespec +structure +can be set to the special value +.Dv UTIME_NOW +to set the current time, or to +.Dv UTIME_OMIT +to leave the time unchanged. +In either case, the +.Va tv_sec +field is ignored. +.Pp +If +.Fa times +is +.No non- Ns Dv NULL , +it is assumed to point to an array of two timespec structures. +The access time is set to the value of the first element, and the +modification time is set to the value of the second element. +For file systems that support file birth (creation) times (such as +.Dv UFS2 ) , +the birth time will be set to the value of the second element +if the second element is older than the currently set birth time. +To set both a birth time and a modification time, +two calls are required; the first to set the birth time +and the second to set the (presumably newer) modification time. +Ideally a new system call will be added that allows the setting +of all three times at once. +If +.Fa times +is +.Dv NULL , +this is equivalent to passing +a pointer to an array of two timespec structures +with both +.Va tv_nsec +fields set to +.Dv UTIME_NOW . +.Pp +If both +.Va tv_nsec +fields are +.Dv UTIME_OMIT , +the timestamps remain unchanged and +no permissions are needed for the file itself, +although search permissions may be required for the path prefix. +The call may or may not succeed if the named file does not exist. +.Pp +If both +.Va tv_nsec +fields are +.Dv UTIME_NOW , +the caller must be the owner of the file, have permission to +write the file, or be the super-user. +.Pp +For all other values of the timestamps, +the caller must be the owner of the file or be the super-user. +.Pp +The values for the +.Fa flag +argument of the +.Fn utimensat +system call +are constructed by a bitwise-inclusive OR of flags from the following list, +defined in +.In fcntl.h : +.Bl -tag -width indent +.It Dv AT_SYMLINK_NOFOLLOW +If +.Fa path +names a symbolic link, the symbolic link's times are changed. +By default, +.Fn utimensat +changes the times of the file referenced by the symbolic link. +.El +.Sh RETURN VALUES +.Rv -std +.Sh COMPATIBILITY +If the running kernel does not support this system call, +a wrapper emulates it using +.Xr fstatat 2 , +.Xr futimesat 2 +and +.Xr lutimes 2 . +As a result, timestamps will be rounded down to the nearest microsecond, +.Dv UTIME_OMIT +is not atomic and +.Dv AT_SYMLINK_NOFOLLOW +is not available with a path relative to a file descriptor. +.Sh ERRORS +These system calls will fail if: +.Bl -tag -width Er +.It Bq Er EACCES +The +.Fa times +argument is +.Dv NULL , +or both +.Va tv_nsec +values are +.Dv UTIME_NOW , +and the effective user ID of the process does not +match the owner of the file, and is not the super-user, and write +access is denied. +.It Bq Er EFAULT +The +.Fa times +argument +points outside the process's allocated address space. +.It Bq Er EINVAL +The +.Va tv_usec +component of at least one of the values specified by the +.Fa times +argument has a value less than 0 or greater than 999999. +.It Bq Er EIO +An I/O error occurred while reading or writing the affected inode. +.It Bq Er EPERM +The +.Fa times +argument is not +.Dv NULL +nor are both +.Va tv_nsec +values +.Dv UTIME_NOW , +nor are both +.Va tv_nsec +values +.Dv UTIME_OMIT +and the calling process's effective user ID +does not match the owner of the file and is not the super-user. +.It Bq Er EPERM +The named file has its immutable or append-only flag set, see the +.Xr chflags 2 +manual page for more information. +.It Bq Er EROFS +The file system containing the file is mounted read-only. +.El +.Pp +The +.Fn futimens +system call +will fail if: +.Bl -tag -width Er +.It Bq Er EBADF +The +.Fa fd +argument +does not refer to a valid descriptor. +.El +.Pp +The +.Fn utimensat +system call +will fail if: +.Bl -tag -width Er +.It Bq Er EACCES +Search permission is denied for a component of the path prefix. +.It Bq Er EBADF +The +.Fa path +argument does not specify an absolute path and the +.Fa fd +argument is neither +.Dv AT_FDCWD +nor a valid file descriptor. +.It Bq Er EFAULT +The +.Fa path +argument +points outside the process's allocated address space. +.It Bq Er ELOOP +Too many symbolic links were encountered in translating the pathname. +.It Bq Er ENAMETOOLONG +A component of a pathname exceeded +.Dv NAME_MAX +characters, or an entire path name exceeded +.Dv PATH_MAX +characters. +.It Bq Er ENOENT +The named file does not exist. +.It Bq Er ENOTDIR +A component of the path prefix is not a directory. +.It Bq Er ENOTDIR +The +.Fa path +argument is not an absolute path and +.Fa fd +is neither +.Dv AT_FDCWD +nor a file descriptor associated with a directory. +.It Bq Er ENOTSUP +The running kernel does not support this system call and +.Dv AT_SYMLINK_NOFOLLOW +is used with a path relative to a file descriptor. +.El +.Sh SEE ALSO +.Xr chflags 2 , +.Xr stat 2 , +.Xr symlink 2 , +.Xr utimes 2 , +.Xr utime 3 , +.Xr symlink 7 +.Sh STANDARDS +The +.Fn futimens +and +.Fn utimensat +system calls are expected to conform to +.St -p1003.1-2008 . +.Sh HISTORY +The +.Fn futimens +and +.Fn utimensat +system calls appeared in +.Fx 11.0 . Copied: projects/ifnet/lib/libc/sys/utimensat.c (from r277615, head/lib/libc/sys/utimensat.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ifnet/lib/libc/sys/utimensat.c Fri Jan 23 22:35:55 2015 (r277616, copy of r277615, head/lib/libc/sys/utimensat.c) @@ -0,0 +1,109 @@ +/*- + * Copyright (c) 2015 Jilles Tjoelker + * All rights reserved. + * + * 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 <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include "namespace.h" +#include <sys/stat.h> + +#include <errno.h> +#include <fcntl.h> +#include <time.h> +#include "un-namespace.h" + +#include "libc_private.h" + +int +utimensat(int fd, const char *path, const struct timespec times[2], int flag) +{ + struct timeval now, tv[2], *tvp; + struct stat sb; + + if (__getosreldate() >= 1100056) + return (__sys_utimensat(fd, path, times, flag)); + + if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0) { + errno = EINVAL; + return (-1); + } + if (times == NULL || (times[0].tv_nsec == UTIME_NOW && + times[1].tv_nsec == UTIME_NOW)) + tvp = NULL; + else if (times[0].tv_nsec == UTIME_OMIT && + times[1].tv_nsec == UTIME_OMIT) + return (0); + else { + if ((times[0].tv_nsec < 0 || times[0].tv_nsec > 999999999) && + times[0].tv_nsec != UTIME_NOW && + times[0].tv_nsec != UTIME_OMIT) { + errno = EINVAL; + return (-1); + } + if ((times[1].tv_nsec < 0 || times[1].tv_nsec > 999999999) && + times[1].tv_nsec != UTIME_NOW && + times[1].tv_nsec != UTIME_OMIT) { + errno = EINVAL; + return (-1); + } + tv[0].tv_sec = times[0].tv_sec; + tv[0].tv_usec = times[0].tv_nsec / 1000; + tv[1].tv_sec = times[1].tv_sec; + tv[1].tv_usec = times[1].tv_nsec / 1000; + tvp = tv; + if (times[0].tv_nsec == UTIME_OMIT || + times[1].tv_nsec == UTIME_OMIT) { + if (fstatat(fd, path, &sb, flag) == -1) + return (-1); + if (times[0].tv_nsec == UTIME_OMIT) { + tv[0].tv_sec = sb.st_atim.tv_sec; + tv[0].tv_usec = sb.st_atim.tv_nsec / 1000; + } + if (times[1].tv_nsec == UTIME_OMIT) { + tv[1].tv_sec = sb.st_mtim.tv_sec; + tv[1].tv_usec = sb.st_mtim.tv_nsec / 1000; + } + } + if (times[0].tv_nsec == UTIME_NOW || + times[1].tv_nsec == UTIME_NOW) { + if (gettimeofday(&now, NULL) == -1) + return (-1); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501232235.t0NMZvY5042865>