From owner-svn-src-projects@FreeBSD.ORG Sat Jan 24 21:21:47 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 B65CA799; Sat, 24 Jan 2015 21:21:47 +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 9DEEA1FF; Sat, 24 Jan 2015 21:21:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t0OLLlKd003383; Sat, 24 Jan 2015 21:21:47 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t0OLLeqV002882; Sat, 24 Jan 2015 21:21:40 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201501242121.t0OLLeqV002882@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Sat, 24 Jan 2015 21:21:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r277660 - in projects/building-blocks: . bin/cp bin/ln bin/mv contrib/gdb/gdb contrib/netbsd-tests/lib/libc/c063 contrib/tcpdump etc/mtree etc/tests etc/tests/rc.d lib/libc/include 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: Sat, 24 Jan 2015 21:21:47 -0000 Author: ngie Date: Sat Jan 24 21:21:39 2015 New Revision: 277660 URL: https://svnweb.freebsd.org/changeset/base/277660 Log: MFhead @ r277659 Added: projects/building-blocks/etc/tests/rc.d/ - copied from r277659, head/etc/tests/rc.d/ projects/building-blocks/lib/libc/sys/futimens.c - copied unchanged from r277659, head/lib/libc/sys/futimens.c projects/building-blocks/lib/libc/sys/utimensat.2 - copied unchanged from r277659, head/lib/libc/sys/utimensat.2 projects/building-blocks/lib/libc/sys/utimensat.c - copied unchanged from r277659, head/lib/libc/sys/utimensat.c projects/building-blocks/sys/arm/freescale/imx/imx6_audmux.c - copied unchanged from r277659, head/sys/arm/freescale/imx/imx6_audmux.c projects/building-blocks/sys/arm/freescale/imx/imx6_sdma.c - copied unchanged from r277659, head/sys/arm/freescale/imx/imx6_sdma.c projects/building-blocks/sys/arm/freescale/imx/imx6_sdma.h - copied unchanged from r277659, head/sys/arm/freescale/imx/imx6_sdma.h projects/building-blocks/sys/arm/freescale/imx/imx6_ssi.c - copied unchanged from r277659, head/sys/arm/freescale/imx/imx6_ssi.c projects/building-blocks/usr.sbin/pw/tests/pw_groupshow.sh - copied unchanged from r277659, head/usr.sbin/pw/tests/pw_groupshow.sh projects/building-blocks/usr.sbin/pw/tests/pw_usershow.sh - copied unchanged from r277659, head/usr.sbin/pw/tests/pw_usershow.sh Modified: projects/building-blocks/Makefile.inc1 projects/building-blocks/bin/cp/utils.c projects/building-blocks/bin/ln/symlink.7 projects/building-blocks/bin/mv/mv.c projects/building-blocks/contrib/gdb/gdb/corelow.c projects/building-blocks/contrib/gdb/gdb/dwarf2expr.c projects/building-blocks/contrib/gdb/gdb/remote.c projects/building-blocks/contrib/gdb/gdb/std-regs.c projects/building-blocks/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c projects/building-blocks/contrib/tcpdump/tcpdump.c projects/building-blocks/etc/mtree/BSD.tests.dist projects/building-blocks/etc/tests/Makefile projects/building-blocks/lib/libc/include/libc_private.h projects/building-blocks/lib/libc/sys/Makefile.inc projects/building-blocks/lib/libc/sys/Symbol.map projects/building-blocks/lib/libc/tests/c063/Makefile projects/building-blocks/lib/libstand/libstand.3 projects/building-blocks/lib/libstand/printf.c projects/building-blocks/release/Makefile projects/building-blocks/release/Makefile.vm projects/building-blocks/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/building-blocks/release/picobsd/build/picobsd projects/building-blocks/sbin/ping/ping.c projects/building-blocks/share/man/man3/tree.3 projects/building-blocks/share/man/man4/rights.4 projects/building-blocks/share/man/man9/printf.9 projects/building-blocks/sys/amd64/vmm/amd/svm.c projects/building-blocks/sys/arm/arm/mem.c projects/building-blocks/sys/arm/freescale/imx/files.imx6 projects/building-blocks/sys/arm/freescale/imx/imx6_anatop.c projects/building-blocks/sys/arm/freescale/imx/imx6_anatopreg.h projects/building-blocks/sys/arm/freescale/imx/imx6_anatopvar.h projects/building-blocks/sys/arm/freescale/imx/imx6_ccm.c projects/building-blocks/sys/arm/freescale/imx/imx6_ccmreg.h projects/building-blocks/sys/arm/freescale/imx/imx_ccmvar.h projects/building-blocks/sys/arm/freescale/imx/imx_iomux.c projects/building-blocks/sys/arm/ti/am335x/am335x_lcd.c projects/building-blocks/sys/boot/fdt/dts/arm/apalis-imx6.dts projects/building-blocks/sys/boot/fdt/dts/arm/imx6.dtsi projects/building-blocks/sys/boot/i386/libfirewire/firewire.c projects/building-blocks/sys/cam/ctl/ctl_tpc.c projects/building-blocks/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c projects/building-blocks/sys/compat/freebsd32/freebsd32_misc.c projects/building-blocks/sys/compat/freebsd32/freebsd32_proto.h projects/building-blocks/sys/compat/freebsd32/freebsd32_syscall.h projects/building-blocks/sys/compat/freebsd32/freebsd32_syscalls.c projects/building-blocks/sys/compat/freebsd32/freebsd32_sysent.c projects/building-blocks/sys/compat/freebsd32/freebsd32_systrace_args.c projects/building-blocks/sys/compat/freebsd32/syscalls.master projects/building-blocks/sys/conf/files projects/building-blocks/sys/dev/acpica/acpi_ec.c projects/building-blocks/sys/dev/agp/agp_nvidia.c projects/building-blocks/sys/dev/cx/cxddk.c projects/building-blocks/sys/dev/dc/if_dc.c projects/building-blocks/sys/dev/fdt/fdt_clock.c projects/building-blocks/sys/dev/mem/memdev.c projects/building-blocks/sys/dev/netmap/netmap.c projects/building-blocks/sys/i386/i386/mem.c projects/building-blocks/sys/kern/capabilities.conf projects/building-blocks/sys/kern/init_sysent.c projects/building-blocks/sys/kern/subr_prf.c projects/building-blocks/sys/kern/syscalls.c projects/building-blocks/sys/kern/syscalls.master projects/building-blocks/sys/kern/systrace_args.c projects/building-blocks/sys/kern/vfs_syscalls.c projects/building-blocks/sys/mips/mips/mem.c projects/building-blocks/sys/modules/cxgbe/if_cxgbe/Makefile projects/building-blocks/sys/netinet/ip_carp.c projects/building-blocks/sys/powerpc/aim/machdep.c projects/building-blocks/sys/powerpc/aim/trap_subr32.S projects/building-blocks/sys/powerpc/aim/trap_subr64.S projects/building-blocks/sys/sparc64/sparc64/mem.c projects/building-blocks/sys/sys/capsicum.h projects/building-blocks/sys/sys/param.h projects/building-blocks/sys/sys/stat.h projects/building-blocks/sys/sys/syscall.h projects/building-blocks/sys/sys/syscall.mk projects/building-blocks/sys/sys/syscallsubr.h projects/building-blocks/sys/sys/sysproto.h projects/building-blocks/sys/sys/tree.h projects/building-blocks/sys/vm/vm_map.c projects/building-blocks/sys/vm/vm_pageout.c projects/building-blocks/tools/regression/file/flock/flock.c projects/building-blocks/usr.bin/kdump/kdump.c projects/building-blocks/usr.bin/touch/touch.c projects/building-blocks/usr.bin/vmstat/vmstat.c projects/building-blocks/usr.sbin/config/config.y projects/building-blocks/usr.sbin/config/configvers.h projects/building-blocks/usr.sbin/iostat/iostat.c projects/building-blocks/usr.sbin/pw/pw_group.c projects/building-blocks/usr.sbin/pw/pw_user.c projects/building-blocks/usr.sbin/pw/tests/Makefile Directory Properties: projects/building-blocks/ (props changed) projects/building-blocks/contrib/gdb/ (props changed) projects/building-blocks/contrib/tcpdump/ (props changed) projects/building-blocks/etc/ (props changed) projects/building-blocks/lib/libc/ (props changed) projects/building-blocks/sbin/ (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/amd64/vmm/ (props changed) projects/building-blocks/sys/boot/ (props changed) projects/building-blocks/sys/cddl/contrib/opensolaris/ (props changed) projects/building-blocks/sys/conf/ (props changed) Modified: projects/building-blocks/Makefile.inc1 ============================================================================== --- projects/building-blocks/Makefile.inc1 Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/Makefile.inc1 Sat Jan 24 21:21:39 2015 (r277660) @@ -1460,6 +1460,9 @@ _elftctools= lib/libelftc \ 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/building-blocks/bin/cp/utils.c ============================================================================== --- projects/building-blocks/bin/cp/utils.c Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/bin/cp/utils.c Sat Jan 24 21:21:39 2015 (r277660) @@ -330,7 +330,7 @@ copy_special(struct stat *from_stat, int int setfile(struct stat *fs, int fd) { - static struct timeval tv[2]; + static struct timespec tspec[2]; struct stat ts; int rval, gotstat, islink, fdval; @@ -340,10 +340,11 @@ setfile(struct stat *fs, int fd) fs->st_mode &= S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO; - TIMESPEC_TO_TIMEVAL(&tv[0], &fs->st_atim); - TIMESPEC_TO_TIMEVAL(&tv[1], &fs->st_mtim); - if (islink ? lutimes(to.p_path, tv) : utimes(to.p_path, tv)) { - warn("%sutimes: %s", islink ? "l" : "", to.p_path); + tspec[0] = fs->st_atim; + tspec[1] = fs->st_mtim; + if (utimensat(AT_FDCWD, to.p_path, tspec, + islink ? AT_SYMLINK_NOFOLLOW : 0)) { + warn("utimensat: %s", to.p_path); rval = 1; } if (fdval ? fstat(fd, &ts) : Modified: projects/building-blocks/bin/ln/symlink.7 ============================================================================== --- projects/building-blocks/bin/ln/symlink.7 Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/bin/ln/symlink.7 Sat Jan 24 21:21:39 2015 (r277660) @@ -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/building-blocks/bin/mv/mv.c ============================================================================== --- projects/building-blocks/bin/mv/mv.c Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/bin/mv/mv.c Sat Jan 24 21:21:39 2015 (r277660) @@ -273,7 +273,7 @@ do_move(const char *from, const char *to static int fastcopy(const char *from, const char *to, struct stat *sbp) { - struct timeval tval[2]; + struct timespec ts[2]; static u_int blen = MAXPHYS; static char *bp = NULL; mode_t oldmode; @@ -350,10 +350,9 @@ err: if (unlink(to)) } else warn("%s: cannot stat", to); - tval[0].tv_sec = sbp->st_atime; - tval[1].tv_sec = sbp->st_mtime; - tval[0].tv_usec = tval[1].tv_usec = 0; - if (utimes(to, tval)) + ts[0] = sbp->st_atim; + ts[1] = sbp->st_mtim; + if (utimensat(AT_FDCWD, to, ts, 0)) warn("%s: set times", to); if (close(to_fd)) { Modified: projects/building-blocks/contrib/gdb/gdb/corelow.c ============================================================================== --- projects/building-blocks/contrib/gdb/gdb/corelow.c Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/contrib/gdb/gdb/corelow.c Sat Jan 24 21:21:39 2015 (r277660) @@ -432,15 +432,16 @@ get_core_register_section (char *name, char *human_name, int required) { - char section_name[100]; + static char *section_name = NULL; struct bfd_section *section; bfd_size_type size; char *contents; + xfree (section_name); if (PIDGET (inferior_ptid)) - sprintf (section_name, "%s/%d", name, PIDGET (inferior_ptid)); + section_name = xstrprintf ("%s/%d", name, PIDGET (inferior_ptid)); else - strcpy (section_name, name); + section_name = xstrdup (name); section = bfd_get_section_by_name (core_bfd, section_name); if (! section) Modified: projects/building-blocks/contrib/gdb/gdb/dwarf2expr.c ============================================================================== --- projects/building-blocks/contrib/gdb/gdb/dwarf2expr.c Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/contrib/gdb/gdb/dwarf2expr.c Sat Jan 24 21:21:39 2015 (r277660) @@ -575,6 +575,7 @@ execute_stack_op (struct dwarf_expr_cont break; case DW_OP_div: binop = BINOP_DIV; + break; case DW_OP_minus: binop = BINOP_SUB; break; @@ -595,6 +596,7 @@ execute_stack_op (struct dwarf_expr_cont break; case DW_OP_shr: binop = BINOP_RSH; + break; case DW_OP_shra: binop = BINOP_RSH; val1 = value_from_longest (signed_address_type (), first); Modified: projects/building-blocks/contrib/gdb/gdb/remote.c ============================================================================== --- projects/building-blocks/contrib/gdb/gdb/remote.c Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/contrib/gdb/gdb/remote.c Sat Jan 24 21:21:39 2015 (r277660) @@ -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/building-blocks/contrib/gdb/gdb/std-regs.c ============================================================================== --- projects/building-blocks/contrib/gdb/gdb/std-regs.c Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/contrib/gdb/gdb/std-regs.c Sat Jan 24 21:21:39 2015 (r277660) @@ -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/building-blocks/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c ============================================================================== --- projects/building-blocks/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c Sat Jan 24 21:21:39 2015 (r277660) @@ -40,6 +40,9 @@ __RCSID("$NetBSD: t_utimensat.c,v 1.5 20 #include #include #include +#ifdef __FreeBSD__ +#include +#endif #include #define DIR "dir" Modified: projects/building-blocks/contrib/tcpdump/tcpdump.c ============================================================================== --- projects/building-blocks/contrib/tcpdump/tcpdump.c Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/contrib/tcpdump/tcpdump.c Sat Jan 24 21:21:39 2015 (r277660) @@ -77,12 +77,12 @@ extern int SIZE_BUF; #ifdef __FreeBSD__ #include #include +#endif /* __FreeBSD__ */ +#ifdef HAVE_CAPSICUM #include #include #include #include -#endif /* __FreeBSD__ */ -#ifdef HAVE_CAPSICUM #include #include #include @@ -966,8 +966,8 @@ main(int argc, char **argv) FILE *VFile; #ifdef HAVE_CAPSICUM cap_rights_t rights; - int cansandbox; #endif /* HAVE_CAPSICUM */ + int cansandbox; #ifdef WIN32 if(wsockinit() != 0) return 1; Modified: projects/building-blocks/etc/mtree/BSD.tests.dist ============================================================================== --- projects/building-blocks/etc/mtree/BSD.tests.dist Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/etc/mtree/BSD.tests.dist Sat Jan 24 21:21:39 2015 (r277660) @@ -52,6 +52,8 @@ .. .. etc + rc.d + .. .. games .. Modified: projects/building-blocks/etc/tests/Makefile ============================================================================== --- projects/building-blocks/etc/tests/Makefile Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/etc/tests/Makefile Sat Jan 24 21:21:39 2015 (r277660) @@ -7,4 +7,6 @@ TESTSDIR= ${TESTSBASE}/etc .PATH: ${.CURDIR:H:H}/tests KYUAFILE= yes +TESTS_SUBDIRS+= rc.d + .include Modified: projects/building-blocks/lib/libc/include/libc_private.h ============================================================================== --- projects/building-blocks/lib/libc/include/libc_private.h Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/lib/libc/include/libc_private.h Sat Jan 24 21:21:39 2015 (r277660) @@ -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/building-blocks/lib/libc/sys/Makefile.inc ============================================================================== --- projects/building-blocks/lib/libc/sys/Makefile.inc Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/lib/libc/sys/Makefile.inc Sat Jan 24 21:21:39 2015 (r277660) @@ -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/building-blocks/lib/libc/sys/Symbol.map ============================================================================== --- projects/building-blocks/lib/libc/sys/Symbol.map Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/lib/libc/sys/Symbol.map Sat Jan 24 21:21:39 2015 (r277660) @@ -397,7 +397,9 @@ FBSD_1.3 { }; FBSD_1.4 { + futimens; ppoll; + utimensat; }; FBSDprivate_1.0 { Copied: projects/building-blocks/lib/libc/sys/futimens.c (from r277659, head/lib/libc/sys/futimens.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/building-blocks/lib/libc/sys/futimens.c Sat Jan 24 21:21:39 2015 (r277660, copy of r277659, 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 +__FBSDID("$FreeBSD$"); + +#include "namespace.h" +#include + +#include +#include +#include +#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/building-blocks/lib/libc/sys/utimensat.2 (from r277659, head/lib/libc/sys/utimensat.2) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/building-blocks/lib/libc/sys/utimensat.2 Sat Jan 24 21:21:39 2015 (r277660, copy of r277659, 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/building-blocks/lib/libc/sys/utimensat.c (from r277659, head/lib/libc/sys/utimensat.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/building-blocks/lib/libc/sys/utimensat.c Sat Jan 24 21:21:39 2015 (r277660, copy of r277659, 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 +__FBSDID("$FreeBSD$"); + +#include "namespace.h" +#include + +#include +#include +#include +#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); + if (times[0].tv_nsec == UTIME_NOW) + tv[0] = now; + if (times[1].tv_nsec == UTIME_NOW) + tv[1] = now; + } + } + if ((flag & AT_SYMLINK_NOFOLLOW) == 0) + return (futimesat(fd, path, tvp)); + else if ((flag & AT_SYMLINK_NOFOLLOW) != 0 && + (fd == AT_FDCWD || path[0] == '/')) + return (lutimes(path, tvp)); + else { + errno = ENOTSUP; + return (-1); + } +} Modified: projects/building-blocks/lib/libc/tests/c063/Makefile ============================================================================== --- projects/building-blocks/lib/libc/tests/c063/Makefile Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/lib/libc/tests/c063/Makefile Sat Jan 24 21:21:39 2015 (r277660) @@ -2,7 +2,7 @@ TESTSDIR= ${TESTSBASE}/lib/libc/c063 -#TODO: t_o_search, t_utimensat +#TODO: t_o_search NETBSD_ATF_TESTS_C= faccessat NETBSD_ATF_TESTS_C+= fchmodat @@ -18,6 +18,7 @@ NETBSD_ATF_TESTS_C+= readlinkat NETBSD_ATF_TESTS_C+= renameat NETBSD_ATF_TESTS_C+= symlinkat NETBSD_ATF_TESTS_C+= unlinkat +NETBSD_ATF_TESTS_C+= utimensat CFLAGS+= -D_INCOMPLETE_XOPEN_C063 Modified: projects/building-blocks/lib/libstand/libstand.3 ============================================================================== --- projects/building-blocks/lib/libstand/libstand.3 Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/lib/libstand/libstand.3 Sat Jan 24 21:21:39 2015 (r277660) @@ -288,7 +288,7 @@ Thus printf( .Qq reg=%b\en , 3, -.Qq \e10\e2BITTWO\e1BITONE\en +.Qq \e10\e2BITTWO\e1BITONE ); .Ed .Pp Modified: projects/building-blocks/lib/libstand/printf.c ============================================================================== --- projects/building-blocks/lib/libstand/printf.c Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/lib/libstand/printf.c Sat Jan 24 21:21:39 2015 (r277660) @@ -187,7 +187,7 @@ ksprintn(char *nbuf, uintmax_t num, int * the next characters (up to a control character, i.e. a character <= 32), * give the name of the register. Thus: * - * kvprintf("reg=%b\n", 3, "\10\2BITTWO\1BITONE\n"); + * kvprintf("reg=%b\n", 3, "\10\2BITTWO\1BITONE"); * * would produce output: * @@ -500,7 +500,7 @@ number: while (percent < fmt) PCHAR(*percent++); /* - * Since we ignore an formatting argument it is no + * Since we ignore a formatting argument it is no * longer safe to obey the remaining formatting * arguments as the arguments will no longer match * the format specs. Modified: projects/building-blocks/release/Makefile ============================================================================== --- projects/building-blocks/release/Makefile Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/release/Makefile Sat Jan 24 21:21:39 2015 (r277660) @@ -279,6 +279,7 @@ ftp: packagesystem cp *.txz MANIFEST ftp release: real-release vm-release cloudware-release + @true real-release: ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} obj Modified: projects/building-blocks/release/Makefile.vm ============================================================================== --- projects/building-blocks/release/Makefile.vm Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/release/Makefile.vm Sat Jan 24 21:21:39 2015 (r277660) @@ -50,8 +50,8 @@ vm-${_CW:tl}: .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) CLEANDIRS+= ${VMTARGETS} -CLEANFILES+= ${VMBASE}.img . for FORMAT in ${VMFORMATS} +CLEANFILES+= ${FORMAT}.img CLEANFILES+= ${VMBASE}.${FORMAT} . endfor .endif @@ -65,7 +65,7 @@ vm-image: env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ ${.CURDIR}/scripts/mk-vmimage.sh \ -C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} \ - -i ${.OBJDIR}/${VMBASE}.img -s ${VMSIZE} -f ${FORMAT} \ + -i ${.OBJDIR}/${FORMAT}.img -s ${VMSIZE} -f ${FORMAT} \ -S ${WORLDDIR} -o ${.OBJDIR}/${VMBASE}.${FORMAT} . endfor .endif 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 Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/release/doc/en_US.ISO8859-1/relnotes/article.xml Sat Jan 24 21:21:39 2015 (r277660) @@ -20,7 +20,7 @@ $FreeBSD$ - + 2015 @@ -691,6 +691,10 @@ has been updated to support UTF-8, which additionally provides unicode support to &man.sh.1;. + The &man.ptrace.2; system + call has been updated include support for Altivec registers on + &os;/&arch.powerpc;. + <acronym>ABI</acronym> Compatibility @@ -791,6 +795,11 @@ strings were switched to the versions from the ELF Tool Chain project. + The libedit library + has been updated to include UTF-8 support, + adding UTF-8 support to the &man.sh.1; + shell. + OpenSSL has been updated to version 1.0.1l. @@ -804,7 +813,10 @@ Release Engineering and Integration -   + The + Release Engineering build tools have been updated to include + support for producing virtual machine disk images for various + cloud hosting providers. Modified: projects/building-blocks/release/picobsd/build/picobsd ============================================================================== --- projects/building-blocks/release/picobsd/build/picobsd Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/release/picobsd/build/picobsd Sat Jan 24 21:21:39 2015 (r277660) @@ -734,8 +734,8 @@ populate_mfs_tree() { [ -n "${copy_files}" ] && do_copyfiles ${dst} copy_files do_copyfiles_user ${dst} || true [ -n "${links}" ] && do_links ${dst} links - strip ${dst}/libexec/* ${dst}/lib/* ${dst}/stand/* 2> /dev/null || true - + strip ${dst}/libexec/* ${dst}/lib/* 2> /dev/null || true + # strip ${dst}/stand/* 2> /dev/null || true # The 'import_files' mechanism is deprecated, as it requires # root permissions to follow the symlinks, and also does # not let you rename the entries. @@ -756,7 +756,7 @@ populate_mfs_tree() { # override the owner echo "/set uid=0 gid=0" > mtree.out mtree -ic -p ${dst} -k "" >> mtree.out - log "mtre.out at ${BUILDDIR}/mtree.out" + log "mtree.out at ${BUILDDIR}/mtree.out size ${MFS_SIZE}k" makefs -t ffs -o bsize=4096 -o fsize=512 \ -s ${MFS_SIZE}k -f 1000 -F mtree.out ${c_fs} ${dst} ls -l ${c_fs} ) Modified: projects/building-blocks/sbin/ping/ping.c ============================================================================== --- projects/building-blocks/sbin/ping/ping.c Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/sbin/ping/ping.c Sat Jan 24 21:21:39 2015 (r277660) @@ -713,7 +713,7 @@ main(int argc, char *const *argv) ip->ip_hl = sizeof(struct ip) >> 2; ip->ip_tos = tos; ip->ip_id = 0; - ip->ip_off = df ? IP_DF : 0; + ip->ip_off = htons(df ? IP_DF : 0); ip->ip_ttl = ttl; ip->ip_p = IPPROTO_ICMP; ip->ip_src.s_addr = source ? sock_in.sin_addr.s_addr : INADDR_ANY; @@ -1078,7 +1078,7 @@ pinger(void) if (options & F_HDRINCL) { cc += sizeof(struct ip); ip = (struct ip *)outpackhdr; - ip->ip_len = cc; + ip->ip_len = htons(cc); ip->ip_sum = in_cksum((u_short *)outpackhdr, cc); packet = outpackhdr; } Modified: projects/building-blocks/share/man/man3/tree.3 ============================================================================== --- projects/building-blocks/share/man/man3/tree.3 Sat Jan 24 21:05:18 2015 (r277659) +++ projects/building-blocks/share/man/man3/tree.3 Sat Jan 24 21:21:39 2015 (r277660) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 10, 2013 +.Dd January 24, 2015 .Dt TREE 3 .Os .Sh NAME @@ -53,8 +53,26 @@ .Nm SPLAY_REMOVE , .Nm RB_PROTOTYPE , .Nm RB_PROTOTYPE_STATIC , +.Nm RB_PROTOTYPE_INSERT , +.Nm RB_PROTOTYPE_INSERT_COLOR , +.Nm RB_PROTOTYPE_REMOVE , +.Nm RB_PROTOTYPE_REMOVE_COLOR , +.Nm RB_PROTOTYPE_FIND , +.Nm RB_PROTOTYPE_NFIND , +.Nm RB_PROTOTYPE_NEXT , +.Nm RB_PROTOTYPE_PREV , +.Nm RB_PROTOTYPE_MINMAX , .Nm RB_GENERATE , .Nm RB_GENERATE_STATIC , +.Nm RB_GENERATE_INSERT , +.Nm RB_GENERATE_INSERT_COLOR , +.Nm RB_GENERATE_REMOVE , +.Nm RB_GENERATE_REMOVE_COLOR , +.Nm RB_GENERATE_FIND , +.Nm RB_GENERATE_NFIND , +.Nm RB_GENERATE_NEXT , +.Nm RB_GENERATE_PREV , +.Nm RB_GENERATE_MINMAX , .Nm RB_ENTRY , .Nm RB_HEAD , .Nm RB_INITIALIZER , @@ -111,8 +129,26 @@ .Fn SPLAY_REMOVE NAME "SPLAY_HEAD *head" "struct TYPE *elm" .Fn RB_PROTOTYPE NAME TYPE FIELD CMP .Fn RB_PROTOTYPE_STATIC NAME TYPE FIELD CMP +.Fn RB_PROTOTYPE_INSERT NAME TYPE ATTR *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***