PERFORCE change 144379 for review

Edward Tomasz Napierala trasz at FreeBSD.org
Mon Jun 30 19:40:21 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=144379

Change 144379 by trasz at trasz_traszkan on 2008/06/30 19:39:35

	IFC

Affected files ...

.. //depot/projects/soc2008/trasz_nfs4acl/contrib/gcc/config/i386/freebsd.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/etc/devd.conf#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/etc/periodic/security/800.loginfail#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/lockd#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/statd#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/gnu/usr.bin/cvs/contrib/Makefile#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/archive_read_support_format_zip.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/test/test_compat_zip_1.zip.uu#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/amd64/gen/_setjmp.S#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/amd64/gen/setjmp.S#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/i386/gen/_setjmp.S#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/i386/gen/setjmp.S#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/stdio/Makefile.inc#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/stdio/printf-pos.c#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/stdio/printflocal.h#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/stdio/vfprintf.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/stdio/vfwprintf.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/sys/mkdir.2#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/sys/socket.2#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/msun/man/cos.3#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sbin/devfs/devfs.8#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/aac.4#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/include/pmap.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/include/vmparam.h#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/NOTES#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/aac/aac_pci.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/acpi_support/acpi_asus.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mfi/mfi.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sound/pci/atiixp.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usbdevs#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/uscanner.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/virstor/g_virstor.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_cpuset.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_descrip.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_intr.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_xxx.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/uipc_sem.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/uipc_shm.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/modules/ralfw/Makefile#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/modules/sem/Makefile#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_gre.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_loop.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_var.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/udp_usrreq.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/in6_rmx.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/ip6_ipsec.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netipsec/key.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/nlm/nlm_prot_impl.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/rpc/auth_unix.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/rpc/rpcb_clnt.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/security/mac/mac_framework.h#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/security/mac/mac_policy.h#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/security/mac/mac_posix_sem.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/security/mac_biba/mac_biba.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/security/mac_mls/mac_mls.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/security/mac_stub/mac_stub.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/security/mac_test/mac_test.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/in_cksum.h#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/file.h#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/ksem.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/priv.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/user.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/lib/libc/stdio/Makefile#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/lib/libc/stdio/test-print-positional.c#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/posixsem/Makefile#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/posixsem/posixsem.c#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/posixsem/posixsem.t#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/posixsem/test.c#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/posixsem/test.h#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/posixshm/test.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/gzip/gzip.1#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/make/make.1#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/procstat/procstat_files.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/unzip/unzip.1#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/unzip/unzip.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/config/mkmakefile.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/cron/cron/cron.8#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/cron/cron/cron.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/cron/cron/cron.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/cron/cron/do_command.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/mountd/exports.5#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/ngctl/main.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/pmcstat/pmcstat.8#2 integrate

Differences ...

==== //depot/projects/soc2008/trasz_nfs4acl/contrib/gcc/config/i386/freebsd.h#2 (text+ko) ====

@@ -22,7 +22,7 @@
 the Free Software Foundation, 51 Franklin Street, Fifth Floor,
 Boston, MA 02110-1301, USA.  */
 
-/* $FreeBSD: src/contrib/gcc/config/i386/freebsd.h,v 1.73 2007/05/19 02:30:20 kan Exp $ */
+/* $FreeBSD: src/contrib/gcc/config/i386/freebsd.h,v 1.75 2008/06/28 15:28:17 obrien Exp $ */
 
 #undef  CC1_SPEC
 #define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
@@ -54,7 +54,7 @@
 /* Reset our STARTFILE_SPEC which was properly set in config/freebsd.h
    but trashed by config/<cpu>/<file.h>. */
 
-#undef STARTFILE_SPEC
+#undef  STARTFILE_SPEC
 #define STARTFILE_SPEC FBSD_STARTFILE_SPEC
 
 /* Provide an ENDFILE_SPEC appropriate for FreeBSD/i386.  */
@@ -78,13 +78,13 @@
 #undef  WCHAR_TYPE_SIZE
 #define WCHAR_TYPE_SIZE	(TARGET_64BIT ? 32 : BITS_PER_WORD)
 
-#undef  SUBTARGET_EXTRA_SPECS  /* i386.h bogusly defines it.  */
+#undef  SUBTARGET_EXTRA_SPECS	/* i386.h bogusly defines it.  */
 #define SUBTARGET_EXTRA_SPECS \
   { "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }
 
 #define TARGET_VERSION	fprintf (stderr, " (i386 FreeBSD/ELF)");
 
-#define TARGET_ELF			1
+#define TARGET_ELF	1
 
 /* This goes away when the math emulator is fixed.  */
 #undef  TARGET_SUBTARGET_DEFAULT
@@ -101,7 +101,7 @@
 
 /* FreeBSD sets the rounding precision of the FPU to 53 bits.  Let the
    compiler get the contents of <float.h> and std::numeric_limits correct.  */
-#undef TARGET_96_ROUND_53_LONG_DOUBLE
+#undef  TARGET_96_ROUND_53_LONG_DOUBLE
 #define TARGET_96_ROUND_53_LONG_DOUBLE (!TARGET_64BIT)
 
 /* Tell final.c that we don't need a label passed to mcount.  */
@@ -110,7 +110,7 @@
 /* Output assembler code to FILE to begin profiling of the current function.
    LABELNO is an optional label.  */
 
-#undef MCOUNT_NAME
+#undef  MCOUNT_NAME
 #define MCOUNT_NAME ".mcount"
 
 /* Output assembler code to FILE to end profiling of the current function.  */
@@ -145,7 +145,7 @@
 	else								\
 	  fprintf ((FILE), "%s", xname);				\
       }									\
-    else 								\
+    else								\
       {									\
 	  if (xname[0] == '%')						\
 	    xname += 2;							\
@@ -191,7 +191,7 @@
    uninitialized global data will be output in the data section if
    `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
    used.  */
-#undef BSS_SECTION_ASM_OP
+#undef  BSS_SECTION_ASM_OP
 #define BSS_SECTION_ASM_OP "\t.section\t.bss"
 
 /* Like `ASM_OUTPUT_BSS' except takes the required alignment as a
@@ -202,7 +202,7 @@
 
    Try to use function `asm_output_aligned_bss' defined in file
    `varasm.c' when defining this macro.  */
-#undef ASM_OUTPUT_ALIGNED_BSS
+#undef  ASM_OUTPUT_ALIGNED_BSS
 #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
 
@@ -230,7 +230,7 @@
     assemble_name (asm_out_file, NAME);					\
         fputc ('-', asm_out_file);					\
         assemble_name (asm_out_file,					\
-	      	 XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));	\
+		 XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));	\
     fprintf (asm_out_file, "\n");					\
   } while (0)
 

==== //depot/projects/soc2008/trasz_nfs4acl/etc/devd.conf#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/devd.conf,v 1.41 2008/06/15 13:26:25 kmacy Exp $
+# $FreeBSD: src/etc/devd.conf,v 1.42 2008/06/27 12:04:36 rpaulo Exp $
 #
 # Refer to devd.conf(5) and devd(8) man pages for the details on how to
 # run and configure devd.
@@ -255,6 +255,28 @@
 	action "/etc/rc.resume acpi $notify";
 };
 
+# The next blocks enable volume hotkeys that can be found on the Asus EeePC
+notify 0 {
+        match "system"          "ACPI";
+        match "subsystem"       "ASUS-Eee";
+        match "notify"          "0x13";
+        action                  "mixer 0";
+};
+
+notify 0 {
+        match "system"          "ACPI";
+        match "subsystem"       "ASUS-Eee";
+        match "notify"          "0x14";
+        action                  "mixer vol -10";
+};
+
+notify 0 {
+        match "system"          "ACPI";
+        match "subsystem"       "ASUS-Eee";
+        match "notify"          "0x15";
+        action                  "mixer vol +10";
+};
+
 /* EXAMPLES TO END OF FILE
 
 # The following might be an example of something that a vendor might

==== //depot/projects/soc2008/trasz_nfs4acl/etc/periodic/security/800.loginfail#2 (text+ko) ====

@@ -24,7 +24,7 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# $FreeBSD: src/etc/periodic/security/800.loginfail,v 1.8 2007/02/23 21:42:54 remko Exp $
+# $FreeBSD: src/etc/periodic/security/800.loginfail,v 1.9 2008/06/30 08:01:47 mtm Exp $
 #
 
 # Show login failures
@@ -59,7 +59,7 @@
     [Yy][Ee][Ss])
 	echo ""
 	echo "${host} login failures:"
-	n=$(catmsgs | egrep -ia "^$yesterday.*: .* (fail|invalid|bad|illegal)" |
+	n=$(catmsgs | egrep -ia "^$yesterday.*: .*(fail|invalid|bad|illegal)" |
 	    tee /dev/stderr | wc -l)
 	[ $n -gt 0 ] && rc=1 || rc=0;;
     *)	rc=0;;

==== //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/lockd#3 (text+ko) ====

@@ -1,7 +1,7 @@
 #!/bin/sh
 #
 # FreeBSD History: src/etc/rc.d/nfslocking,v 1.11 2004/10/07 13:55:26 mtm
-# $FreeBSD: src/etc/rc.d/lockd,v 1.20 2008/06/23 04:05:39 mtm Exp $
+# $FreeBSD: src/etc/rc.d/lockd,v 1.21 2008/06/27 15:45:17 mtm Exp $
 #
 
 # PROVIDE: lockd
@@ -15,7 +15,7 @@
 rcvar=rpc_lockd_enable
 command="/usr/sbin/rpc.${name}"
 start_precmd='lockd_precmd'
-stop_precmd='checkyesno nfs_server_enable || checkyesno nfsclient_enable'
+stop_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable'
 status_precmd=$stop_precmd
 
 # Make sure that we are either an NFS client or server, and that we get
@@ -26,7 +26,7 @@
 	local ret
 	ret=0
 
-	if ! checkyesno nfs_server_enable && ! checkyesno nfsclient_enable
+	if ! checkyesno nfs_server_enable && ! checkyesno nfs_client_enable
 	then
 		ret=1
 	fi

==== //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/statd#3 (text+ko) ====

@@ -1,7 +1,7 @@
 #!/bin/sh
 #
 # FreeBSD History: src/etc/rc.d/nfslocking,v 1.11 2004/10/07 13:55:26 mtm Exp
-# $FreeBSD: src/etc/rc.d/statd,v 1.19 2008/06/23 04:05:39 mtm Exp $
+# $FreeBSD: src/etc/rc.d/statd,v 1.20 2008/06/27 15:45:17 mtm Exp $
 #
 
 # PROVIDE: statd
@@ -15,7 +15,7 @@
 rcvar=rpc_statd_enable
 command="/usr/sbin/rpc.${name}"
 start_precmd='statd_precmd'
-stop_precmd='checkyesno nfs_server_enable || checkyesno nfsclient_enable'
+stop_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable'
 status_precmd=$stop_precmd
 
 # Make sure that we are either an NFS client or server, and that we get
@@ -26,7 +26,7 @@
 	local ret
 	ret=0
 
-	if ! checkyesno nfs_server_enable && ! checkyesno nfsclient_enable
+	if ! checkyesno nfs_server_enable && ! checkyesno nfs_client_enable
 	then
 		ret=1
 	fi

==== //depot/projects/soc2008/trasz_nfs4acl/gnu/usr.bin/cvs/contrib/Makefile#2 (text+ko) ====

@@ -1,6 +1,4 @@
-# $FreeBSD: src/gnu/usr.bin/cvs/contrib/Makefile,v 1.20 2008/01/16 17:15:59 obrien Exp $
-
-.POSIX:
+# $FreeBSD: src/gnu/usr.bin/cvs/contrib/Makefile,v 1.21 2008/06/27 14:59:23 obrien Exp $
 
 .include "../Makefile.inc"
 
@@ -21,6 +19,10 @@
 
 .SUFFIXES: .sh .pl .in
 
+# Prevent Makefile.in from overwriting Makefile through the suffix rules.
+Makefile:
+	@:
+
 .sh:
 	cp ${.IMPSRC} ${.TARGET}
 

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/archive_read_support_format_zip.c#3 (text+ko) ====

@@ -24,7 +24,7 @@
  */
 
 #include "archive_platform.h"
-__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_zip.c,v 1.25 2008/06/26 11:48:19 des Exp $");
+__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_zip.c,v 1.26 2008/06/30 16:19:26 des Exp $");
 
 #ifdef HAVE_ERRNO_H
 #include <errno.h>
@@ -530,7 +530,8 @@
 			/* Check computed CRC against header */
 			if (zip->crc32 != zip->entry_crc32) {
 				archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-				    "ZIP data CRC error");
+				    "ZIP bad CRC: 0x%lx should be 0x%lx",
+				    zip->entry_crc32, zip->crc32);
 				return (ARCHIVE_WARN);
 			}
 			/* End-of-entry cleanup done. */

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/test/test_compat_zip_1.zip.uu#2 (text+ko) ====

@@ -1,3 +1,4 @@
+$FreeBSD: src/lib/libarchive/test/test_compat_zip_1.zip.uu,v 1.2 2008/06/30 15:49:12 des Exp $
 begin 644 test_compat_zip_1.zip
 M4$L#!!0`"``(``B$@S<````````````````4````345402U)3D8O34%.249%
 M4U0N34;S3<S+3$LM+M$-2RTJSLS/LU(PU#/@Y7+,0Q)Q+$A,SDA5`(H!)<U!

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/amd64/gen/_setjmp.S#2 (text+ko) ====

@@ -34,7 +34,7 @@
 	.asciz "@(#)_setjmp.s	5.1 (Berkeley) 4/23/90"
 #endif /* LIBC_SCCS and not lint */
 #include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/_setjmp.S,v 1.19 2007/01/09 00:27:48 imp Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/_setjmp.S,v 1.20 2008/06/28 17:55:43 das Exp $");
 
 /*
  * C library -- _setjmp, _longjmp
@@ -58,6 +58,7 @@
 	movq	%r14,48(%rax)		/* 6; r14 */
 	movq	%r15,56(%rax)		/* 7; r15 */
 	fnstcw	64(%rax)		/* 8; fpu cw */
+	stmxcsr	68(%rax)		/*    and mxcsr */
 	xorq	%rax,%rax
 	ret
 
@@ -65,6 +66,15 @@
 	.set	CNAME(_longjmp),CNAME(___longjmp)
 ENTRY(___longjmp)
 	movq	%rdi,%rdx
+	/* Restore the mxcsr, but leave exception flags intact. */
+	stmxcsr	-4(%rsp)
+	movl	68(%rdx),%eax
+	andl	$0xffffffc0,%eax
+	movl	-4(%rsp),%edi
+	andl	$0x3f,%edi
+	xorl	%eax,%edi
+	movl	%edi,-4(%rsp)
+	ldmxcsr -4(%rsp)
 	movq	%rsi,%rax		/* retval */
 	movq	0(%rdx),%rcx
 	movq	8(%rdx),%rbx
@@ -74,7 +84,6 @@
 	movq	40(%rdx),%r13
 	movq	48(%rdx),%r14
 	movq	56(%rdx),%r15
-	fninit
 	fldcw	64(%rdx)
 	testq	%rax,%rax
 	jnz	1f

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/amd64/gen/setjmp.S#2 (text+ko) ====

@@ -34,7 +34,7 @@
 	.asciz "@(#)setjmp.s	5.1 (Berkeley) 4/23/90"
 #endif /* LIBC_SCCS and not lint */
 #include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/setjmp.S,v 1.27 2007/01/09 00:27:48 imp Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/setjmp.S,v 1.28 2008/06/28 17:55:43 das Exp $");
 
 /*
  * C library -- _setjmp, _longjmp
@@ -67,6 +67,7 @@
 	movq	%r14,48(%rcx)		/* 6; r14 */
 	movq	%r15,56(%rcx)		/* 7; r15 */
 	fnstcw	64(%rcx)		/* 8; fpu cw */
+	stmxcsr	68(%rcx)		/*    and mxcsr */
 	xorq	%rax,%rax
 	ret
 
@@ -83,6 +84,15 @@
 	popq	%rsi
 	popq	%rdi			/* jmpbuf */
 	movq	%rdi,%rdx
+	/* Restore the mxcsr, but leave exception flags intact. */
+	stmxcsr	-4(%rsp)
+	movl	68(%rdx),%eax
+	andl	$0xffffffc0,%eax
+	movl	-4(%rsp),%edi
+	andl	$0x3f,%edi
+	xorl	%eax,%edi
+	movl	%edi,-4(%rsp)
+	ldmxcsr -4(%rsp)
 	movq	%rsi,%rax		/* retval */
 	movq	0(%rdx),%rcx
 	movq	8(%rdx),%rbx
@@ -92,7 +102,6 @@
 	movq	40(%rdx),%r13
 	movq	48(%rdx),%r14
 	movq	56(%rdx),%r15
-	fninit
 	fldcw	64(%rdx)
 	testq	%rax,%rax
 	jnz	1f

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/i386/gen/_setjmp.S#2 (text+ko) ====

@@ -34,7 +34,7 @@
 	.asciz "@(#)_setjmp.s	5.1 (Berkeley) 4/23/90"
 #endif /* LIBC_SCCS and not lint */
 #include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/i386/gen/_setjmp.S,v 1.17 2007/01/09 00:27:58 imp Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/i386/gen/_setjmp.S,v 1.18 2008/06/28 17:58:06 das Exp $");
 
 /*
  * C library -- _setjmp, _longjmp
@@ -70,7 +70,6 @@
 	movl	12(%edx),%ebp
 	movl	16(%edx),%esi
 	movl	20(%edx),%edi
-	fninit
 	fldcw	24(%edx)
 	testl	%eax,%eax
 	jnz	1f

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/i386/gen/setjmp.S#2 (text+ko) ====

@@ -34,7 +34,7 @@
 	.asciz "@(#)setjmp.s	5.1 (Berkeley) 4/23/90"
 #endif /* LIBC_SCCS and not lint */
 #include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/i386/gen/setjmp.S,v 1.23 2007/01/09 00:27:58 imp Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/i386/gen/setjmp.S,v 1.24 2008/06/28 17:58:06 das Exp $");
 
 /*
  * C library -- _setjmp, _longjmp
@@ -90,7 +90,6 @@
 	movl	12(%edx),%ebp
 	movl	16(%edx),%esi
 	movl	20(%edx),%edi
-	fninit
 	fldcw	24(%edx)
 	testl	%eax,%eax
 	jnz	1f

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/stdio/Makefile.inc#2 (text+ko) ====

@@ -1,5 +1,5 @@
 #	@(#)Makefile.inc	8.3 (Berkeley) 4/17/94
-# $FreeBSD: src/lib/libc/stdio/Makefile.inc,v 1.38 2008/05/02 15:25:07 jhb Exp $
+# $FreeBSD: src/lib/libc/stdio/Makefile.inc,v 1.39 2008/06/29 21:52:40 das Exp $
 
 # stdio sources
 .PATH: ${.CURDIR}/stdio
@@ -12,7 +12,8 @@
 	ftell.c funopen.c fvwrite.c fwalk.c fwide.c fwprintf.c fwscanf.c \
 	fwrite.c getc.c \
 	getchar.c gets.c getw.c getwc.c getwchar.c makebuf.c mktemp.c \
-	perror.c printf.c putc.c putchar.c puts.c putw.c putwc.c putwchar.c \
+	perror.c printf.c printf-pos.c putc.c putchar.c \
+	puts.c putw.c putwc.c putwchar.c \
 	refill.c remove.c rewind.c rget.c scanf.c setbuf.c setbuffer.c \
 	setvbuf.c snprintf.c sprintf.c sscanf.c stdio.c swprintf.c swscanf.c \
 	tempnam.c tmpfile.c \

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/stdio/vfprintf.c#2 (text+ko) ====

@@ -34,7 +34,7 @@
 static char sccsid[] = "@(#)vfprintf.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/vfprintf.c,v 1.78 2008/04/17 22:17:54 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/vfprintf.c,v 1.81 2008/06/29 22:54:26 das Exp $");
 
 /*
  * Actual printf innards.
@@ -62,46 +62,7 @@
 #include "libc_private.h"
 #include "local.h"
 #include "fvwrite.h"
-
-union arg {
-	int	intarg;
-	u_int	uintarg;
-	long	longarg;
-	u_long	ulongarg;
-	long long longlongarg;
-	unsigned long long ulonglongarg;
-	ptrdiff_t ptrdiffarg;
-	size_t	sizearg;
-	intmax_t intmaxarg;
-	uintmax_t uintmaxarg;
-	void	*pvoidarg;
-	char	*pchararg;
-	signed char *pschararg;
-	short	*pshortarg;
-	int	*pintarg;
-	long	*plongarg;
-	long long *plonglongarg;
-	ptrdiff_t *pptrdiffarg;
-	size_t	*psizearg;
-	intmax_t *pintmaxarg;
-#ifndef NO_FLOATING_POINT
-	double	doublearg;
-	long double longdoublearg;
-#endif
-	wint_t	wintarg;
-	wchar_t	*pwchararg;
-};
-
-/*
- * Type ids for argument type table.
- */
-enum typeid {
-	T_UNUSED, TP_SHORT, T_INT, T_U_INT, TP_INT,
-	T_LONG, T_U_LONG, TP_LONG, T_LLONG, T_U_LLONG, TP_LLONG,
-	T_PTRDIFFT, TP_PTRDIFFT, T_SIZET, TP_SIZET,
-	T_INTMAXT, T_UINTMAXT, TP_INTMAXT, TP_VOID, TP_CHAR, TP_SCHAR,
-	T_DOUBLE, T_LONG_DOUBLE, T_WINT, TP_WCHAR
-};
+#include "printflocal.h"
 
 static int	__sprint(FILE *, struct __suio *);
 static int	__sbprintf(FILE *, const char *, va_list) __printflike(2, 0);
@@ -110,8 +71,6 @@
 static char	*__ultoa(u_long, char *, int, int, const char *, int, char,
 		    const char *);
 static char	*__wcsconv(wchar_t *, int);
-static void	__find_arguments(const char *, va_list, union arg **);
-static void	__grow_type_table(int, enum typeid **, int *);
 
 /*
  * Flush out all the vectors defined by the given uio,
@@ -167,13 +126,6 @@
 }
 
 /*
- * Macros for converting digits to letters and vice versa
- */
-#define	to_digit(c)	((c) - '0')
-#define is_digit(c)	((unsigned)to_digit(c) <= 9)
-#define	to_char(n)	((n) + '0')
-
-/*
  * Convert an unsigned long to ASCII for printf purposes, returning
  * a pointer to the first character of the string representation.
  * Octal numbers can be forced to have a leading zero; hex numbers
@@ -426,27 +378,7 @@
  */
 #define	BUF	100
 
-#define STATIC_ARG_TBL_SIZE 8           /* Size of static argument table. */
-
 /*
- * Flags used during conversion.
- */
-#define	ALT		0x001		/* alternate form */
-#define	LADJUST		0x004		/* left adjustment */
-#define	LONGDBL		0x008		/* long double */
-#define	LONGINT		0x010		/* long integer */
-#define	LLONGINT	0x020		/* long long integer */
-#define	SHORTINT	0x040		/* short integer */
-#define	ZEROPAD		0x080		/* zero (as opposed to blank) pad */
-#define	FPT		0x100		/* Floating point number */
-#define	GROUPING	0x200		/* use grouping ("'" flag) */
-					/* C99 additional size modifiers: */
-#define	SIZET		0x400		/* size_t */
-#define	PTRDIFFT	0x800		/* ptrdiff_t */
-#define	INTMAXT		0x1000		/* intmax_t */
-#define	CHARINT		0x2000		/* print char using int format */
-
-/*
  * Non-MT-safe version
  */
 int
@@ -623,7 +555,10 @@
 		int hold = nextarg; \
 		if (argtable == NULL) { \
 			argtable = statargtable; \
-			__find_arguments (fmt0, orgap, &argtable); \
+			if (__find_arguments (fmt0, orgap, &argtable)) { \
+				ret = EOF; \
+				goto error; \
+			} \
 		} \
 		nextarg = n2; \
 		val = GETARG (int); \
@@ -751,8 +686,11 @@
 				nextarg = n;
 				if (argtable == NULL) {
 					argtable = statargtable;
-					__find_arguments (fmt0, orgap,
-					    &argtable);
+					if (__find_arguments (fmt0, orgap,
+							      &argtable)) {
+						ret = EOF;
+						goto error;
+					}
 				}
 				goto rflag;
 			}
@@ -1255,364 +1193,6 @@
 	/* NOTREACHED */
 }
 
-/*
- * Find all arguments when a positional parameter is encountered.  Returns a
- * table, indexed by argument number, of pointers to each arguments.  The
- * initial argument table should be an array of STATIC_ARG_TBL_SIZE entries.
- * It will be replaces with a malloc-ed one if it overflows.
- */ 
-static void
-__find_arguments (const char *fmt0, va_list ap, union arg **argtable)
-{
-	char *fmt;		/* format string */
-	int ch;			/* character from fmt */
-	int n, n2;		/* handy integer (short term usage) */
-	char *cp;		/* handy char pointer (short term usage) */
-	int flags;		/* flags as above */
-	int width;		/* width from format (%8d), or 0 */
-	enum typeid *typetable; /* table of types */
-	enum typeid stattypetable [STATIC_ARG_TBL_SIZE];
-	int tablesize;		/* current size of type table */
-	int tablemax;		/* largest used index in table */
-	int nextarg;		/* 1-based argument index */
-
-	/*
-	 * Add an argument type to the table, expanding if necessary.
-	 */
-#define ADDTYPE(type) \
-	((nextarg >= tablesize) ? \
-		__grow_type_table(nextarg, &typetable, &tablesize) : (void)0, \
-	(nextarg > tablemax) ? tablemax = nextarg : 0, \
-	typetable[nextarg++] = type)
-
-#define	ADDSARG() \
-	((flags&INTMAXT) ? ADDTYPE(T_INTMAXT) : \
-		((flags&SIZET) ? ADDTYPE(T_SIZET) : \
-		((flags&PTRDIFFT) ? ADDTYPE(T_PTRDIFFT) : \
-		((flags&LLONGINT) ? ADDTYPE(T_LLONG) : \
-		((flags&LONGINT) ? ADDTYPE(T_LONG) : ADDTYPE(T_INT))))))
-
-#define	ADDUARG() \
-	((flags&INTMAXT) ? ADDTYPE(T_UINTMAXT) : \
-		((flags&SIZET) ? ADDTYPE(T_SIZET) : \
-		((flags&PTRDIFFT) ? ADDTYPE(T_PTRDIFFT) : \
-		((flags&LLONGINT) ? ADDTYPE(T_U_LLONG) : \
-		((flags&LONGINT) ? ADDTYPE(T_U_LONG) : ADDTYPE(T_U_INT))))))
-
-	/*
-	 * Add * arguments to the type array.
-	 */
-#define ADDASTER() \
-	n2 = 0; \
-	cp = fmt; \
-	while (is_digit(*cp)) { \
-		n2 = 10 * n2 + to_digit(*cp); \
-		cp++; \
-	} \
-	if (*cp == '$') { \
-		int hold = nextarg; \
-		nextarg = n2; \
-		ADDTYPE (T_INT); \
-		nextarg = hold; \
-		fmt = ++cp; \
-	} else { \
-		ADDTYPE (T_INT); \
-	}
-	fmt = (char *)fmt0;
-	typetable = stattypetable;
-	tablesize = STATIC_ARG_TBL_SIZE;
-	tablemax = 0; 
-	nextarg = 1;
-	for (n = 0; n < STATIC_ARG_TBL_SIZE; n++)
-		typetable[n] = T_UNUSED;
-
-	/*
-	 * Scan the format for conversions (`%' character).
-	 */
-	for (;;) {
-		for (cp = fmt; (ch = *fmt) != '\0' && ch != '%'; fmt++)
-			/* void */;
-		if (ch == '\0')
-			goto done;
-		fmt++;		/* skip over '%' */
-
-		flags = 0;
-		width = 0;
-
-rflag:		ch = *fmt++;
-reswitch:	switch (ch) {
-		case ' ':
-		case '#':
-			goto rflag;
-		case '*':
-			ADDASTER ();
-			goto rflag;
-		case '-':
-		case '+':
-		case '\'':
-			goto rflag;
-		case '.':
-			if ((ch = *fmt++) == '*') {
-				ADDASTER ();
-				goto rflag;
-			}
-			while (is_digit(ch)) {
-				ch = *fmt++;
-			}
-			goto reswitch;
-		case '0':
-			goto rflag;
-		case '1': case '2': case '3': case '4':
-		case '5': case '6': case '7': case '8': case '9':
-			n = 0;
-			do {
-				n = 10 * n + to_digit(ch);
-				ch = *fmt++;
-			} while (is_digit(ch));
-			if (ch == '$') {
-				nextarg = n;
-				goto rflag;
-			}
-			width = n;
-			goto reswitch;
-#ifndef NO_FLOATING_POINT
-		case 'L':
-			flags |= LONGDBL;
-			goto rflag;
-#endif
-		case 'h':
-			if (flags & SHORTINT) {
-				flags &= ~SHORTINT;
-				flags |= CHARINT;
-			} else
-				flags |= SHORTINT;
-			goto rflag;
-		case 'j':
-			flags |= INTMAXT;
-			goto rflag;
-		case 'l':
-			if (flags & LONGINT) {
-				flags &= ~LONGINT;
-				flags |= LLONGINT;
-			} else
-				flags |= LONGINT;
-			goto rflag;
-		case 'q':
-			flags |= LLONGINT;	/* not necessarily */
-			goto rflag;
-		case 't':
-			flags |= PTRDIFFT;
-			goto rflag;
-		case 'z':
-			flags |= SIZET;
-			goto rflag;
-		case 'C':
-			flags |= LONGINT;
-			/*FALLTHROUGH*/
-		case 'c':
-			if (flags & LONGINT)
-				ADDTYPE(T_WINT);
-			else
-				ADDTYPE(T_INT);
-			break;
-		case 'D':
-			flags |= LONGINT;
-			/*FALLTHROUGH*/
-		case 'd':
-		case 'i':
-			ADDSARG();
-			break;
-#ifndef NO_FLOATING_POINT
-		case 'a':
-		case 'A':
-		case 'e':
-		case 'E':
-		case 'f':
-		case 'g':
-		case 'G':
-			if (flags & LONGDBL)
-				ADDTYPE(T_LONG_DOUBLE);
-			else
-				ADDTYPE(T_DOUBLE);
-			break;
-#endif /* !NO_FLOATING_POINT */
-		case 'n':
-			if (flags & INTMAXT)
-				ADDTYPE(TP_INTMAXT);
-			else if (flags & PTRDIFFT)
-				ADDTYPE(TP_PTRDIFFT);
-			else if (flags & SIZET)
-				ADDTYPE(TP_SIZET);
-			else if (flags & LLONGINT)
-				ADDTYPE(TP_LLONG);
-			else if (flags & LONGINT)
-				ADDTYPE(TP_LONG);
-			else if (flags & SHORTINT)
-				ADDTYPE(TP_SHORT);
-			else if (flags & CHARINT)
-				ADDTYPE(TP_SCHAR);
-			else
-				ADDTYPE(TP_INT);
-			continue;	/* no output */
-		case 'O':
-			flags |= LONGINT;
-			/*FALLTHROUGH*/
-		case 'o':
-			ADDUARG();
-			break;
-		case 'p':
-			ADDTYPE(TP_VOID);
-			break;
-		case 'S':
-			flags |= LONGINT;
-			/*FALLTHROUGH*/
-		case 's':
-			if (flags & LONGINT)
-				ADDTYPE(TP_WCHAR);
-			else
-				ADDTYPE(TP_CHAR);
-			break;
-		case 'U':
-			flags |= LONGINT;
-			/*FALLTHROUGH*/
-		case 'u':
-		case 'X':
-		case 'x':
-			ADDUARG();
-			break;
-		default:	/* "%?" prints ?, unless ? is NUL */
-			if (ch == '\0')
-				goto done;
-			break;
-		}
-	}
-done:
-	/*
-	 * Build the argument table.
-	 */
-	if (tablemax >= STATIC_ARG_TBL_SIZE) {
-		*argtable = (union arg *)
-		    malloc (sizeof (union arg) * (tablemax + 1));
-	}
-
-	(*argtable) [0].intarg = 0;
-	for (n = 1; n <= tablemax; n++) {
-		switch (typetable [n]) {
-		    case T_UNUSED: /* whoops! */
-			(*argtable) [n].intarg = va_arg (ap, int);
-			break;
-		    case TP_SCHAR:
-			(*argtable) [n].pschararg = va_arg (ap, signed char *);
-			break;
-		    case TP_SHORT:
-			(*argtable) [n].pshortarg = va_arg (ap, short *);
-			break;
-		    case T_INT:
-			(*argtable) [n].intarg = va_arg (ap, int);
-			break;
-		    case T_U_INT:
-			(*argtable) [n].uintarg = va_arg (ap, unsigned int);
-			break;
-		    case TP_INT:
-			(*argtable) [n].pintarg = va_arg (ap, int *);
-			break;
-		    case T_LONG:
-			(*argtable) [n].longarg = va_arg (ap, long);
-			break;
-		    case T_U_LONG:
-			(*argtable) [n].ulongarg = va_arg (ap, unsigned long);
-			break;
-		    case TP_LONG:
-			(*argtable) [n].plongarg = va_arg (ap, long *);
-			break;
-		    case T_LLONG:
-			(*argtable) [n].longlongarg = va_arg (ap, long long);
-			break;
-		    case T_U_LLONG:
-			(*argtable) [n].ulonglongarg = va_arg (ap, unsigned long long);
-			break;
-		    case TP_LLONG:
-			(*argtable) [n].plonglongarg = va_arg (ap, long long *);
-			break;
-		    case T_PTRDIFFT:
-			(*argtable) [n].ptrdiffarg = va_arg (ap, ptrdiff_t);
-			break;
-		    case TP_PTRDIFFT:
-			(*argtable) [n].pptrdiffarg = va_arg (ap, ptrdiff_t *);
-			break;
-		    case T_SIZET:
-			(*argtable) [n].sizearg = va_arg (ap, size_t);
-			break;
-		    case TP_SIZET:
-			(*argtable) [n].psizearg = va_arg (ap, size_t *);
-			break;
-		    case T_INTMAXT:
-			(*argtable) [n].intmaxarg = va_arg (ap, intmax_t);
-			break;
-		    case T_UINTMAXT:
-			(*argtable) [n].uintmaxarg = va_arg (ap, uintmax_t);
-			break;
-		    case TP_INTMAXT:
-			(*argtable) [n].pintmaxarg = va_arg (ap, intmax_t *);
-			break;
-		    case T_DOUBLE:
-#ifndef NO_FLOATING_POINT
-			(*argtable) [n].doublearg = va_arg (ap, double);
-#endif
-			break;
-		    case T_LONG_DOUBLE:
-#ifndef NO_FLOATING_POINT
-			(*argtable) [n].longdoublearg = va_arg (ap, long double);
-#endif
-			break;
-		    case TP_CHAR:
-			(*argtable) [n].pchararg = va_arg (ap, char *);
-			break;
-		    case TP_VOID:
-			(*argtable) [n].pvoidarg = va_arg (ap, void *);
-			break;
-		    case T_WINT:
-			(*argtable) [n].wintarg = va_arg (ap, wint_t);
-			break;
-		    case TP_WCHAR:
-			(*argtable) [n].pwchararg = va_arg (ap, wchar_t *);
-			break;
-		}
-	}
-
-	if ((typetable != NULL) && (typetable != stattypetable))
-		free (typetable);
-}
-
-/*
- * Increase the size of the type table.
- */
-static void
-__grow_type_table (int nextarg, enum typeid **typetable, int *tablesize)
-{
-	enum typeid *const oldtable = *typetable;
-	const int oldsize = *tablesize;
-	enum typeid *newtable;
-	int n, newsize = oldsize * 2;
-
-	if (newsize < nextarg + 1)
-		newsize = nextarg + 1;
-	if (oldsize == STATIC_ARG_TBL_SIZE) {
-		if ((newtable = malloc(newsize * sizeof(enum typeid))) == NULL)
-			abort();			/* XXX handle better */
-		bcopy(oldtable, newtable, oldsize * sizeof(enum typeid));
-	} else {
-		newtable = reallocf(oldtable, newsize * sizeof(enum typeid));
-		if (newtable == NULL)
-			abort();			/* XXX handle better */
-	}
-	for (n = oldsize; n < newsize; n++)
-		newtable[n] = T_UNUSED;
-
-	*typetable = newtable;
-	*tablesize = newsize;
-}

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list