From 0155a7737f5653e07015421b962b70fd8831c4ad Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 25 Nov 1998 15:42:34 +0000 Subject: Update. 1998-11-25 Ulrich Drepper * version.h (VERSION): Bump to 2.0.104. 1998-11-25 Mark Kettenis * libio/bits/stdio.h (fread_unlocked): Add missing parentheses around parameter n. 1998-11-24 Andreas Schwab * time/tzfile.c (__tzfile_read): Fix comment. 1998-11-24 Andreas Schwab * Makerules (build-shlib): Pass -O1 down to linker to get optimized shared libraries. 1998-11-24 Andreas Schwab * 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. --- ChangeLog | 25 +++++++++++++++++++++++++ FAQ | 28 ++++++++++++++++++++++++++++ FAQ.in | 27 +++++++++++++++++++++++++++ Makeconfig | 16 ++++++++-------- Makerules | 2 +- libio/bits/stdio.h | 2 +- time/tzfile.c | 2 +- version.h | 2 +- 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 + + * version.h (VERSION): Bump to 2.0.104. + +1998-11-25 Mark Kettenis + + * libio/bits/stdio.h (fread_unlocked): Add missing parentheses + around parameter n. + +1998-11-24 Andreas Schwab + + * time/tzfile.c (__tzfile_read): Fix comment. + +1998-11-24 Andreas Schwab + + * Makerules (build-shlib): Pass -O1 down to linker to get + optimized shared libraries. + +1998-11-24 Andreas Schwab + + * 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 * 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" -- cgit v1.2.3