[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r2907 - in /fsf/trunk/libc: ./ hurd/ libio/ login/ nis/nss_compat/ sysdeps/mach/hurd/ sysdeps/mach/hurd/bits/ sysdeps/mach/h...



Author: eglibc
Date: Mon Jul 23 00:02:42 2007
New Revision: 2907

Log:
Import glibc-mainline for 2007-07-23

Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/hurd/getdport.c
    fsf/trunk/libc/hurd/port2fd.c
    fsf/trunk/libc/libio/fileops.c
    fsf/trunk/libc/login/utmp_file.c
    fsf/trunk/libc/nis/nss_compat/compat-grp.c
    fsf/trunk/libc/nis/nss_compat/compat-initgroups.c
    fsf/trunk/libc/nis/nss_compat/compat-pwd.c
    fsf/trunk/libc/nis/nss_compat/compat-spwd.c
    fsf/trunk/libc/sysdeps/mach/hurd/bits/fcntl.h
    fsf/trunk/libc/sysdeps/mach/hurd/i386/tls.h
    fsf/trunk/libc/sysdeps/mach/hurd/sigaction.c
    fsf/trunk/libc/sysdeps/mach/hurd/sigsuspend.c
    fsf/trunk/libc/sysdeps/mach/hurd/tls.h
    fsf/trunk/libc/sysdeps/mach/i386/sysdep.h

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Mon Jul 23 00:02:42 2007
@@ -1,14 +1,37 @@
+2007-07-22  Roland McGrath  <roland@xxxxxxxx>
+
+	* hurd/getdport.c: Add missing copyright year update.
+
+	* sysdeps/mach/hurd/bits/fcntl.h [__USE_GNU] (O_CLOEXEC): New macro.
+	* hurd/port2fd.c (_hurd_port2fd): Implement O_CLOEXEC.
+
+2007-07-22  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* login/utmp_file.c (setutent_file): Use O_CLOEXEC if possible.
+
+	* libio/fileops.c (_IO_new_file_fopen): Recognize 'e' flag and set
+	O_CLOEXEC is needed.
+	* nis/nss_compat/compat-grp.c: Use 'e' flag when opening file.
+	Avoid additional fcntl to set O_CLOEXEC if not needed.
+	* nis/nss_compat/compat-initgroups.c: Likewise.
+	* nis/nss_compat/compat-pwd.c: Likewise.
+	* nis/nss_compat/compat-spwd.c: Likewise.
+
 2007-07-21  Samuel Thibault  <samuel.thibault@xxxxxxxxxxxx>
 
+	[BZ #3665]
 	* manual/errno.texi: Change ECANCELED value to 119.
 
+	[BZ #4610]
 	* mach/lock-intern.h: Include <sys/cdefs.h>.
 
+	[BZ #4178]
 	* sysdeps/mach/hurd/sigaction.c (__sigaction): Check ACT != NULL before
 	reading A.
 
-        * sysdeps/mach/hurd/sigsuspend.c (sigsuspend_not_cancel): Define alias
-        to __sigsuspend.
+	[BZ #4126]
+	* sysdeps/mach/hurd/sigsuspend.c (sigsuspend_not_cancel): Define alias
+	to __sigsuspend.
 
 	* sysdeps/mach/i386/sysdep.h: Include <dl-sysdep.h> and <tls.h>.
 

Modified: fsf/trunk/libc/hurd/getdport.c
==============================================================================
--- fsf/trunk/libc/hurd/getdport.c (original)
+++ fsf/trunk/libc/hurd/getdport.c Mon Jul 23 00:02:42 2007
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991, 1992, 1994, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1994,1995,1997,2007 Free Software Foundation, Inc.
+
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

Modified: fsf/trunk/libc/hurd/port2fd.c
==============================================================================
--- fsf/trunk/libc/hurd/port2fd.c (original)
+++ fsf/trunk/libc/hurd/port2fd.c Mon Jul 23 00:02:42 2007
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1997, 1999, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -55,7 +55,7 @@
     mach_port_t old
       = _hurd_userlink_clear (&d->port.users) ? d->port.port : MACH_PORT_NULL;
     d->port.port = dport;
-    d->flags = 0;
+    d->flags = (flags & O_CLOEXEC) ? FD_CLOEXEC : 0;
     if (old != MACH_PORT_NULL)
       __mach_port_deallocate (__mach_task_self (), old);
   }

Modified: fsf/trunk/libc/libio/fileops.c
==============================================================================
--- fsf/trunk/libc/libio/fileops.c (original)
+++ fsf/trunk/libc/libio/fileops.c Mon Jul 23 00:02:42 2007
@@ -320,6 +320,11 @@
 	case 'c':
 	  fp->_flags2 |= _IO_FLAGS2_NOTCANCEL;
 	  break;
+#ifdef O_CLOEXEC
+	case 'e':
+	  oflags |= O_CLOEXEC;
+	  break;
+#endif
 	default:
 	  /* Ignore.  */
 	  continue;

Modified: fsf/trunk/libc/login/utmp_file.c
==============================================================================
--- fsf/trunk/libc/login/utmp_file.c (original)
+++ fsf/trunk/libc/login/utmp_file.c Mon Jul 23 00:02:42 2007
@@ -27,6 +27,7 @@
 #include <unistd.h>
 #include <utmp.h>
 #include <not-cancel.h>
+#include <kernel-features.h>
 
 #include "utmp-private.h"
 #include "utmp-equal.h"
@@ -140,24 +141,47 @@
 
       file_name = TRANSFORM_UTMP_FILE_NAME (__libc_utmp_file_name);
 
-      file_fd = open_not_cancel_2 (file_name, O_RDWR | O_LARGEFILE);
+#ifdef O_CLOEXEC
+# define O_flags O_LARGEFILE | O_CLOEXEC
+#else
+# define O_flags O_LARGEFILE
+#endif
+      file_fd = open_not_cancel_2 (file_name, O_RDWR | O_flags);
       if (file_fd == -1)
 	{
 	  /* Hhm, read-write access did not work.  Try read-only.  */
-	  file_fd = open_not_cancel_2 (file_name, O_RDONLY | O_LARGEFILE);
+	  file_fd = open_not_cancel_2 (file_name, O_RDONLY | O_flags);
 	  if (file_fd == -1)
 	    return 0;
 	}
 
-      /* We have to make sure the file is `closed on exec'.  */
-      result = fcntl_not_cancel (file_fd, F_GETFD, 0);
-      if (result >= 0)
-	result = fcntl_not_cancel (file_fd, F_SETFD, result | FD_CLOEXEC);
-      if (result == -1)
+#ifndef __ASSUME_O_CLOEXEC
+# ifdef O_CLOEXEC
+      static int have_o_cloexec;
+
+      if (have_o_cloexec <= 0)
+# endif
 	{
-	  close_not_cancel_no_status (file_fd);
-	  return 0;
+	  /* We have to make sure the file is `closed on exec'.  */
+	  result = fcntl_not_cancel (file_fd, F_GETFD, 0);
+	  if (result >= 0)
+	    {
+# ifdef O_CLOEXEC
+	      if (have_o_cloexec == 0)
+		have_o_cloexec = (result & FD_CLOEXEC) ? 1 : -1;
+# endif
+
+	      result = fcntl_not_cancel (file_fd, F_SETFD,
+					 result | FD_CLOEXEC);
+	    }
+
+	  if (result == -1)
+	    {
+	      close_not_cancel_no_status (file_fd);
+	      return 0;
+	    }
 	}
+#endif
     }
 
   __lseek64 (file_fd, 0, SEEK_SET);

Modified: fsf/trunk/libc/nis/nss_compat/compat-grp.c
==============================================================================
--- fsf/trunk/libc/nis/nss_compat/compat-grp.c (original)
+++ fsf/trunk/libc/nis/nss_compat/compat-grp.c Mon Jul 23 00:02:42 2007
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-1999,2001-2005,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999, 2001-2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@xxxxxxx>, 1996.
 
@@ -27,6 +27,7 @@
 #include <string.h>
 #include <rpc/types.h>
 #include <bits/libc-lock.h>
+#include <kernel-features.h>
 
 static service_user *ni;
 static enum nss_status (*nss_setgrent) (int stayopen);
@@ -70,6 +71,19 @@
 /* Protect global state against multiple changers.  */
 __libc_lock_define_initialized (static, lock)
 
+/* Positive if O_CLOEXEC is supported, negative if it is not supported,
+   zero if it is still undecided.  This variable is shared with the
+   other compat functions.  */
+#ifdef __ASSUME_O_CLOEXEC
+# define __compat_have_cloexec 1
+#else
+# ifdef O_CLOEXEC
+int __compat_have_cloexec;
+# else
+#  define __compat_have_cloexec -1
+# endif
+#endif
+
 /* Prototypes for local functions.  */
 static void blacklist_store_name (const char *, ent_t *);
 static int in_blacklist (const char *, int, ent_t *);
@@ -107,21 +121,36 @@
 
   if (ent->stream == NULL)
     {
-      ent->stream = fopen ("/etc/group", "rm");
+      ent->stream = fopen ("/etc/group", "rme");
 
       if (ent->stream == NULL)
 	status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
       else
 	{
 	  /* We have to make sure the file is  `closed on exec'.  */
-	  int result, flags;
-
-	  result = flags = fcntl (fileno_unlocked (ent->stream), F_GETFD, 0);
-	  if (result >= 0)
-	    {
-	      flags |= FD_CLOEXEC;
-	      result = fcntl (fileno_unlocked (ent->stream), F_SETFD, flags);
-	    }
+	  int result = 0;
+
+	  if (__compat_have_cloexec <= 0)
+	    {
+	      int flags;
+	      result = flags = fcntl (fileno_unlocked (ent->stream), F_GETFD,
+				      0);
+	      if (result >= 0)
+		{
+#if defined O_CLOEXEC && !defined __ASSUME_O_CLOEXEC
+		  if (__compat_have_cloexec == 0)
+		    __compat_have_cloexec = (flags & FD_CLOEXEC) ? 1 : -1;
+
+		  if (__compat_have_cloexec < 0)
+#endif
+		    {
+		      flags |= FD_CLOEXEC;
+		      result = fcntl (fileno_unlocked (ent->stream), F_SETFD,
+				      flags);
+		    }
+		}
+	    }
+
 	  if (result < 0)
 	    {
 	      /* Something went wrong.  Close the stream and return a

Modified: fsf/trunk/libc/nis/nss_compat/compat-initgroups.c
==============================================================================
--- fsf/trunk/libc/nis/nss_compat/compat-initgroups.c (original)
+++ fsf/trunk/libc/nis/nss_compat/compat-initgroups.c Mon Jul 23 00:02:42 2007
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2003, 2004, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2004, 2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@xxxxxxx>, 1998.
 
@@ -30,6 +30,7 @@
 #include <sys/param.h>
 #include <nsswitch.h>
 #include <bits/libc-lock.h>
+#include <kernel-features.h>
 
 static service_user *ni;
 /* Type of the lookup function.  */
@@ -74,6 +75,19 @@
 typedef struct ent_t ent_t;
 
 
+/* Positive if O_CLOEXEC is supported, negative if it is not supported,
+   zero if it is still undecided.  This variable is shared with the
+   other compat functions.  */
+#ifdef __ASSUME_O_CLOEXEC
+# define __compat_have_cloexec 1
+#else
+# ifdef O_CLOEXEC
+extern int __compat_have_cloexec;
+# else
+#  define __compat_have_cloexec -1
+# endif
+#endif
+
 /* Prototypes for local functions.  */
 static void blacklist_store_name (const char *, ent_t *);
 static int in_blacklist (const char *, int, ent_t *);
@@ -117,21 +131,35 @@
   else
     ent->blacklist.current = 0;
 
-  ent->stream = fopen ("/etc/group", "rm");
+  ent->stream = fopen ("/etc/group", "rme");
 
   if (ent->stream == NULL)
     status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
   else
     {
       /* We have to make sure the file is  `closed on exec'.  */
-      int result, flags;
-
-      result = flags = fcntl (fileno_unlocked (ent->stream), F_GETFD, 0);
-      if (result >= 0)
-	{
-	  flags |= FD_CLOEXEC;
-	  result = fcntl (fileno_unlocked (ent->stream), F_SETFD, flags);
-	}
+      int result = 0;
+
+      if (__compat_have_cloexec <= 0)
+	{
+	  int flags;
+	  result = flags = fcntl (fileno_unlocked (ent->stream), F_GETFD, 0);
+	  if (result >= 0)
+	    {
+#if defined O_CLOEXEC && !defined __ASSUME_O_CLOEXEC
+	      if (__compat_have_cloexec == 0)
+		__compat_have_cloexec = (flags & FD_CLOEXEC) ? 1 : -1;
+
+	      if (__compat_have_cloexec < 0)
+#endif
+		{
+		  flags |= FD_CLOEXEC;
+		  result = fcntl (fileno_unlocked (ent->stream), F_SETFD,
+				  flags);
+		}
+	    }
+	}
+
       if (result < 0)
 	{
 	  /* Something went wrong.  Close the stream and return a

Modified: fsf/trunk/libc/nis/nss_compat/compat-pwd.c
==============================================================================
--- fsf/trunk/libc/nis/nss_compat/compat-pwd.c (original)
+++ fsf/trunk/libc/nis/nss_compat/compat-pwd.c Mon Jul 23 00:02:42 2007
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-1999,2001-2005,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999, 2001-2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@xxxxxxxxxxxxxxxxxxx>, 1996.
 
@@ -29,6 +29,7 @@
 #include <rpc/types.h>
 #include <rpcsvc/ypclnt.h>
 #include <bits/libc-lock.h>
+#include <kernel-features.h>
 
 #include "netgroup.h"
 
@@ -80,6 +81,19 @@
 /* Protect global state against multiple changers.  */
 __libc_lock_define_initialized (static, lock)
 
+/* Positive if O_CLOEXEC is supported, negative if it is not supported,
+   zero if it is still undecided.  This variable is shared with the
+   other compat functions.  */
+#ifdef __ASSUME_O_CLOEXEC
+# define __compat_have_cloexec 1
+#else
+# ifdef O_CLOEXEC
+extern int __compat_have_cloexec;
+# else
+#  define __compat_have_cloexec -1
+# endif
+#endif
+
 /* Prototypes for local functions.  */
 static void blacklist_store_name (const char *, ent_t *);
 static int in_blacklist (const char *, int, ent_t *);
@@ -227,21 +241,36 @@
 
   if (ent->stream == NULL)
     {
-      ent->stream = fopen ("/etc/passwd", "rm");
+      ent->stream = fopen ("/etc/passwd", "rme");
 
       if (ent->stream == NULL)
 	status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
       else
 	{
 	  /* We have to make sure the file is  `closed on exec'.  */
-	  int result, flags;
-
-	  result = flags = fcntl (fileno_unlocked (ent->stream), F_GETFD, 0);
-	  if (result >= 0)
-	    {
-	      flags |= FD_CLOEXEC;
-	      result = fcntl (fileno_unlocked (ent->stream), F_SETFD, flags);
-	    }
+	  int result = 0;
+
+	  if (__compat_have_cloexec <= 0)
+	    {
+	      int flags;
+	      result = flags = fcntl (fileno_unlocked (ent->stream), F_GETFD,
+				      0);
+	      if (result >= 0)
+		{
+#if defined O_CLOEXEC && !defined __ASSUME_O_CLOEXEC
+		  if (__compat_have_cloexec == 0)
+		    __compat_have_cloexec = (flags & FD_CLOEXEC) ? 1 : -1;
+
+		  if (__compat_have_cloexec < 0)
+#endif
+		    {
+		      flags |= FD_CLOEXEC;
+		      result = fcntl (fileno_unlocked (ent->stream), F_SETFD,
+				      flags);
+		    }
+		}
+	    }
+
 	  if (result < 0)
 	    {
 	      /* Something went wrong.  Close the stream and return a

Modified: fsf/trunk/libc/nis/nss_compat/compat-spwd.c
==============================================================================
--- fsf/trunk/libc/nis/nss_compat/compat-spwd.c (original)
+++ fsf/trunk/libc/nis/nss_compat/compat-spwd.c Mon Jul 23 00:02:42 2007
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-1999,2001-2005,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999, 2001-2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@xxxxxxxxxxxxxxxxxxx>, 1996.
 
@@ -29,6 +29,7 @@
 #include <rpc/types.h>
 #include <rpcsvc/ypclnt.h>
 #include <bits/libc-lock.h>
+#include <kernel-features.h>
 
 #include "netgroup.h"
 
@@ -76,6 +77,19 @@
 
 /* Protect global state against multiple changers.  */
 __libc_lock_define_initialized (static, lock)
+
+/* Positive if O_CLOEXEC is supported, negative if it is not supported,
+   zero if it is still undecided.  This variable is shared with the
+   other compat functions.  */
+#ifdef __ASSUME_O_CLOEXEC
+# define __compat_have_cloexec 1
+#else
+# ifdef O_CLOEXEC
+extern int __compat_have_cloexec;
+# else
+#  define __compat_have_cloexec -1
+# endif
+#endif
 
 /* Prototypes for local functions.  */
 static void blacklist_store_name (const char *, ent_t *);
@@ -180,21 +194,36 @@
 
   if (ent->stream == NULL)
     {
-      ent->stream = fopen ("/etc/shadow", "rm");
+      ent->stream = fopen ("/etc/shadow", "rme");
 
       if (ent->stream == NULL)
 	status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
       else
 	{
 	  /* We have to make sure the file is  `closed on exec'.  */
-	  int result, flags;
-
-	  result = flags = fcntl (fileno_unlocked (ent->stream), F_GETFD, 0);
-	  if (result >= 0)
-	    {
-	      flags |= FD_CLOEXEC;
-	      result = fcntl (fileno_unlocked (ent->stream), F_SETFD, flags);
-	    }
+	  int result = 0;
+
+	  if (__compat_have_cloexec <= 0)
+	    {
+	      int flags;
+	      result = flags = fcntl (fileno_unlocked (ent->stream), F_GETFD,
+				      0);
+	      if (result >= 0)
+		{
+#if defined O_CLOEXEC && !defined __ASSUME_O_CLOEXEC
+		  if (__compat_have_cloexec == 0)
+		    __compat_have_cloexec = (flags & FD_CLOEXEC) ? 1 : -1;
+
+		  if (__compat_have_cloexec < 0)
+#endif
+		    {
+		      flags |= FD_CLOEXEC;
+		      result = fcntl (fileno_unlocked (ent->stream), F_SETFD,
+				      flags);
+		    }
+		}
+	    }
+
 	  if (result < 0)
 	    {
 	      /* Something went wrong.  Close the stream and return a

Modified: fsf/trunk/libc/sysdeps/mach/hurd/bits/fcntl.h
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/bits/fcntl.h (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/bits/fcntl.h Mon Jul 23 00:02:42 2007
@@ -1,5 +1,6 @@
 /* O_*, F_*, FD_* bit values for GNU.
-   Copyright (C) 1993,94,96,97,98,99,2000,01,04 Free Software Foundation, Inc.
+   Copyright (C) 1993,1994,1996,1997,1998,1999,2000,2001,2004,2007
+	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -70,6 +71,7 @@
 #define O_SYNC		O_FSYNC
 #ifdef __USE_GNU
 # define O_NOATIME	0x0800	/* Don't set access time on read (owner).  */
+# define O_CLOEXEC	0x00010000 /* Set FD_CLOEXEC.  */
 #endif
 #ifdef	__USE_MISC
 # define O_SHLOCK	0x00020000 /* Open with shared file lock.  */

Modified: fsf/trunk/libc/sysdeps/mach/hurd/i386/tls.h
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/i386/tls.h (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/i386/tls.h Mon Jul 23 00:02:42 2007
@@ -1,5 +1,5 @@
 /* Definitions for thread-local data handling.  Hurd/i386 version.
-   Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

Modified: fsf/trunk/libc/sysdeps/mach/hurd/sigaction.c
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/sigaction.c (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/sigaction.c Mon Jul 23 00:02:42 2007
@@ -1,4 +1,6 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2002, 2007
+     Free Software Foundation, Inc.
+
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

Modified: fsf/trunk/libc/sysdeps/mach/hurd/sigsuspend.c
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/sigsuspend.c (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/sigsuspend.c Mon Jul 23 00:02:42 2007
@@ -1,4 +1,6 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2002, 2007
+     Free Software Foundation, Inc.
+
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

Modified: fsf/trunk/libc/sysdeps/mach/hurd/tls.h
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/tls.h (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/tls.h Mon Jul 23 00:02:42 2007
@@ -1,5 +1,5 @@
 /* Definitions for thread-local data handling.  Hurd version.
-   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

Modified: fsf/trunk/libc/sysdeps/mach/i386/sysdep.h
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/i386/sysdep.h (original)
+++ fsf/trunk/libc/sysdeps/mach/i386/sysdep.h Mon Jul 23 00:02:42 2007
@@ -1,4 +1,6 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2007
+     Free Software Foundation, Inc.
+
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or