mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
* 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.
This commit is contained in:
parent
c2248c44e4
commit
90d1d40b27
14
ChangeLog
14
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.
|
||||
|
53
INSTALL
53
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
|
||||
=================================
|
||||
Specific advice for GNU/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'.
|
||||
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
|
||||
|
4
configure
vendored
4
configure
vendored
@ -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
|
||||
|
@ -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")
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user