aboutsummaryrefslogtreecommitdiff
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 8bc8469..99c6b99 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 a3fddde..a3d3b5a 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 c15611d..0da1961 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 2c13c20..ac3834a 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 c18a569..b40362e 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 8a15c6e..d698132 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 2a1a953..497fe3f 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 37e006f..c1013f1 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"