summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog20
-rw-r--r--INSTALL35
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in11
-rw-r--r--include/errno.h2
-rw-r--r--include/sys/time.h1
-rw-r--r--manual/install.texi13
-rw-r--r--sysdeps/unix/sysv/linux/futimesat.c3
-rw-r--r--sysdeps/unix/sysv/linux/openat.c19
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysconf.c16
10 files changed, 81 insertions, 43 deletions
diff --git a/ChangeLog b/ChangeLog
index ec8e939f49..b50bdceaea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,22 @@
+2006-02-02  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat]
+	(futimesat): If file is NULL use __futimes.
+	* include/sys/time.h: Declare __futimes.
+
 2006-02-02  Roland McGrath  <roland@redhat.com>
 
+	* sysdeps/unix/sysv/linux/openat.c (__atfct_seterrno): Use the same
+	fstat check for ENOENT that should be EBADF as for ENOTDIR, and also
+	check for missing /proc the same way.
+
+	* include/errno.h [__cplusplus]: Avoid extra header magic for C++.
+
+	* manual/install.texi (Tools for Compilation): Require gcc 3.4,
+	recommend 4.1, advise 4.0 for powerpc64, and note 4.1 required for
+	powerpc, s390{x,} with new long double.
+	* INSTALL: Regenerated.
+
 	* timezone/private.h: Update from tzcode2006a.
 	* timezone/scheck.c: Likewise.
 	* timezone/asia: Update from tzdata2006a.
@@ -11,7 +28,7 @@
 	* sysdeps/powerpc/powerpc64/elf/Makefile
 	(CFLAGS-dl-runtime.os, CFLAGS-dl-lookup.os, CFLAGS-dl-misc.os,
 	CFLAGS-rtld-mempcpy.os, CFLAGS-rtld-memmove.os, CFLAGS-rtld-memchr.os,
-	CFLAGS-rtld-strnlen.os): LIkewise
+	CFLAGS-rtld-strnlen.os): Likewise.
 
 2006-02-01  Roland McGrath  <roland@redhat.com>
 
@@ -53,6 +70,7 @@
 
 	* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_02_known): Add
 	some more entries.
+	* sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_02_known): Likewise.
 
 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
 
diff --git a/INSTALL b/INSTALL
index e424610a04..b503ea8f5f 100644
--- a/INSTALL
+++ b/INSTALL
@@ -9,15 +9,7 @@ installation.  It is updated more frequently than this manual.
    Features can be added to GNU Libc via "add-on" bundles.  These are
 separate tar files, which you unpack into the top level of the source
 tree.  Then you give `configure' the `--enable-add-ons' option to
-activate them, and they will be compiled into the library.  As of the
-2.2 release, one important component of glibc is distributed as
-"official" add-ons: the linuxthreads add-on.  Unless you are doing an
-unusual installation, you should get this.
-
-   Support for POSIX threads is maintained by someone else, so it's in a
-separate package.  It is only available for GNU/Linux systems, but this
-will change in the future.  Get it from the same place you got the main
-bundle; the file is `glibc-linuxthreads-VERSION.tar.gz'.
+activate them, and they will be compiled into the library.
 
    You will need recent versions of several GNU tools: definitely GCC
 and GNU Make, and possibly others.  *Note Tools for Compilation::,
@@ -84,8 +76,7 @@ will be used, and CFLAGS sets optimization options for the compiler.
      specified with no list, it enables all the add-on packages it
      finds.  If you do not wish to use some add-on packages that you
      have present in your source tree, give this option a list of the
-     add-ons that you _do_ want used, like this:
-     `--enable-add-ons=linuxthreads'
+     add-ons that you _do_ want used, like this: `--enable-add-ons=nptl'
 
 `--enable-kernel=VERSION'
      This option is currently only useful on GNU/Linux systems.  The
@@ -302,11 +293,18 @@ build the GNU C library:
      recommend GNU `make' version 3.79.  All earlier versions have
      severe bugs or lack features.
 
-   * GCC 3.2 or newer
+   * GCC 3.4 or newer, GCC 4.1 recommended
 
      The GNU C library can only be compiled with the GNU C compiler
-     family.  As of the 2.3 release, GCC 3.2 or higher is required.  As
-     of this writing, GCC 3.2 is the compiler we advise to use.
+     family.  For the 2.3 releases, GCC 3.2 or higher is required; GCC
+     3.4 is the compiler we advise to use for 2.3 versions.  For the
+     2.4 release, GCC 3.4 or higher is required; as of this writing,
+     GCC 4.1 is the compiler we advise to use for current versions.  On
+     certain machines including `powerpc64', compilers prior to GCC 4.0
+     have bugs that prevent them compiling the C library code in the
+     2.4 release.  On other machines, GCC 4.1 is required to build the C
+     library with support for the correct `long double' type format;
+     these include `powerpc' (32 bit), `s390' and `s390x'.
 
      You can use whatever compiler you like to compile programs that
      use GNU libc, but be aware that both GCC 2.7 and 2.8 have bugs in
@@ -316,7 +314,7 @@ build the GNU C library:
      Check the FAQ for any special compiler issues on particular
      platforms.
 
-   * GNU `binutils' 2.13 or later
+   * GNU `binutils' 2.15 or later
 
      You must use GNU `binutils' (as and ld) to build the GNU C library.
      No other assembler or linker has the necessary functionality at the
@@ -330,11 +328,10 @@ build the GNU C library:
      installation mechanism for the info files is not present or works
      differently.
 
-   * GNU `awk' 3.0, or some other POSIX awk
+   * GNU `awk' 3.0, or higher
 
-     `Awk' is used in several places to generate files.  The scripts
-     should work with any POSIX-compliant `awk' implementation; `gawk'
-     3.0 and `mawk' 1.3 are known to work.
+     `Awk' is used in several places to generate files.  `gawk' 3.0 is
+     known to work.
 
    * Perl 5
 
diff --git a/fedora/branch.mk b/fedora/branch.mk
index 27466b04c6..cef0bb059e 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-fc4
-fedora-sync-date := 2006-02-02 05:07 UTC
-fedora-sync-tag := fedora-glibc-20060202T0507
+fedora-sync-date := 2006-02-03 09:32 UTC
+fedora-sync-tag := fedora-glibc-20060203T0932
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index 89012fcc54..9eaa8c6cda 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 33
+%define glibcrelease 35
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define xenarches i686 athlon
@@ -1240,6 +1240,15 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Fri Feb  3 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-35
+- update from CVS
+  - handle futimesat (fd, NULL, tvp) as futimes (fd, tvp)
+- fix <stdlib.h> q{e,f,g}cvt{,_r} for -mlong-double-64
+
+* Thu Feb  2 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-34
+- fix <math.h> with C++ and -mlong-double-64 (#179742)
+- add nexttowardl redirect for -mlong-double-64
+
 * Thu Feb  2 2006 Jakub Jelinek <jakub@redhat.com> 2.3.90-33
 - update from CVS
   - long double support fixes
diff --git a/include/errno.h b/include/errno.h
index 9865903b86..fe8bca44c5 100644
--- a/include/errno.h
+++ b/include/errno.h
@@ -2,7 +2,7 @@
 
 #include <stdlib/errno.h>
 
-#if defined _ERRNO_H && !defined _ISOMAC
+#if defined _ERRNO_H && !defined _ISOMAC && !defined __cplusplus
 
 # ifdef IS_IN_rtld
 #  include <dl-sysdep.h>
diff --git a/include/sys/time.h b/include/sys/time.h
index c70396f04e..ec4055276e 100644
--- a/include/sys/time.h
+++ b/include/sys/time.h
@@ -20,6 +20,7 @@ extern int __setitimer (enum __itimer_which __which,
 	attribute_hidden;
 extern int __utimes (__const char *__file, const struct timeval __tvp[2])
 	attribute_hidden;
+extern int __futimes (int fd, __const struct timeval tvp[2]) attribute_hidden;
 
 #ifndef NOT_IN_libc
 # define __gettimeofday(tv, tz) INTUSE(__gettimeofday) (tv, tz)
diff --git a/manual/install.texi b/manual/install.texi
index b538f77fb2..d9dace916b 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -329,11 +329,18 @@ recommend GNU @code{make} version 3.79.  All earlier versions have severe
 bugs or lack features.
 
 @item
-GCC 3.2 or newer
+GCC 3.4 or newer, GCC 4.1 recommended
 
 The GNU C library can only be compiled with the GNU C compiler family.
-As of the 2.3 release, GCC 3.2 or higher is required.  As of this
-writing, GCC 3.2 is the compiler we advise to use.
+For the 2.3 releases, GCC 3.2 or higher is required; GCC 3.4 is the
+compiler we advise to use for 2.3 versions.
+For the 2.4 release, GCC 3.4 or higher is required; as of this
+writing, GCC 4.1 is the compiler we advise to use for current versions.
+On certain machines including @code{powerpc64}, compilers prior to GCC
+4.0 have bugs that prevent them compiling the C library code in the
+2.4 release.  On other machines, GCC 4.1 is required to build the C
+library with support for the correct @code{long double} type format;
+these include @code{powerpc} (32 bit), @code{s390} and @code{s390x}.
 
 You can use whatever compiler you like to compile programs that use GNU
 libc, but be aware that both GCC 2.7 and 2.8 have bugs in their
diff --git a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futimesat.c
index 514f456927..7c96b78045 100644
--- a/sysdeps/unix/sysv/linux/futimesat.c
+++ b/sysdeps/unix/sysv/linux/futimesat.c
@@ -42,6 +42,9 @@ futimesat (fd, file, tvp)
   if (__have_atfcts >= 0)
 # endif
     {
+      if (file == NULL)
+	return __futimes (fd, tvp);
+
       result = INLINE_SYSCALL (futimesat, 3, fd, file, tvp);
 # ifndef __ASSUME_ATFCTS
       if (result == -1 && errno == ENOSYS)
diff --git a/sysdeps/unix/sysv/linux/openat.c b/sysdeps/unix/sysv/linux/openat.c
index 67e9df2e45..4c1f302ab0 100644
--- a/sysdeps/unix/sysv/linux/openat.c
+++ b/sysdeps/unix/sysv/linux/openat.c
@@ -30,7 +30,8 @@
 #if !defined OPENAT && !defined __ASSUME_ATFCTS
 # define OPENAT openat
 
-
+/* Set errno after a failed call.  If BUF is not null,
+   it is a /proc/self/fd/ path name we just tried to use.  */
 void
 attribute_hidden
 __atfct_seterrno (int errval, int fd, const char *buf)
@@ -39,7 +40,7 @@ __atfct_seterrno (int errval, int fd, const char *buf)
     {
       struct stat64 st;
 
-      if (errval == ENOTDIR)
+      if (errval == ENOTDIR || errval == ENOENT)
 	{
 	  /* This can mean either the file descriptor is invalid or
 	     /proc is not mounted.  */
@@ -48,23 +49,11 @@ __atfct_seterrno (int errval, int fd, const char *buf)
 	    return;
 
 	  /* If /proc is not mounted there is nothing we can do.  */
-	  if (S_ISDIR (st.st_mode)
+	  if ((errval != ENOTDIR || S_ISDIR (st.st_mode))
 	      && (__xstat64 (_STAT_VER, "/proc/self/fd", &st) != 0
 		  || !S_ISDIR (st.st_mode)))
 	    errval = ENOSYS;
 	}
-      else if (errval == ENOENT)
-	{
-	  /* This could mean the file descriptor is not valid.  We
-	     reuse BUF for the stat call.  Find the slash after the
-	     file descriptor number.  */
-	  *(char *) strchr (buf + sizeof "/proc/self/fd", '/') = '\0';
-
-	  int e = __lxstat64 (_STAT_VER, buf, &st);
-	  if ((e == -1 && errno == ENOENT)
-	      ||(e == 0 && !S_ISLNK (st.st_mode)))
-	    errval = EBADF;
-	}
     }
 
   __set_errno (errval);
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysconf.c b/sysdeps/unix/sysv/linux/x86_64/sysconf.c
index 407fd46bc3..99f704e1b9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysconf.c
+++ b/sysdeps/unix/sysv/linux/x86_64/sysconf.c
@@ -1,5 +1,5 @@
 /* Get file-specific information about a file.  Linux version.
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2006 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
@@ -45,11 +45,24 @@ static const struct intel_02_cache_info
     { 0x29, _SC_LEVEL3_CACHE_SIZE, 4194304, 8, 64 },
     { 0x2c, _SC_LEVEL1_DCACHE_SIZE, 32768, 8, 64 },
     { 0x30, _SC_LEVEL1_ICACHE_SIZE, 32768, 8, 64 },
+    { 0x39, _SC_LEVEL2_CACHE_SIZE, 131072, 4, 64 },
+    { 0x3a, _SC_LEVEL2_CACHE_SIZE, 196608, 6, 64 },
+    { 0x3b, _SC_LEVEL2_CACHE_SIZE, 131072, 2, 64 },
+    { 0x3c, _SC_LEVEL2_CACHE_SIZE, 262144, 4, 64 },
+    { 0x3d, _SC_LEVEL2_CACHE_SIZE, 393216, 6, 64 },
+    { 0x3e, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 64 },
     { 0x41, _SC_LEVEL2_CACHE_SIZE, 131072, 4, 32 },
     { 0x42, _SC_LEVEL2_CACHE_SIZE, 262144, 4, 32 },
     { 0x43, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 32 },
     { 0x44, _SC_LEVEL2_CACHE_SIZE, 1048576, 4, 32 },
     { 0x45, _SC_LEVEL2_CACHE_SIZE, 2097152, 4, 32 },
+    { 0x46, _SC_LEVEL3_CACHE_SIZE, 4194304, 4, 64 },
+    { 0x47, _SC_LEVEL3_CACHE_SIZE, 8388608, 8, 64 },
+    { 0x49, _SC_LEVEL3_CACHE_SIZE, 4194304, 16, 64 },
+    { 0x4a, _SC_LEVEL3_CACHE_SIZE, 6291456, 12, 64 },
+    { 0x4b, _SC_LEVEL3_CACHE_SIZE, 8388608, 16, 64 },
+    { 0x4c, _SC_LEVEL3_CACHE_SIZE, 12582912, 12, 64 },
+    { 0x4d, _SC_LEVEL3_CACHE_SIZE, 16777216, 16, 64 },
     { 0x60, _SC_LEVEL1_DCACHE_SIZE, 16384, 8, 64 },
     { 0x66, _SC_LEVEL1_DCACHE_SIZE, 8192, 4, 64 },
     { 0x67, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 64 },
@@ -60,6 +73,7 @@ static const struct intel_02_cache_info
     { 0x7b, _SC_LEVEL2_CACHE_SIZE, 524288, 8, 64 },
     { 0x7c, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 },
     { 0x7d, _SC_LEVEL2_CACHE_SIZE, 2097152, 8, 64 },
+    { 0x7f, _SC_LEVEL2_CACHE_SIZE, 524288, 2, 64 },
     { 0x82, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 32 },
     { 0x83, _SC_LEVEL2_CACHE_SIZE, 524288, 8, 32 },
     { 0x84, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 32 },