about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog45
-rw-r--r--FAQ178
-rw-r--r--FAQ.in2
-rw-r--r--Makeconfig11
-rw-r--r--Makefile5
-rw-r--r--README.template2
-rw-r--r--manual/install.texi2
-rw-r--r--version.h2
8 files changed, 188 insertions, 59 deletions
diff --git a/ChangeLog b/ChangeLog
index af0de5aadf..de1327b57d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,48 @@
+1998-03-26  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* manual/install.texi (Supported Configurations): Add
+	arm-linuxaout and arm-none.
+
+1998-03-26  Ulrich Drepper  <drepper@cygnus.com>
+
+	* version.h (VERSION): Bump to 2.0.93.
+
+1998-03-25 07:30  H.J. Lu  <hjl@gnu.org>
+
+	* configure.in (libc_cv_ar_S): New to indicate if ar S works.
+
+	* config.make.in (have-ar-S): New, substituted by libc_cv_ar_S.
+
+	* Makerules (CREATE_ARFLAGS): New determined by $(have-ar-S).
+	(do-ar, build-extra-lib): Use $(CREATE_ARFLAGS) for $(AR).
+
+1998-03-26  Ulrich Drepper  <drepper@cygnus.com>
+
+	* Makeconfig (link-libc): Add missing use of libc_nonshared.a.
+
+1998-03-26  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	Put the static-only routines in a separate library.
+	* Makeconfig (libtype.oS, CFLAGS-.oS, CPPFLAGS-.oS): New
+	variables.
+	(all-object-suffixes): Add .oS.
+	* Makerules (libc_static-name): New variable.
+	(installed-libcs): Add libc_nonshared.a.
+	($(inst_libdir)/libc.so): Use libc_nonshared.a instead of libc.a.
+	(object-suffixes-for-rules): New variable.  Use it instead of
+	object-suffixes for generating compilation rules.
+	(rmobjs): Also remove *.oS.
+	* Rules (subdir_lib): Depend on $(objpfx)stamp.oS.
+	($(objpfx)stamp.oS): New target.
+
+1998-03-26  Ulrich Drepper  <drepper@cygnus.com>
+
+	* Makefile (FAQ): Automatically check in regenerated FAQ.
+
+1998-03-26 10:16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
+
+	* Makefile (INSTALL): Depend on install.texi, not maint.texi.
+
 1998-03-25  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Add sizes.h.
diff --git a/FAQ b/FAQ
index a54db102da..e2b9f0d5ea 100644
--- a/FAQ
+++ b/FAQ
@@ -26,16 +26,17 @@ please let me know.
 1.4.	Do I need a special linker or archiver?
 1.5.	What tools do I need for powerpc?
 1.6.	Do I need some more things to compile GNU C Library?
-1.7.	When I run `nm -u libc.so' on the produced library I still
+1.7.	What version of the Linux kernel headers should be used?
+1.8.	When I run `nm -u libc.so' on the produced library I still
 	find unresolved symbols.  Can this be ok?
-1.8.	What are these `add-ons'?
-1.9.	My XXX kernel emulates a floating-point coprocessor for me.
+1.9.	What are these `add-ons'?
+1.10.	My XXX kernel emulates a floating-point coprocessor for me.
 	Should I enable --with-fp?
-1.10.	When compiling GNU libc I get lots of errors saying functions
+1.11.	When compiling GNU libc I get lots of errors saying functions
 	in glibc are duplicated in libgcc.
-1.11.	Why do I get messages about missing thread functions when I use
-	the librt?  I don't even use threads.
-1.12.	What's the problem with configure --enable-omitfp?
+1.12.	Why do I get messages about missing thread functions when I use
+	librt?  I don't even use threads.
+1.13.	What's the problem with configure --enable-omitfp?
 
 2. Installation and configuration issues
 
@@ -58,23 +59,28 @@ please let me know.
 	glibc 2.x?
 2.9.	The `gencat' utility cannot process the catalog sources which
 	were used on my Linux libc5 based system.  Why?
-2.10.	I have set up /etc/nis.conf, and the Linux libc 5 with NYS
+2.10.	Programs using libc have their messages translated, but other
+	behavior is not localized (e.g. collating order); why?
+2.11.	I have set up /etc/nis.conf, and the Linux libc 5 with NYS
 	works great.  But the glibc NIS+ doesn't seem to work.
-2.11.	I have killed ypbind to stop using NIS, but glibc will
-        continue using NIS.
-2.12.	After installing glibc name resolving doesn't work properly.
-2.13.	I have /usr/include/net and /usr/include/scsi as symlinks
+2.12.	I have killed ypbind to stop using NIS, but glibc
+        continues using NIS.
+2.13.	Under Linux/Alpha, I always get "do_ypcall: clnt_call:
+       RPC: Unable to receive; errno = Connection refused" when using NIS.
+2.14.	After installing glibc name resolving doesn't work properly.
+2.15.	I have /usr/include/net and /usr/include/scsi as symlinks
 	into my Linux source tree.  Is that wrong?
-2.14.	Programs like `logname', `top', `uptime' `users', `w' and
+2.16.	Programs like `logname', `top', `uptime' `users', `w' and
 	`who', show incorrect information about the (number of)
 	users on my system.  Why?
-2.15.	After upgrading to glibc 2.1 with symbol versioning I get
+2.17.	After upgrading to glibc 2.1 with symbol versioning I get
 	errors about undefined symbols.  What went wrong?
-2.16.	When I start the program XXX after upgrading the library
+2.18.	When I start the program XXX after upgrading the library
 	I get
 	  XXX: Symbol `_sys_errlist' has different size in shared
 	  object, consider re-linking
 	Why?  What should I do?
+2.19.	What do I need for C++ development?
 
 3. Source and binary incompatibilities, and what to do about them
 
@@ -100,6 +106,8 @@ please let me know.
 3.10.	I can't compile with gcc -traditional (or
 	-traditional-cpp). Why?
 3.11.	I get some errors with `gcc -ansi'. Isn't glibc ANSI compatible?
+3.12.	I can't access some functions anymore.  nm shows that they do
+	exist but linking fails nevertheless.
 
 4. Miscellaneous
 
@@ -148,14 +156,14 @@ you are really interested in porting it, contact
 GNU CC are used to increase portability and speed.
 
 GNU CC is found, like all other GNU packages, on
-	ftp://prep.ai.mit.edu/pub/gnu
-and the many mirror sites.  prep is always overloaded, so try to find
+	ftp://ftp.gnu.org/pub/gnu
+and the many mirror sites.  ftp.gnu.org is always overloaded, so try to find
 a local mirror first.
 
 You always should try to use the latest official release.  Older
-versions may not have all the features GNU libc requires.  On most
-supported platforms (for powerpc see question question 1.5), 2.7.2.3 is
-the earliest version that works at all.
+versions may not have all the features GNU libc requires.  The current
+releases of egcs (1.0.2) and GNU CC (2.8.1) should work with the GNU C
+library (for powerpc see question question 1.5).
 
 
 1.3.	When I try to compile glibc I get only error messages.
@@ -183,7 +191,7 @@ Always get the newest release of GNU binutils available.  Older
 releases are known to have bugs that prevent a successful compilation.
 
 {ZW} As of release 2.1 a linker supporting symbol versions is
-required.  For Linux, get binutils-2.8.1.0.17 or later.  Other systems
+required.  For Linux, get binutils-2.8.1.0.23 or later.  Other systems
 may have native linker support, but it's moot right now, because glibc
 has not been ported to them.
 
@@ -215,7 +223,7 @@ in configparms.  Later versions of egcs may fix these problems.
 
 * GNU gettext.  This package contains the tools needed to construct
   `message catalog' files containing translated versions of system
-  messages. See ftp://prep.ai.mit.edu/pub/gnu or better any mirror
+  messages. See ftp://ftp.gnu.org/pub/gnu or better any mirror
   site.  (We distribute compiled message catalogs, but they may not be
   updated in patches.)
 
@@ -252,7 +260,19 @@ in configparms.  Later versions of egcs may fix these problems.
   If you have some more measurements let me know.
 
 
-1.7.	When I run `nm -u libc.so' on the produced library I still
+1.7.	What version of the Linux kernel headers should be used?
+
+{AJ,UD} The headers from the most recent Linux kernel should be used.
+The headers used while compiling the GNU C library and the kernel
+binary used when using the library do not need to match.  The GNU C
+library runs without problems on kernels that are older than the
+kernel headers used.  The other way round (compiling the GNU C library
+with old kernel headers and running on a recent kernel) does not
+necessarily work.  For example you can't use new kernel features when
+using old kernel headers for compiling the GNU C library.
+
+
+1.8.	When I run `nm -u libc.so' on the produced library I still
 	find unresolved symbols.  Can this be ok?
 
 {UD} Yes, this is ok.  There can be several kinds of unresolved
@@ -272,7 +292,7 @@ Generally, you should make sure you find a real program which produces
 errors while linking before deciding there is a problem.
 
 
-1.8.	What are these `add-ons'?
+1.9.	What are these `add-ons'?
 
 {UD} To avoid complications with export rules or external source
 code some optional parts of the libc are distributed as separate
@@ -296,7 +316,7 @@ just about anything else.  The existing makefiles do most of the work;
 only some few stub rules must be written to get everything running.
 
 
-1.9.	My XXX kernel emulates a floating-point coprocessor for me.
+1.10.	My XXX kernel emulates a floating-point coprocessor for me.
 	Should I enable --with-fp?
 
 {ZW} An emulated FPU is just as good as a real one, as far as the C
@@ -310,7 +330,7 @@ far more trouble than it's worth: you then have to compile
 (libgcc.a for GNU C), because the calling conventions change.
 
 
-1.10.	When compiling GNU libc I get lots of errors saying functions
+1.11.	When compiling GNU libc I get lots of errors saying functions
 	in glibc are duplicated in libgcc.
 
 {EY} This is *exactly* the same problem that I was having.  The
@@ -328,24 +348,23 @@ some problems of this kind.  The setting of CFLAGS is checked at the
 very beginning and if it is not usable `configure' will bark.
 
 
-1.11.	Why do I get messages about missing thread functions when I use
-	the librt?  I don't even use threads.
+1.12.	Why do I get messages about missing thread functions when I use
+	librt?  I don't even use threads.
 
-{UD} In this case you probably mixed up your installation of the libc.
-The librt internally uses threads and it has implicit references to
-the thread library.  Normally these references are satisfied
-automatically but if the thread library belonging to the librt is not
-in the expected place one has to specify this place.  When using GNU
-ld it works like this:
+{UD} In this case you probably mixed up your installation.  librt uses
+threads internally and has implicit references to the thread library.
+Normally these references are satisfied automatically but if the
+thread library is not in the expected place you must tell the linker
+where it is.  When using GNU ld it works like this:
 
 	gcc -o foo foo.c -Wl,-rpath-link=/some/other/dir -lrt
 
-The `/some/other/dir' should contain the matching thread library and
-`ld' will use the given path to find the implicitly referenced library
-while not disturbing any other link path order.
+The `/some/other/dir' should contain the thread library.  `ld' will
+use the given path to find the implicitly referenced library while not
+disturbing any other link path.
 
 
-1.12.	What's the problem with configure --enable-omitfp?
+1.13.	What's the problem with configure --enable-omitfp?
 
 {AJ} When --enable-omitfp is set the libraries are built without frame
 pointers. Some compilers produce buggy code for this model and
@@ -468,7 +487,7 @@ See question 3.8 for details.
 and source code.  Until this law gets abolished we cannot ship the
 cryptographic functions together with glibc.
 
-The functions are available, as an add-on (see question 1.8).  People in the
+The functions are available, as an add-on (see question 1.9).  People in the
 US may get it from the same place they got GNU libc from.  People
 outside the US should get the code from ftp://ftp.ifi.uio.no/pub/gnu,
 or another archive site outside the USA.  The README explains how to
@@ -588,9 +607,9 @@ GROUP ( libc.so.6 ld-linux.so.2 libc.a )
 2.8.	How can I compile gcc 2.7.2.1 from the gcc source code using
 	glibc 2.x?
 
-{AJ} There's only correct support for glibc 2.0.x in gcc 2.7.2.3
-or later.  You should get at least gcc 2.7.2.3.  All previous versions
-had problems with glibc support.
+{AJ} There's only correct support for glibc 2.0.x in gcc 2.7.2.3 or
+later.  But you should get at least gcc 2.8.1 or egcs 1.0.2 (or later
+versions) instead.
 
 
 2.9.	The `gencat' utility cannot process the catalog sources which
@@ -628,7 +647,21 @@ catalog files to the XPG4 form:
 -----------------------------------------------------------------------
 
 
-2.10.	I have set up /etc/nis.conf, and the Linux libc 5 with NYS
+2.10.	Programs using libc have their messages translated, but other
+	behavior is not localized (e.g. collating order); why?
+
+{ZW} Translated messages are automatically installed, but the locale
+database that controls other behaviors is not.  You need to run
+localedef to install this database, after you have run `make
+install'.  For example, to set up the French Canadian locale, simply
+issue the command
+
+    localedef -i fr_CA -f ISO-8859-1 fr_CA
+
+Please see localedata/README in the source tree for further details.
+
+
+2.11.	I have set up /etc/nis.conf, and the Linux libc 5 with NYS
 	works great.  But the glibc NIS+ doesn't seem to work.
 
 {TK} The glibc NIS+ implementation uses a /var/nis/NIS_COLD_START
@@ -640,24 +673,33 @@ it with nisinit from the nis-tools package (available at
 http://www-vt.uni-paderborn.de/~kukuk/linux/nisplus.html).
 
 
-2.11.	I have killed ypbind to stop using NIS, but glibc will
-        continue using NIS.
+2.12.	I have killed ypbind to stop using NIS, but glibc
+        continues using NIS.
 
 {TK} For faster NIS lookups, glibc uses the /var/yp/binding/ files
 from ypbind.  ypbind 3.3 and older versions don't always remove these
-files, so glibc will use them furthermore.  Other BSD versions seem to
-work correct.  Until ypbind 3.4 is released, you can find a patch at
-ftp://ftp.kernel.org/pub/linux/utils/net/NIS/ypbind-3.3-glibc2.diff.
+files, so glibc will continue to use them.  Other BSD versions seem to
+work correctly.  Until ypbind 3.4 is released, you can find a patch at
+ftp://ftp.kernel.org/pub/linux/utils/net/NIS/ypbind-3.3-glibc3.diff.
+
 
+2.13.	Under Linux/Alpha, I always get "do_ypcall: clnt_call:
+       RPC: Unable to receive; errno = Connection refused" when using NIS.
 
-2.12.	After installing glibc name resolving doesn't work properly.
+{TK} You need a ypbind version which is 64bit clean.  Some versions
+are not 64bit clean.  A 64bit clean implementation is ypbind-mt.  For
+ypbind 3.3, you need the patch from ftp.kernel.org (See the previous
+question).  I don't know about other versions.
+
+
+2.14.	After installing glibc name resolving doesn't work properly.
 
 {AJ} You probably should read the manual section describing
 nsswitch.conf (just type `info libc "NSS Configuration File"').
 The NSS configuration file is usually the culprit.
 
 
-2.13.	I have /usr/include/net and /usr/include/scsi as symlinks
+2.15.	I have /usr/include/net and /usr/include/scsi as symlinks
 	into my Linux source tree.  Is that wrong?
 
 {PB} This was necessary for libc5, but is not correct when using
@@ -668,14 +710,14 @@ any symlink that you have in place before you install glibc.  However,
 /usr/include/asm and /usr/include/linux should remain as they were.
 
 
-2.14.	Programs like `logname', `top', `uptime' `users', `w' and
+2.16.	Programs like `logname', `top', `uptime' `users', `w' and
 	`who', show incorrect information about the (number of)
 	users on my system.  Why?
 
 {MK} See question 3.2.
 
 
-2.15.	After upgrading to glibc 2.1 with symbol versioning I get
+2.17.	After upgrading to glibc 2.1 with symbol versioning I get
 	errors about undefined symbols.  What went wrong?
 
 {AJ} The problem is caused either by wrong program code or tools.  In
@@ -689,7 +731,7 @@ the price you might have to pay once for quite a number of advantages
 with symbol versioning.
 
 
-2.16.	When I start the program XXX after upgrading the library
+2.18.	When I start the program XXX after upgrading the library
 	I get
 	  XXX: Symbol `_sys_errlist' has different size in shared
 	  object, consider re-linking
@@ -711,6 +753,16 @@ might be possible that a symbol changed size when that should not have
 happened.  So in case of doubt report such a warning message as a
 problem.
 
+
+2.19.	What do I need for C++ development?
+
+{HJ,AJ} You need either egcs 1.0.2 or gcc-2.8.1 with libstdc++
+2.8.1 (or more recent versions). libg++ 2.7.2 (and the Linux Versions
+2.7.2.x) doesn't work very well with the GNU C library due to vtable thunks.
+If you're upgrading from glibc 2.0.x to 2.1 you have to recompile
+libstdc++ since the library compiled for 2.0 is not compatible due to the new
+Large File Support (LFS) in version 2.1.
+
 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
@@ -963,7 +1015,7 @@ to do so. For example constructs of the form:
 enum {foo
 #define foo foo
 }
-are  useful for debugging purpuses (you can use foo with your debugger
+are  useful for debugging purposes (you can use foo with your debugger
 that's why we need the enum) and for compatibility (other systems use
 defines and check with #ifdef).
 
@@ -980,6 +1032,21 @@ standards with feature flags).
 The GNU C library is conforming to ANSI/ISO C - if and only if you're
 only using the headers and library functions defined in the standard.
 
+
+3.12.	I can't access some functions anymore.  nm shows that they do
+	exist but linking fails nevertheless.
+
+{AJ} With the introduction of versioning in glibc 2.1 it is possible
+to export only those identifiers (functions, variables) that are
+really needed by application programs and by other parts of glibc.
+This way a lot of internal interfaces are now hidden.  nm will still
+show those identifiers but marking them as internal.  ISO C states
+that identifiers beginning with an underscore are internal to the
+libc.  An application program normally shouldn't use those internal
+interfaces (there are exceptions, e.g. __ivaliduser).  If a program
+uses these interfaces, it's broken.  These internal interfaces might
+change between glibc releases or dropped completely.
+
 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
@@ -989,7 +1056,7 @@ only using the headers and library functions defined in the standard.
 	or higher is required for this script'.  What can I do?
 
 {UD} You have to get the specified autoconf version (or a later one)
-from your favorite mirror of prep.ai.mit.edu.
+from your favorite mirror of ftp.gnu.org.
 
 
 4.2.	When I try to compile code which uses IPv6 headers and
@@ -1018,6 +1085,7 @@ Answers were given by:
 {ZW} Zack Weinberg, <zack@rabi.phys.columbia.edu>
 {TK} Thorsten Kukuk, <kukuk@vt.uni-paderborn.de>
 {GK} Geoffrey Keating, <Geoff.Keating@anu.edu.au>
+{HJ} H.J. Lu, <hjl@gnu.org>
 
 Local Variables:
  mode:outline
diff --git a/FAQ.in b/FAQ.in
index 18ef19854b..b6cc529e80 100644
--- a/FAQ.in
+++ b/FAQ.in
@@ -33,6 +33,8 @@ probably in the future, are:
 	powerpc-*-linux-gnu     Linux and MkLinux on PowerPC systems
 	sparc-*-linux-gnu	Linux-2.x on SPARC
 	sparc64-*-linux-gnu	Linux-2.x on UltraSPARC
+	arm-*-none		ARM standalone systems
+	arm-*-linuxaout		Linux-2.x on ARM using a.out binaries
 
 Ports to other Linux platforms are in development, and may in fact
 work already, but no one has sent us success reports for them.
diff --git a/Makeconfig b/Makeconfig
index db62f8edb0..17967abda0 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -405,7 +405,7 @@ ifeq (yes,$(build-shared))
 link-libc = -Wl,-rpath-link=$(rpath-link) \
 	    $(common-objpfx)libc.so$(libc.so-version) \
 	    $(elfobjdir)/$(rtld-installed-name) \
-	    $(common-objpfx)libc.a $(gnulib)
+	    $(common-objpfx)libc_nonshared.a $(gnulib)
 # Choose the default search path for the dynamic linker based on
 # where we will install libraries.
 ifneq ($(libdir),$(slibdir))
@@ -573,7 +573,7 @@ endif
 # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
 # to pass different flags for each flavor.
 libtypes = $(foreach o,$(object-suffixes),$(libtype$o))
-all-object-suffixes := .o .os .op .og .ob
+all-object-suffixes := .o .os .op .og .ob .oS
 object-suffixes :=
 ifeq (yes,$(build-static))
 CPPFLAGS-.o = $(pic-default)
@@ -619,6 +619,13 @@ CFLAGS-.ob = -g -fbounded-pointers
 libtype.ob = lib%_b.a
 endif
 
+# Special library that contains the static-only routines for libc.
+libtype.oS = lib%_nonshared.a
+# Must build the routines as PIC, though, because they can end up in (users')
+# shared objects.  We don't want to use CFLAGS-os because users may, for
+# example, make that processor-specific.
+CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
+CPPFLAGS-.oS = $(CPPFLAGS-.o)
 
 +gnu-stabs = $(shell echo>&2 '*** BARF ON ME')
 
diff --git a/Makefile b/Makefile
index cac9bbc43e..813ffc4ef0 100644
--- a/Makefile
+++ b/Makefile
@@ -336,12 +336,15 @@ define format-me
 makeinfo --no-validate --no-warn --no-headers $< -o $@
 -chmod a-w $@
 endef
-INSTALL: manual/maint.texi; $(format-me)
+INSTALL: manual/install.texi; $(format-me)
 NOTES: manual/creature.texi; $(format-me)
 manual/dir-add.texi manual/dir-add.info: FORCE
 	$(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
 FAQ: gen-FAQ.pl FAQ.in
 	$(PERL) $^ > $@.new && rm -f $@ && mv $@.new $@ && chmod a-w $@
+ifeq ($(with-cvs),yes)
+	test ! -d CVS || cvs $(CVSOPTS) commit -m'Regenerated:  $(PERL) $^' $@
+endif
 FORCE:
 
 rpm/%: subdir_distinfo
diff --git a/README.template b/README.template
index 0850475f7c..37b01e7947 100644
--- a/README.template
+++ b/README.template
@@ -12,6 +12,8 @@ configurations:
 		powerpc-*-linux-gnu     Linux and MkLinux on PowerPC systems
 		sparc-*-linux-gnu	Linux-2.x on SPARC
 		sparc64-*-linux-gnu	Linux-2.x on UltraSPARC
+		arm-*-none		ARM standalone systems
+		arm-*-linuxaout		Linux-2.x on ARM using a.out binaries
 
 
 Former releases of this library (version 1.09.1 and perhaps earlier
diff --git a/manual/install.texi b/manual/install.texi
index 3313bf0f38..0efffde2b5 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -260,6 +260,8 @@ following patterns:
 
 @smallexample
 alpha-@var{anything}-linux
+arm-@var{anything}-linuxaout
+arm-@var{anything}-none
 i@var{x}86-@var{anything}-gnu
 i@var{x}86-@var{anything}-linux
 m68k-@var{anything}-linux
diff --git a/version.h b/version.h
index aabd0693d4..0e75f148f8 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
 /* This file just defines the current version number of libc.  */
 
 #define RELEASE "experimental"
-#define VERSION "2.0.92"
+#define VERSION "2.0.93"