summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog25
-rw-r--r--FAQ28
-rw-r--r--FAQ.in27
-rw-r--r--Makeconfig16
-rw-r--r--Makerules2
-rw-r--r--libio/bits/stdio.h2
-rw-r--r--time/tzfile.c2
-rw-r--r--version.h2
8 files changed, 92 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 8bc8469f5c..99c6b99fab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+1998-11-25  Ulrich Drepper  <drepper@cygnus.com>
+
+	* version.h (VERSION): Bump to 2.0.104.
+
+1998-11-25  Mark Kettenis  <kettenis@phys.uva.nl>
+
+	* libio/bits/stdio.h (fread_unlocked): Add missing parentheses
+	around parameter n.
+
+1998-11-24  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+	* time/tzfile.c (__tzfile_read): Fix comment.
+
+1998-11-24  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+	* Makerules (build-shlib): Pass -O1 down to linker to get
+	optimized shared libraries.
+
+1998-11-24  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+	* Makeconfig ($(common-objpfx)sysd-dirs): Cope with no Subdirs
+	file.  Strip "-" from inhibited subdir name.  Combine into a
+	single awk program.
+	($(common-objpfx)sysd-sorted): Fix sed command.
+
 1998-11-25  Roland McGrath  <roland@baalperazim.frob.com>
 
 	* sysdeps/mach/hurd/i386/init-first.c (init): Restored as inline fn.
diff --git a/FAQ b/FAQ
index a3fdddee52..a3d3b5a152 100644
--- a/FAQ
+++ b/FAQ
@@ -93,6 +93,7 @@ please let me know.
 2.23.	I just upgraded my Linux system to glibc and now I get
 	errors whenever I try to link any program.
 2.24.	When I use nscd the machine freezes.
+2.25.	I need lots of open files.  What do I have to do?
 
 3. Source and binary incompatibilities, and what to do about them
 
@@ -943,6 +944,33 @@ If you need nscd, you have to use a 2.1 kernel.
 
 Note that I have at this point no information about any other platform.
 
+
+2.25.	I need lots of open files.  What do I have to do?
+
+{AJ} This is at first a kernel issue.  The kernel defines limits with
+OPEN_MAX the number of simultaneous open files and with FD_SETSIZE the
+number of used file descriptors.  You need to change these values in your
+kernel and recompile the kernel so that the kernel allows to use more open
+files.  You don't necessarily need to recompile the GNU C library since the
+only place where OPEN_MAX and FD_SETSIZE is really needed in the library
+itself is the size of fd_set which is used by select.
+
+The GNU C library is now (nearly) select free.  This means it internally has
+no limits imposed by the `fd_set' type.  Instead almost all places where the
+functionality is needed the `poll' function is used.
+
+If you increase the number of file descriptors in the kernel you don't need
+to recompile the C library.  The remaining select calls are in the RPC code.
+If your RPC daemons don't need more than FD_SETSIZE file descriptors, you
+don't need to change anything at all.
+
+{UD} You can always get the maximum number of file descriptors a process is
+allowed to have open at any time using
+
+	number = sysconf (_SC_OPEN_MAX);
+
+This will work even if the kernel limits change.
+
 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
diff --git a/FAQ.in b/FAQ.in
index c15611d672..0da19611cc 100644
--- a/FAQ.in
+++ b/FAQ.in
@@ -776,6 +776,33 @@ If you need nscd, you have to use a 2.1 kernel.
 
 Note that I have at this point no information about any other platform.
 
+??	I need lots of open files.  What do I have to do?
+
+{AJ} This is at first a kernel issue.  The kernel defines limits with
+OPEN_MAX the number of simultaneous open files and with FD_SETSIZE the
+number of used file descriptors.  You need to change these values in your
+kernel and recompile the kernel so that the kernel allows to use more open
+files.  You don't necessarily need to recompile the GNU C library since the
+only place where OPEN_MAX and FD_SETSIZE is really needed in the library
+itself is the size of fd_set which is used by select.
+
+The GNU C library is now (nearly) select free.  This means it internally has
+no limits imposed by the `fd_set' type.  Instead almost all places where the
+functionality is needed the `poll' function is used.
+
+If you increase the number of file descriptors in the kernel you don't need
+to recompile the C library.  The remaining select calls are in the RPC code.
+If your RPC daemons don't need more than FD_SETSIZE file descriptors, you
+don't need to change anything at all.
+
+{UD} You can always get the maximum number of file descriptors a process is
+allowed to have open at any time using
+
+	number = sysconf (_SC_OPEN_MAX);
+
+This will work even if the kernel limits change.
+
+
 ? Source and binary incompatibilities, and what to do about them
 
 ??	I expect GNU libc to be 100% source code compatible with
diff --git a/Makeconfig b/Makeconfig
index 2c13c2073c..ac3834af50 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -772,14 +772,14 @@ subdirs	:= $(filter mach,$(subdirs)) $(filter hurd,$(subdirs)) \
 
 all-Subdirs-files = $(wildcard $(config-sysdirs:%=$(..)%/Subdirs))
 $(common-objpfx)sysd-dirs: $(common-objpfx)config.make $(all-Subdirs-files)
-	($(AWK) 'END { printf ("sysdep-subdirs =") }' /dev/null;	\
-	 $(AWK) '/^[^#-]/ { printf (" %s", $$0) }' $(all-Subdirs-files);\
-	 echo;								\
-	 $(AWK) 'END { printf ("sysdep-inhibit-subdirs =") }' /dev/null;\
-	 $(AWK) '/^-/ { printf (" %s", $$0) }' $(all-Subdirs-files);	\
-	 echo;								\
-	 echo 'sysd-dirs-done = t';					\
-	) > $@-tmp
+	$(AWK) 'BEGIN { subdirs = ""; inhibit = "" };			\
+		/^#/ { next };						\
+		/^[^-]/ { subdirs = subdirs " " $$0 };			\
+		/^-/ { inhibit = inhibit " " substr($$0, 2) };		\
+		END { printf "sysdep-subdirs =%s\n", subdirs;		\
+		      printf "sysdep-inhibit-subdirs =%s\n", inhibit;	\
+		      print "sysd-dirs-done = t" }'			\
+	       /dev/null $(all-Subdirs-files) > $@-tmp
 	mv -f $@-tmp $@
 
 all-Depend-files = $(wildcard $(..)*/Depend)
diff --git a/Makerules b/Makerules
index c18a5692cb..b40362eb72 100644
--- a/Makerules
+++ b/Makerules
@@ -359,7 +359,7 @@ lib%.so: lib%_pic.a $(+preinit) $(+postinit) $(+interp)
 	$(build-shlib)
 
 define build-shlib
-$(LINK.o) -shared -O -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS)  \
+$(LINK.o) -shared -Wl,-O1 -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS)  \
 	  -B$(csu-objpfx) $(load-map-file) \
 	  -Wl,-soname=lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \
 	  $(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \
diff --git a/libio/bits/stdio.h b/libio/bits/stdio.h
index 8a15c6e6a6..d698132558 100644
--- a/libio/bits/stdio.h
+++ b/libio/bits/stdio.h
@@ -144,7 +144,7 @@ ferror_unlocked (FILE *__stream) __THROW
 		      || (__builtin_constant_p (n) && (n) == 0))	      \
 			/* Evaluate all parameters once.  */		      \
 		     ? ((void) (ptr), (void) (stream), (void) (size),	      \
-			(void) n, 0)					      \
+			(void) (n), 0)					      \
 		     : fread_unlocked (ptr, size, n, stream))))
 
 # define fwrite_unlocked(ptr, size, n, stream) \
diff --git a/time/tzfile.c b/time/tzfile.c
index 2a1a953962..497fe3f006 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -309,7 +309,7 @@ __tzfile_read (const char *file)
   compute_tzname_max (chars);
 
   if (num_transitions == 0)
-    /* Use the first rule (which should also be the only one.  */
+    /* Use the first rule (which should also be the only one).  */
     rule_stdoff = rule_dstoff = types[0].offset;
   else
     {
diff --git a/version.h b/version.h
index 37e006fe88..c1013f1781 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.103"
+#define VERSION "2.0.104"