diff options
| author | Ulrich Drepper <drepper@redhat.com> | 1996-08-29 00:31:18 +0000 |
|---|---|---|
| committer | Ulrich Drepper <drepper@redhat.com> | 1996-08-29 00:31:18 +0000 |
| commit | 14bab8de31e04b990c2ce83d844f634ec57a6cc6 (patch) | |
| tree | f6a25bd165f8997c08e58f6f2de69e9d34e0fda0 | |
| parent | b236e99d90748f6caf77994e96dc5aaa48ce2993 (diff) | |
| download | glibc-cvs/libc-960829.tar.xz glibc-cvs/libc-960829.zip | |
update from main archive 960828glibc-1.93cvs/libc-960829cvs/libc-1-93
Thu Aug 29 00:28:08 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/printf_fp.c (__printf_fp): Use default value `.` if
`decimal' char is 0.
* C-numeric.c (not_available): New constant.
(_nl_C_LC_NUMERIC): Use `not_available' for grouping value.
* nss/nsswitch.conf: Example configuration file.
* nss/db-Makefile: Example Makefile for generation of databases
for nss_db.
* nss/Makefile (distribute): Add nsswitch.conf and db-Makefile.
1996-08-28 Paul Eggert <eggert@twinsun.com>
* C-messages.c (_nl_C_LC_MESSAGES): Set yesexpr to "^[yY]" and
noexpr to "^[nN]"; this conforms to POSIX.2.
* C-time.c (_nl_C_LC_TIME): Change %d to %e in d_t_format, to
conform to POSIX.2.
1996-08-28 Paul Eggert <eggert@twinsun.com>
* C-monetary.c (not_available): New constant.
(_nl_C_LC_MONETARY): Set mon_decimal_point to "", and set
mon_grouping, int_frac_digits, frac_digits, p_cs_precedes,
p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and
n_sign_posn to CHAR_MAX, as required by the POSIX Standard.
Wed Aug 28 23:12:28 1996 Ulrich Drepper <drepper@cygnus.com>
* nss/nss_db/db-XXX.c: Correct function names. They must be
`_nss_db_*' instead of `_nss_files_*'.
(lookup): `parse_line' returns 1 if succesful.
* nss/nss_files/files-service.c (servbyname): Key for database
must also contain protocol names.
(servbypt): Likewise.
Test must also check for protocol. Add `proto' argument.
Tue Aug 27 09:56:13 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* MakeTAGS ($P/subdirs.pot): Prefix all file names, not only the
first one.
Fri Aug 16 16:11:25 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* nss/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): Treat
EPFNOSUPPORT and EAFNOSUPPORT as implying NSS_STATUS_UNAVAIL just
like ECONNREFUSED already does.
(_nss_dns_gethostbyaddr_r): Likewise.
* nss/nss_dns/dns-network.c (_nss_dns_getnetbyname_r): Likewise.
(_nss_dns_getnetbyaddr_r): Likewise.
* sysdeps/mach/hurd/socket.c (socket): For message transmission
and RPC errors that indicate that the socket server is not really
present and able to do its job, turn the error into EPFNOSUPPORT.
* sysdeps/generic/sbrk.c (__sbrk): Get kernel brk address
always only if in static libc or if statically linked program
uses libc.so.
| -rw-r--r-- | ChangeLog | 61 | ||||
| -rw-r--r-- | MakeTAGS | 2 | ||||
| -rw-r--r-- | Makerules | 7 | ||||
| -rw-r--r-- | NEWS | 2 | ||||
| -rw-r--r-- | PROJECTS | 42 | ||||
| -rw-r--r-- | db/Makefile | 5 | ||||
| -rw-r--r-- | db/makedb.c | 28 | ||||
| -rw-r--r-- | elf/dl-error.c | 9 | ||||
| -rw-r--r-- | elf/dl-load.c | 7 | ||||
| -rw-r--r-- | elf/dlerror.c | 2 | ||||
| -rw-r--r-- | elf/link.h | 5 | ||||
| -rw-r--r-- | elf/rtld.c | 115 | ||||
| -rw-r--r-- | io/fcntl.h | 10 | ||||
| -rw-r--r-- | locale/C-collate.c | 3 | ||||
| -rw-r--r-- | locale/C-ctype.c | 8 | ||||
| -rw-r--r-- | locale/C-messages.c | 9 | ||||
| -rw-r--r-- | locale/C-monetary.c | 28 | ||||
| -rw-r--r-- | locale/C-numeric.c | 10 | ||||
| -rw-r--r-- | locale/C-time.c | 5 | ||||
| -rw-r--r-- | nss/Makefile | 3 | ||||
| -rw-r--r-- | nss/nss_db/db-XXX.c | 22 | ||||
| -rw-r--r-- | nss/nss_files/files-service.c | 10 | ||||
| -rw-r--r-- | po/SYS_libc.pot | 186 | ||||
| -rw-r--r-- | posix/sys/types.h | 1 | ||||
| -rw-r--r-- | resolv/arpa/nameser.h | 32 | ||||
| -rw-r--r-- | resolv/res_debug.c | 43 | ||||
| -rw-r--r-- | resolv/res_init.c | 6 | ||||
| -rw-r--r-- | resolv/res_mkquery.c | 60 | ||||
| -rw-r--r-- | resolv/resolv.h | 8 | ||||
| -rw-r--r-- | stdio-common/printf_fp.c | 7 | ||||
| -rw-r--r-- | sysdeps/generic/dl-sysdep.c | 25 | ||||
| -rw-r--r-- | sysdeps/generic/sbrk.c | 18 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/fcntlbits.h | 11 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/gnu/types.h | 1 |
34 files changed, 494 insertions, 297 deletions
@@ -1,3 +1,47 @@ +Thu Aug 29 00:28:08 1996 Ulrich Drepper <drepper@cygnus.com> + + * stdio-common/printf_fp.c (__printf_fp): Use default value `.` if + `decimal' char is 0. + + * C-numeric.c (not_available): New constant. + (_nl_C_LC_NUMERIC): Use `not_available' for grouping value. + + * nss/nsswitch.conf: Example configuration file. + * nss/db-Makefile: Example Makefile for generation of databases + for nss_db. + * nss/Makefile (distribute): Add nsswitch.conf and db-Makefile. + +1996-08-28 Paul Eggert <eggert@twinsun.com> + + * C-messages.c (_nl_C_LC_MESSAGES): Set yesexpr to "^[yY]" and + noexpr to "^[nN]"; this conforms to POSIX.2. + + * C-time.c (_nl_C_LC_TIME): Change %d to %e in d_t_format, to + conform to POSIX.2. + +1996-08-28 Paul Eggert <eggert@twinsun.com> + + * C-monetary.c (not_available): New constant. + (_nl_C_LC_MONETARY): Set mon_decimal_point to "", and set + mon_grouping, int_frac_digits, frac_digits, p_cs_precedes, + p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and + n_sign_posn to CHAR_MAX, as required by the POSIX Standard. + +Wed Aug 28 23:12:28 1996 Ulrich Drepper <drepper@cygnus.com> + + * nss/nss_db/db-XXX.c: Correct function names. They must be + `_nss_db_*' instead of `_nss_files_*'. + (lookup): `parse_line' returns 1 if succesful. + * nss/nss_files/files-service.c (servbyname): Key for database + must also contain protocol names. + (servbypt): Likewise. + Test must also check for protocol. Add `proto' argument. + +Tue Aug 27 09:56:13 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * MakeTAGS ($P/subdirs.pot): Prefix all file names, not only the + first one. + Tue Aug 27 17:45:21 1996 Ulrich Drepper <drepper@cygnus.com> * Makerules: Add some test for correct version of GNU Make. @@ -207,6 +251,19 @@ Fri Aug 16 04:59:01 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/Makefile [$(subdir) = csu]: Use -fkeep-inline-functions flag instead. +Fri Aug 16 16:11:25 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> + + * nss/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): Treat + EPFNOSUPPORT and EAFNOSUPPORT as implying NSS_STATUS_UNAVAIL just + like ECONNREFUSED already does. + (_nss_dns_gethostbyaddr_r): Likewise. + * nss/nss_dns/dns-network.c (_nss_dns_getnetbyname_r): Likewise. + (_nss_dns_getnetbyaddr_r): Likewise. + + * sysdeps/mach/hurd/socket.c (socket): For message transmission + and RPC errors that indicate that the socket server is not really + present and able to do its job, turn the error into EPFNOSUPPORT. + Fri Aug 16 01:24:33 1996 Ulrich Drepper <drepper@cygnus.com> * inet/ruserpass.c (userpass): Allocate buffer for .netrc file @@ -437,6 +494,10 @@ Sun Aug 11 16:19:42 1996 Ulrich Drepper <drepper@cygnus.com> always only if in static libc or if statically linked program uses libc.so. + * sysdeps/generic/sbrk.c (__sbrk): Get kernel brk address + always only if in static libc or if statically linked program + uses libc.so. + Sun Aug 11 01:12:38 1996 Richard Henderson <rth@tamu.edu> * sysdeps/alpha/dl-machine.h (elf_alpha_fix_plt): Optimize LD_BIND_NOW @@ -159,7 +159,7 @@ ifndef subdir $P/subdirs.pot: $(subdirs:%=$P/%.pot) @rm -f $@.new (for d in $(subdirs); \ - do sed "s%^#: %&$$d/%" $P/$$d.pot; done) > $@.new + do sed "/^#:/s% % $$d/%g" $P/$$d.pot; done) > $@.new mv -f $@.new $@ # Get $(version) defined. @@ -25,6 +25,13 @@ ifneq (,) This makefile requires GNU Make. endif +REQUIRED_MAKE_VERSION = 3.74 + +ifneq ($(REQUIRED_MAKE_VERSION), \ + $(firstword $(sort $(MAKE_VERSION) $(REQUIRED_MAKE_VERSION)))) +Wrong GNU Make version. See above for the version needed. +endif + ifdef subdir .. := ../ @@ -104,7 +104,7 @@ Version 2.0 * The new header file <fts.h> and suite of functions simplify programs that operate on directory trees. This code comes from 4.4 BSD. -* The resolver code has been updated from the BIND 4.9.5-T1A release. +* The resolver code has been updated from the BIND 4.9.5-T3A release. * The new function `malloc_find_object_address' finds the starting address of a malloc'd block, given any address within the block; @@ -1,6 +1,6 @@ Open jobs for finishing GNU libc: --------------------------------- -Status: July 1996 +Status: August 1996 If you have time and talent to take over any of the jobs below please contact <bug-glibc@prep.ai.mit.edu> @@ -32,33 +32,7 @@ contact <bug-glibc@prep.ai.mit.edu> Implementation idea: use some functions from bash. -[ 5] Write reentrant versions of crypt() et.al. - - Implementation idea: Define in <crypt.h> - - struct crypt_data - { - <... all the needed data ...> - }; - - and define additional functions - - char *crypt_r (__const char *__key, __const char *__salt, - struct crypt_data *__data); - - void setkey_r (__const char *__key, struct crypt_data *__data); - - void encrypt_r (char *__block, int __edflag, - struct crypt_data *__data); - - If possible the non-reentrant functions should use the reentrant - ones. - - Because of the US export restrictions it might be a good idea if - some non-american person does this job. - - -[ 6] Write `long double' versions of the math functions. This should be +[ 5] Write `long double' versions of the math functions. This should be done in collaboration with the NetBSD and FreeBSD people. The libm is in fact fdlibm (not the same as in Linux libc). @@ -66,7 +40,7 @@ contact <bug-glibc@prep.ai.mit.edu> **** Partly done. -[ 7] If you enjoy assembler programming (as I do --drepper :-) you might +[ 6] If you enjoy assembler programming (as I do --drepper :-) you might be interested in writing optimized versions for some functions. Especially the string handling functions can be optimized a lot. @@ -81,21 +55,21 @@ contact <bug-glibc@prep.ai.mit.edu> on this. -[ 8] Write nftw() function. Perhaps it might be good to reimplement the +[ 7] Write nftw() function. Perhaps it might be good to reimplement the ftw() function as well to share most of the code. **** Almost done! -[ 9] Write AVL-tree based tsearch() et.al. functions. Currently only +[ 8] Write AVL-tree based tsearch() et.al. functions. Currently only a very simple algorithm is used. There is a public domain version but using this would cause problems with the assignment. -[10] Extend regex and/or rx to work with wide characters. +[ 9] Extend regex and/or rx to work with wide characters. -[11] Add mmap() support to malloc(). +[10] Add mmap() support to malloc(). Doug Lea's malloc implementation might give some ideas. Perhaps switching completly to his implementation is an option if it a) can work without mmap() support (not all system GNU libc @@ -107,7 +81,7 @@ contact <bug-glibc@prep.ai.mit.edu> Please contact bug-glibc@prep.ai.mit.edu before starting to avoid duplicated work. -[12] Write access function for netmasks, bootparams, netgroup, publickey, +[11] Write access function for netmasks, bootparams, netgroup, publickey, automount, aliases databases for nss_files and nss_db module. The functions should be embedded in the nss scheme. This is not hard and not all services must be supported at once. diff --git a/db/Makefile b/db/Makefile index 2c678dfaa6..e5a60557dc 100644 --- a/db/Makefile +++ b/db/Makefile @@ -25,6 +25,9 @@ distribute := compat.h \ hash/extern.h hash/hash.h hash/page.h \ recno/extern.h recno/recno.h +others := makedb +install-bin := makedb + include ../Rules CPPFLAGS += -D__DBINTERFACE_PRIVATE @@ -35,3 +38,5 @@ CFLAGS-hash_func.c := -Wno-unused # The db code outsmarts the compiler frequently. override CFLAGS += -Wno-uninitialized + +$(objpfx)makedb: -ldb diff --git a/db/makedb.c b/db/makedb.c index b1ed982275..a215f25e59 100644 --- a/db/makedb.c +++ b/db/makedb.c @@ -39,15 +39,16 @@ static const struct option long_options[] = { "help", no_argument, NULL, 'h' }, { "fold-case", no_argument, NULL, 'f' }, { "output", required_argument, NULL, 'o' }, + { "quiet", no_argument, NULL, 'q' }, { "undo", no_argument, NULL, 'u' }, { "version", no_argument, NULL, 'V' }, - { NULL, } + { NULL, 0, NULL, 0} }; /* Prototypes for local functions. */ static void usage __P ((int status)) __attribute__ ((noreturn)); static int process_input __P ((FILE *input, const char *inname, DB *output, - int to_lowercase)); + int to_lowercase, int be_quiet)); static int print_database __P ((DB *db)); @@ -64,6 +65,7 @@ main (argc, argv) int do_version; int to_lowercase; int do_undo; + int be_quiet; int status; int opt; @@ -78,6 +80,7 @@ main (argc, argv) do_version = 0; to_lowercase = 0; do_undo = 0; + be_quiet = 0; output_name = NULL; while ((opt = getopt_long (argc, argv, "fho:uV", long_options, NULL)) != EOF) @@ -94,6 +97,9 @@ main (argc, argv) case 'o': output_name = optarg; break; + case 'q': + be_quiet = 1; + break; case 'u': do_undo = 1; break; @@ -170,7 +176,8 @@ main (argc, argv) error (EXIT_FAILURE, errno, gettext ("cannot open output file `%s'")); /* Start the real work. */ - status = process_input (input_file, input_name, db_file, to_lowercase); + status = process_input (input_file, input_name, db_file, to_lowercase, + be_quiet); /* Close files. */ if (input_file != stdin) @@ -197,6 +204,7 @@ Mandatory arguments to long options are mandatory for short options too.\n\ -f, --fold-case convert key to lower case\n\ -h, --help display this help and exit\n\ -o, --output=NAME write output to file NAME\n\ + --quiet don't print messages while building database\n\ -u, --undo print content of database file, one entry a line\n\ -V, --version output version information and exit\n\ If INPUT-FILE is -, input is read from standard input.\n"), @@ -208,11 +216,12 @@ If INPUT-FILE is -, input is read from standard input.\n"), static int -process_input (input, inname, output, to_lowercase) +process_input (input, inname, output, to_lowercase, be_quiet) FILE *input; const char *inname; DB *output; int to_lowercase; + int be_quiet; { char *line; size_t linelen; @@ -278,11 +287,18 @@ process_input (input, inname, output, to_lowercase) if (status != 0) { if (status == 1) - error_at_line (0, 0, inname, linenr, gettext ("duplicate key")); + { + if (!be_quiet) + error_at_line (0, 0, inname, linenr, + gettext ("duplicate key")); + /* This is no real error. Just give a warning. */ + status = 0; + } else error (0, errno, gettext ("while writing data base file")); - status = EXIT_FAILURE; + status = status ? EXIT_FAILURE : EXIT_SUCCESS; + clearerr (input); break; } diff --git a/elf/dl-error.c b/elf/dl-error.c index 2eaa7e03d1..40ded4f1d2 100644 --- a/elf/dl-error.c +++ b/elf/dl-error.c @@ -20,13 +20,15 @@ Cambridge, MA 02139, USA. */ #include <stddef.h> #include <link.h> #include <setjmp.h> +#include <stdlib.h> #include <string.h> /* This structure communicates state between _dl_catch_error and _dl_signal_error. */ struct catch { - const char *errstring, *objname; /* Error detail filled in here. */ + char *errstring; /* Error detail filled in here. */ + const char *objname; jmp_buf env; /* longjmp here on error. */ }; @@ -69,7 +71,7 @@ _dl_signal_error (int errcode, } int -_dl_catch_error (const char **errstring, +_dl_catch_error (char **errstring, const char **objname, void (*operate) (void)) { @@ -82,7 +84,8 @@ _dl_catch_error (const char **errstring, catch = &c; (*operate) (); catch = NULL; - *errstring = *objname = NULL; + *errstring = NULL; + *objname = NULL; return 0; } diff --git a/elf/dl-load.c b/elf/dl-load.c index 6fd6a6cbe0..b56303fa4a 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -481,6 +481,7 @@ _dl_map_object (struct link_map *loader, const char *name, int type) { int fd; char *realname; + char *name_copy; struct link_map *l; /* Look for this name among those already loaded. */ @@ -572,8 +573,8 @@ _dl_map_object (struct link_map *loader, const char *name, int type) if (fd != -1) { - name = local_strdup (name); - if (name == NULL) + name_copy = local_strdup (name); + if (name_copy == NULL) { __close (fd); fd = -1; @@ -583,5 +584,5 @@ _dl_map_object (struct link_map *loader, const char *name, int type) if (fd == -1) _dl_signal_error (errno, name, "cannot open shared object file"); - return _dl_map_object_from_fd (name, fd, realname, loader, type); + return _dl_map_object_from_fd (name_copy, fd, realname, loader, type); } diff --git a/elf/dlerror.c b/elf/dlerror.c index 663207d708..9b78e47a57 100644 --- a/elf/dlerror.c +++ b/elf/dlerror.c @@ -24,7 +24,7 @@ Cambridge, MA 02139, USA. */ #include <stdlib.h> static int last_errcode; -static const char *last_errstring; +static char *last_errstring; static const char *last_object_name; char * |
