summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rw-r--r--INSTALL55
-rwxr-xr-xconfigure4
-rw-r--r--configure.in5
-rw-r--r--linuxthreads_db/ChangeLog5
-rw-r--r--linuxthreads_db/td_thr_tls_get_addr.c8
-rw-r--r--manual/install.texi32
7 files changed, 69 insertions, 54 deletions
diff --git a/ChangeLog b/ChangeLog
index 2794bc487b..282bf9bfa7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2002-08-21  Roland McGrath  <roland@redhat.com>
 
+	* configure.in: Make GCC version check require 3.[2-9]* and no others.
+	* configure: Regenerated.
+	* manual/install.texi (Tools for Compilation): Say 3.2 is required.
+	(Configuring and compiling): Don't mention older GCC versions any more.
+	* INSTALL: Regenerated.
+
+	* manual/install.texi (Configuring and compiling, Installation,
+	Running make install, Linux): Linux -> GNU/Linux where appropriate.
+
+	* elf/rtld.c (_dl_start_final): Move defn before _dl_start so it can
+	be inlined.  Declare it with always_inline if [DONT_USE_BOOTSTRAP_MAP]
+	and with noinline otherwise.  Remove hack alloca use to prevent
+	inlining, we can ask for it explicitly nowadays.
+
 	* dlfcn/bug-dlsym1.c: New file.
 	* dlfcn/bug-dlsym1-lib1.c, dlfcn/bug-dlsym1-lib2.c: New files.
 	* dlfcn/Makefile (distribute): Add them.
diff --git a/INSTALL b/INSTALL
index 70232572a6..230c612740 100644
--- a/INSTALL
+++ b/INSTALL
@@ -15,8 +15,8 @@ activate them, and they will be compiled into the library.  As of the
 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 Linux systems, but this will
-change in the future.  Get it from the same place you got the main
+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'.
 
    You will need recent versions of several GNU tools: definitely GCC
@@ -28,7 +28,7 @@ Configuring and compiling GNU Libc
 
    GNU libc can be compiled in the source directory, but we strongly
 advise building it in a separate build directory.  For example, if you
-have  unpacked the glibc sources in `/src/gnu/glibc-2.2.0', create a
+have  unpacked the glibc sources in `/src/gnu/glibc-2.3', create a
 directory `/src/gnu/glibc-build' to put the object files in.  This
 allows removing the whole build directory in case an error occurs,
 which is the safest way to get a fresh start and should always be done.
@@ -36,7 +36,7 @@ which is the safest way to get a fresh start and should always be done.
    From your object directory, run the shell script `configure' located
 at the top level of the source tree.  In the scenario above, you'd type
 
-     $ ../glibc-2.2.0/configure ARGS...
+     $ ../glibc-2.3/configure ARGS...
 
    Please note that even if you're building in a separate build
 directory, the compilation needs to modify a few files in the source
@@ -88,7 +88,7 @@ will be used, and CFLAGS sets optimization options for the compiler.
      `--enable-add-ons=linuxthreads'
 
 `--enable-kernel=VERSION'
-     This option is currently only useful on Linux systems.  The
+     This option is currently only useful on GNU/Linux systems.  The
      VERSION parameter should have the form X.Y.Z and describes the
      smallest version of the Linux kernel the generated library is
      expected to support.  The higher the VERSION number is, the less
@@ -169,11 +169,10 @@ but isn't.  Look for error messages from `make' containing `***'.
 Those indicate that something is seriously wrong.
 
    The compilation process can take several hours.  Expect at least two
-hours for the default configuration on i586 for Linux.  For Hurd, times
-are much longer.  Except for EGCS 1.1 and GCC 2.95 (and later versions
-of GCC), all supported versions of GCC have a problem which causes them
-to take several minutes to compile certain files in the iconvdata
-directory.  Do not panic if the compiler appears to hang.
+hours for the default configuration on i586 for GNU/Linux.  For Hurd,
+times are much longer.  Some complex modules may take a very long time
+to compile, as much as several minutes on slower machines.  Do not
+panic if the compiler appears to hang.
 
    If you want to run a parallel make, simply pass the `-j' option with
 an appropriate numeric parameter to `make'.  You need a recent GNU
@@ -247,7 +246,7 @@ order given above.
    You may also need to reconfigure GCC to work with the new library.
 The easiest way to do that is to figure out the compiler switches to
 make it work again (`-Wl,--dynamic-linker=/lib/ld-linux.so.2' should
-work on Linux systems) and use them to recompile gcc.  You can also
+work on GNU/Linux systems) and use them to recompile gcc.  You can also
 edit the specs file (`/usr/lib/gcc-lib/TARGET/VERSION/specs'), but that
 is a bit of a black art.
 
@@ -303,19 +302,19 @@ build the GNU C library:
      recommend GNU `make' version 3.79.  All earlier versions have
      severe bugs or lack features.
 
-   * GCC 2.95 or newer
+   * GCC 3.2 or newer
 
      The GNU C library can only be compiled with the GNU C compiler
-     family.  As of the 2.2 release, GCC 2.95.2 or higher is required.
-     As of this writing, GCC 2.95.3 is the compiler we advise to use.
+     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.
 
      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 floating-point support that may be triggered by the math
      library.
 
-     For PPC you might need some patches even on top of the last GCC
-     version.  See the FAQ.
+     Check the FAQ for any special compiler issues on particular
+     platforms.
 
    * GNU `binutils' 2.10.1 or later
 
@@ -441,17 +440,17 @@ some `i686' specific instructions.  To generate code for other models,
 you have to configure for that model and give GCC the appropriate
 `-march=' and `-mcpu=' compiler switches via CFLAGS.
 
-Specific advice for Linux systems
-=================================
-
-   If you are installing GNU libc on a Linux system, you need to have
-the header files from a 2.2 or newer kernel around for reference.  For
-some architectures, like ia64, sh and hppa, you need at least headers
-from kernel 2.3.99 (sh and hppa) or 2.4.0 (ia64).  You do not need to
-use that kernel, just have its headers where glibc can access at them.
-The easiest way to do this is to unpack it in a directory such as
-`/usr/src/linux-2.2.1'.  In that directory, run `make config' and
-accept all the defaults.  Then run `make include/linux/version.h'.
+Specific advice for GNU/Linux systems
+=====================================
+
+   If you are installing GNU libc on a GNU/Linux system, you need to
+have the header files from a 2.2 or newer kernel around for reference.
+For some architectures, like ia64, sh and hppa, you need at least
+headers from kernel 2.3.99 (sh and hppa) or 2.4.0 (ia64).  You do not
+need to use that kernel, just have its headers where glibc can access
+at them.  The easiest way to do this is to unpack it in a directory
+such as `/usr/src/linux-2.2.1'.  In that directory, run `make config'
+and accept all the defaults.  Then run `make include/linux/version.h'.
 Finally, configure glibc with the option
 `--with-headers=/usr/src/linux-2.2.1/include'.  Use the most recent
 kernel you can get your hands on.
@@ -468,7 +467,7 @@ to get rid of the old header files anyway.
 symlinks into the kernel sources.  GNU libc provides its own versions
 of these files.
 
-   Linux expects some components of the libc installation to be in
+   GNU/Linux expects some components of the libc installation to be in
 `/lib' and some in `/usr/lib'.  This is handled automatically if you
 configure glibc with `--prefix=/usr'.  If you set some other prefix or
 allow it to default to `/usr/local', then all the components are
diff --git a/configure b/configure
index 830627b04e..affce4f8da 100755
--- a/configure
+++ b/configure
@@ -1470,7 +1470,7 @@ echo "configure:1470: checking version of $CC" >&5
   ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
   case $ac_prog_version in
     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    *gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[0-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*)
+    3.[2-9]*)
        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
 
@@ -1478,7 +1478,7 @@ echo "configure:1470: checking version of $CC" >&5
   echo "$ac_t""$ac_prog_version" 1>&6
 fi
 if test $ac_verc_fail = yes; then
-  critic_missing=gcc
+  critic_missing="$critic_missing gcc"
 fi
 
 for ac_prog in gnumake gmake make
diff --git a/configure.in b/configure.in
index cf4927c7ba..72e15579ae 100644
--- a/configure.in
+++ b/configure.in
@@ -578,9 +578,8 @@ fi
 # These programs are version sensitive.
 AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
-  [version \([egcygnustpi-]*[0-9.]*\)],
-  [*gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[0-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*],
-  critic_missing=gcc)
+  [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]*],
+  critic_missing="$critic_missing gcc")
 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
diff --git a/linuxthreads_db/ChangeLog b/linuxthreads_db/ChangeLog
index dd87f89d76..f8028b4fcc 100644
--- a/linuxthreads_db/ChangeLog
+++ b/linuxthreads_db/ChangeLog
@@ -1,3 +1,8 @@
+2002-08-21  Roland McGrath  <roland@redhat.com>
+
+	* td_thr_tls_get_addr.c (td_thr_tls_get_addr): __attribute_used__ ->
+	__attribute__ ((unused)) for arguments.
+
 2002-08-07  Ulrich Drepper  <drepper@redhat.com>
 
 	* thread_dbP.h: Define LINUXTHREADS_INITIAL_REPORT_EVENTS.
diff --git a/linuxthreads_db/td_thr_tls_get_addr.c b/linuxthreads_db/td_thr_tls_get_addr.c
index 77ef0cac4c..f6e356b339 100644
--- a/linuxthreads_db/td_thr_tls_get_addr.c
+++ b/linuxthreads_db/td_thr_tls_get_addr.c
@@ -27,10 +27,10 @@
 
 
 td_err_e
-td_thr_tls_get_addr (const td_thrhandle_t *th __attribute_used__,
-		     struct link_map *map __attribute_used__,
-		     size_t offset __attribute_used__,
-		     void **address __attribute_used__)
+td_thr_tls_get_addr (const td_thrhandle_t *th __attribute__ ((unused)),
+		     struct link_map *map __attribute__ ((unused)),
+		     size_t offset __attribute__ ((unused)),
+		     void **address __attribute__ ((unused)))
 {
 #if USE_TLS
   struct _pthread_descr_struct pds;
diff --git a/manual/install.texi b/manual/install.texi
index a8f003d81a..bccab88387 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -20,7 +20,7 @@ to activate them, and they will be compiled into the library.  As of the
 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 Linux systems, but this will
+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 @file{glibc-linuxthreads-@var{VERSION}.tar.gz}.
 
@@ -33,7 +33,7 @@ GNU Make, and possibly others.  @xref{Tools for Compilation}, below.
  compiled.
 * Tools for Compilation::       You'll need these first.
 * Supported Configurations::    What it runs on, what it doesn't.
-* Linux::                       Specific advice for Linux systems.
+* Linux::                       Specific advice for GNU/Linux systems.
 * Reporting Bugs::              So they'll get fixed.
 @end menu
 
@@ -110,7 +110,7 @@ tree, give this option a list of the add-ons that you @emph{do} want
 used, like this: @samp{--enable-add-ons=linuxthreads}
 
 @item --enable-kernel=@var{version}
-This option is currently only useful on Linux systems.  The
+This option is currently only useful on GNU/Linux systems.  The
 @var{version} parameter should have the form X.Y.Z and describes the
 smallest version of the Linux kernel the generated library is expected
 to support.  The higher the @var{version} number is, the less
@@ -195,11 +195,10 @@ produce a lot of output, some of which may look like errors from
 containing @samp{***}.  Those indicate that something is seriously wrong.
 
 The compilation process can take several hours.  Expect at least two
-hours for the default configuration on i586 for Linux.  For Hurd, times
-are much longer.  Except for EGCS 1.1 and GCC 2.95 (and later versions
-of GCC), all supported versions of GCC have a problem which causes them
-to take several minutes to compile certain files in the iconvdata
-directory.  Do not panic if the compiler appears to hang.
+hours for the default configuration on i586 for GNU/Linux.  For Hurd,
+times are much longer.  Some complex modules may take a very long time
+to compile, as much as several minutes on slower machines.  Do not
+panic if the compiler appears to hang.
 
 If you want to run a parallel make, simply pass the @samp{-j} option
 with an appropriate numeric parameter to @code{make}.  You need a recent
@@ -276,7 +275,7 @@ order given above.
 You may also need to reconfigure GCC to work with the new library.  The
 easiest way to do that is to figure out the compiler switches to make it
 work again (@samp{-Wl,--dynamic-linker=/lib/ld-linux.so.2} should work on
-Linux systems) and use them to recompile gcc.  You can also edit the specs
+GNU/Linux systems) and use them to recompile gcc.  You can also edit the specs
 file (@file{/usr/lib/gcc-lib/@var{TARGET}/@var{VERSION}/specs}), but that
 is a bit of a black art.
 
@@ -338,18 +337,17 @@ recommend GNU @code{make} version 3.79.  All earlier versions have severe
 bugs or lack features.
 
 @item
-GCC 2.95 or newer
+GCC 3.2 or newer
 
 The GNU C library can only be compiled with the GNU C compiler family.
-As of the 2.2 release, GCC 2.95.2 or higher is required.  As of this
-writing, GCC 2.95.3 is the compiler we advise to use.
+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.
 
 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
 floating-point support that may be triggered by the math library.
 
-For PPC you might need some patches even on top of the last GCC version.
-See the FAQ.
+Check the FAQ for any special compiler issues on particular platforms.
 
 @item
 GNU @code{binutils} 2.10.1 or later
@@ -498,11 +496,11 @@ and give GCC the appropriate @samp{-march=} and @samp{-mcpu=} compiler
 switches via @var{CFLAGS}.
 
 @node Linux
-@appendixsec Specific advice for Linux systems
+@appendixsec Specific advice for GNU/Linux systems
 @cindex upgrading from libc5
 @cindex kernel header files
 
-If you are installing GNU libc on a Linux system, you need to have the
+If you are installing GNU libc on a GNU/Linux system, you need to have the
 header files from a 2.2 or newer kernel around for reference.  For some
 architectures, like ia64, sh and hppa, you need at least headers from
 kernel 2.3.99 (sh and hppa) or 2.4.0 (ia64).  You do not need to use
@@ -526,7 +524,7 @@ Note that @file{/usr/include/net} and @file{/usr/include/scsi} should
 @strong{not} be symlinks into the kernel sources.  GNU libc provides its
 own versions of these files.
 
-Linux expects some components of the libc installation to be in
+GNU/Linux expects some components of the libc installation to be in
 @file{/lib} and some in @file{/usr/lib}.  This is handled automatically
 if you configure glibc with @samp{--prefix=/usr}.  If you set some other
 prefix or allow it to default to @file{/usr/local}, then all the