diff options
| author | Ulrich Drepper <drepper@redhat.com> | 1999-12-18 19:45:25 +0000 |
|---|---|---|
| committer | Ulrich Drepper <drepper@redhat.com> | 1999-12-18 19:45:25 +0000 |
| commit | b85697f61d8aeeaeb8b91d50ab2c668b7fcbbd8a (patch) | |
| tree | 6aec765390be55804ecbe7c1bde6c79dda2e1dc2 | |
| parent | 440a52ea7b427b7a5668c77283825cae20d7fc3c (diff) | |
| download | glibc-b85697f61d8aeeaeb8b91d50ab2c668b7fcbbd8a.tar.xz glibc-b85697f61d8aeeaeb8b91d50ab2c668b7fcbbd8a.zip | |
Update.
1999-12-17 Ulrich Drepper <drepper@cygnus.com>
* string/bits/string2.h (__strtok_r_1c): Help gcc optimizing string
access.
* locale/programs/ld-collate.c: Implement handling of absolute
ellipsis. Parsing of file and constructing the internal data
structures should now be complete.
(collate_finish): Start adding support to generate the data
structures which are written out to the file.
* intl/dcgettext.c: Rewrite to handle caching of previous results here
instead of in the dcgettext macro.
* intl/libintl.h (dcgettext): Don't define for systems using this
glibc or systems with tsearch.
* sysdeps/generic/mathdef.h: Protect definitions for math.h
against double inclusion.
* sysdeps/alpha/fpu/bits/mathdef.h: Likewise.
* sysdeps/i386/fpu/bits/mathdef.h: Likewise.
* sysdeps/m68k/fpu/bits/mathdef.h: Likewise.
* sysdeps/powerpc/fpu/bits/mathdef.h: Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Add more deltas (are mobile PIIs
that different?).
1999-12-17 Andreas Jaeger <aj@suse.de>
* rt/aio.h (struct aiocb64): Add member __next_prio to sync the
struct with aiocb.
* rt/Makefile (tests): Added tst-aio64.
Added dependency rules for tst-aio64.
* rt/tst-aio64.c: New file, copied from tst-aio.c and changed for
64bit tests.
1999-12-15 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/unix/sysv/linux/alpha/oldgetrlimit64.c: Removed.
* sysdeps/unix/sysv/linux/alpha/oldsetrlimit64.c: Removed.
* sysdeps/unix/sysv/linux/bits/resource.h: Change RLIM_INFINITY back to
old value (signed long).
* sysdeps/unix/sysv/linux/i386/bits/resource.h: New, with unsigned
long RLIM_INFINITY.
* sysdeps/unix/sysv/linux/getrlimit.c: Moved from here to ...
* sysdeps/unix/sysv/linux/i386/getrlimit.c: ... here.
* sysdeps/unix/sysv/linux/getrlimit64.c: Moved from here to ...
* sysdeps/unix/sysv/linux/i386/getrlimit64.c: ... here.
* sysdeps/unix/sysv/linux/oldgetrlimit64.c: Moved from here to ...
* sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: ... here.
* sysdeps/unix/sysv/linux/oldsetrlimit64.c: Moved from here to ...
* sysdeps/unix/sysv/linux/i386/oldsetrlimit64.c: ... here.
* sysdeps/unix/sysv/linux/setrlimit.c: Moved from here to ...
* sysdeps/unix/sysv/linux/i386/setrlimit.c: ... here.
* sysdeps/unix/sysv/linux/setrlimit64.c: Moved from here to ...
* sysdeps/unix/sysv/linux/i386/setrlimit64.c: ... here.
* sysdeps/unix/sysv/linux/sparc/bits/resource.h: New.
* sysdeps/unix/sysv/linux/sparc/sparc64/oldgetrlimit64.c: Removed.
* sysdeps/unix/sysv/linux/sparc/sparc64/oldsetrlimit64.c: Removed.
1999-12-17 Andreas Jaeger <aj@suse.de>
* elf/ldconfig.c: Add new option -l to manualy link shared
libraries.
(options): Added option.
(parse_opt): Set option.
(main): Handle option.
(manual_link): New function.
1999-12-17 Thorsten Kukuk <kukuk@suse.de>
* string/bits/string2.h: Fix patch from 1999-12-07.
1999-12-16 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/strsep.c: If delim string has only one character
don't run over end of string.
* locale/programs/ld-collate.c (insert_weights): Also update next
pointer of last cursor element.
(insert_value): Return nonzero value if nothing got inserted.
(handle_ellipsis): Don't do anything if to-value cannot be inserted.
1999-12-10 Jakub Jelinek <jakub@redhat.com>
* stdlib/longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT
where appropriate.
1999-12-10 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction):
Copy sa_flags into kernel sigaction structure.
1999-12-14 Andreas Jaeger <aj@suse.de>
* string/tester.c (test_strsep): More tests for access beyond
the final NUL. The first two tests come from PR libc/1486 by
martinea@iro.umontreal.ca.
1999-12-14 Thorsten Kukuk <kukuk@suse.de>
* nis/ypclnt.c: Correct handling of cached client handles.
(__xdr_ypresp_all): Call callback function for errors, too,
like Solaris does.
* nis/nss_compat/compat-grp.c: Make sure errno is always set correct.
* nis/nss_compat/compat-initgroups.c: Likewise.
* nis/nss_compat/compat-spwd.c: Likewise.
* nis/nss_nis/nis-alias.c: Likewise.
* nis/nss_nis/nis-ethers.c: Likewise.
* nis/nss_nis/nis-grp.c: Likewise.
* nis/nss_nis/nis-hosts.c: Likewise.
* nis/nss_nis/nis-netgrp.c: Likewise.
* nis/nss_nis/nis-publickey.c: Likewise.
* nis/nss_nis/nis-service.c: Likewise. Also use services.byservicename
Map if available, optimize query if name/port and protocol is known.
48 files changed, 1830 insertions, 316 deletions
@@ -1,3 +1,120 @@ +1999-12-17 Ulrich Drepper <drepper@cygnus.com> + + * string/bits/string2.h (__strtok_r_1c): Help gcc optimizing string + access. + + * locale/programs/ld-collate.c: Implement handling of absolute + ellipsis. Parsing of file and constructing the internal data + structures should now be complete. + (collate_finish): Start adding support to generate the data + structures which are written out to the file. + + * intl/dcgettext.c: Rewrite to handle caching of previous results here + instead of in the dcgettext macro. + * intl/libintl.h (dcgettext): Don't define for systems using this + glibc or systems with tsearch. + + * sysdeps/generic/mathdef.h: Protect definitions for math.h + against double inclusion. + * sysdeps/alpha/fpu/bits/mathdef.h: Likewise. + * sysdeps/i386/fpu/bits/mathdef.h: Likewise. + * sysdeps/m68k/fpu/bits/mathdef.h: Likewise. + * sysdeps/powerpc/fpu/bits/mathdef.h: Likewise. + + * sysdeps/i386/fpu/libm-test-ulps: Add more deltas (are mobile PIIs + that different?). + +1999-12-17 Andreas Jaeger <aj@suse.de> + + * rt/aio.h (struct aiocb64): Add member __next_prio to sync the + struct with aiocb. + + * rt/Makefile (tests): Added tst-aio64. + Added dependency rules for tst-aio64. + + * rt/tst-aio64.c: New file, copied from tst-aio.c and changed for + 64bit tests. + +1999-12-15 Thorsten Kukuk <kukuk@suse.de> + + * sysdeps/unix/sysv/linux/alpha/oldgetrlimit64.c: Removed. + * sysdeps/unix/sysv/linux/alpha/oldsetrlimit64.c: Removed. + * sysdeps/unix/sysv/linux/bits/resource.h: Change RLIM_INFINITY back to + old value (signed long). + * sysdeps/unix/sysv/linux/i386/bits/resource.h: New, with unsigned + long RLIM_INFINITY. + * sysdeps/unix/sysv/linux/getrlimit.c: Moved from here to ... + * sysdeps/unix/sysv/linux/i386/getrlimit.c: ... here. + * sysdeps/unix/sysv/linux/getrlimit64.c: Moved from here to ... + * sysdeps/unix/sysv/linux/i386/getrlimit64.c: ... here. + * sysdeps/unix/sysv/linux/oldgetrlimit64.c: Moved from here to ... + * sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: ... here. + * sysdeps/unix/sysv/linux/oldsetrlimit64.c: Moved from here to ... + * sysdeps/unix/sysv/linux/i386/oldsetrlimit64.c: ... here. + * sysdeps/unix/sysv/linux/setrlimit.c: Moved from here to ... + * sysdeps/unix/sysv/linux/i386/setrlimit.c: ... here. + * sysdeps/unix/sysv/linux/setrlimit64.c: Moved from here to ... + * sysdeps/unix/sysv/linux/i386/setrlimit64.c: ... here. + * sysdeps/unix/sysv/linux/sparc/bits/resource.h: New. + * sysdeps/unix/sysv/linux/sparc/sparc64/oldgetrlimit64.c: Removed. + * sysdeps/unix/sysv/linux/sparc/sparc64/oldsetrlimit64.c: Removed. + +1999-12-17 Andreas Jaeger <aj@suse.de> + + * elf/ldconfig.c: Add new option -l to manualy link shared + libraries. + (options): Added option. + (parse_opt): Set option. + (main): Handle option. + (manual_link): New function. + +1999-12-17 Thorsten Kukuk <kukuk@suse.de> + + * string/bits/string2.h: Fix patch from 1999-12-07. + +1999-12-16 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/generic/strsep.c: If delim string has only one character + don't run over end of string. + + * locale/programs/ld-collate.c (insert_weights): Also update next + pointer of last cursor element. + (insert_value): Return nonzero value if nothing got inserted. + (handle_ellipsis): Don't do anything if to-value cannot be inserted. + +1999-12-10 Jakub Jelinek <jakub@redhat.com> + + * stdlib/longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT + where appropriate. + +1999-12-10 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction): + Copy sa_flags into kernel sigaction structure. + +1999-12-14 Andreas Jaeger <aj@suse.de> + + * string/tester.c (test_strsep): More tests for access beyond + the final NUL. The first two tests come from PR libc/1486 by + martinea@iro.umontreal.ca. + +1999-12-14 Thorsten Kukuk <kukuk@suse.de> + + * nis/ypclnt.c: Correct handling of cached client handles. + (__xdr_ypresp_all): Call callback function for errors, too, + like Solaris does. + * nis/nss_compat/compat-grp.c: Make sure errno is always set correct. + * nis/nss_compat/compat-initgroups.c: Likewise. + * nis/nss_compat/compat-spwd.c: Likewise. + * nis/nss_nis/nis-alias.c: Likewise. + * nis/nss_nis/nis-ethers.c: Likewise. + * nis/nss_nis/nis-grp.c: Likewise. + * nis/nss_nis/nis-hosts.c: Likewise. + * nis/nss_nis/nis-netgrp.c: Likewise. + * nis/nss_nis/nis-publickey.c: Likewise. + * nis/nss_nis/nis-service.c: Likewise. Also use services.byservicename + Map if available, optimize query if name/port and protocol is known. + 1999-12-12 Ulrich Drepper <drepper@cygnus.com> * locale/programs/ld-collate.c (collate_read): Make symbolic diff --git a/bits/mathdef.h b/bits/mathdef.h index d306e54366..0c30b01f52 100644 --- a/bits/mathdef.h +++ b/bits/mathdef.h @@ -20,7 +20,9 @@ # error "Never use <bits/mathdef.h> directly; include <math.h> instead" #endif -#if defined __USE_ISOC99 && defined _MATH_H +#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF +# define _MATH_H_MATHDEF 1 + /* Normally, there is no long double type and the `float' and `double' expressions are evaluated as `double'. */ typedef double float_t; /* `float' expressions are evaluated as diff --git a/elf/ldconfig.c b/elf/ldconfig.c index 6c2bcb2d4f..98a4817202 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c @@ -97,6 +97,9 @@ static int opt_only_cline = 0; /* Path to root for chroot. */ static char *opt_chroot; +/* Manually link given shared libraries. */ +static int opt_manual_link = 0; + /* Cache file to use. */ static const char *cache_file; @@ -119,6 +122,7 @@ static const struct argp_option options[] = { NULL, 'C', "CACHE", 0, N_("Use CACHE as cache file"), 0}, { NULL, 'f', "CONF", 0, N_("Use CONF as configuration file"), 0}, { NULL, 'n', NULL, 0, N_("Only process directories specified on the command line. Don't build cache."), 0}, + { NULL, 'l', NULL, 0, N_("Manually link individual libraries."), 0}, { NULL, 0, NULL, 0, NULL, 0 } }; @@ -148,6 +152,9 @@ parse_opt (int key, char *arg, struct argp_state *state) case 'f': config_file = arg; break; + case 'l': + opt_manual_link = 1; + break; case 'N': opt_build_cache = 0; break; @@ -323,6 +330,75 @@ create_links (const char *path, const char *libname, const char *soname) fputs ("\n", stdout); } +/* Manually link the given library. */ +static void +manual_link (char *library) +{ + char *path; + char *libname; + char *soname; + struct stat stat_buf; + int flag; + + /* Prepare arguments for create_links call. Split library name in + directory and filename first. Since path is allocated, we've got + to be careful to free at the end. */ + path = xstrdup (library); + libname = strrchr (path, '/'); + + if (libname) + { + /* Successfully split names. Check if path is just "/" to avoid + an empty path. */ + if (libname == path) + { + libname = library + 1; + path = xrealloc (path, 2); + strcpy (path, "/"); + } + else + { + *libname = '\0'; + ++libname; + } + } + else + { + /* There's no path, construct one. */ + libname = library; + path = xrealloc (path, 2); + strcpy (path, "."); + } + + /* Do some sanity checks first. */ + if (lstat (library, &stat_buf)) + { + error (0, errno, _("Can't lstat %s"), library); + free (path); + return; + } + /* We don't want links here! */ + else if (!S_ISREG (stat_buf.st_mode)) + { + error (0, 0, _("Ignored file %s since it is not a regular file."), + library); + free (path); + return; + } + libname = basename (library); + if (process_file (library, libname, &flag, &soname, 0)) + { + error (0, 0, _("No link created since soname could not be found for %s"), + library); + free (path); + return; + } + create_links (path, libname, soname); + free (soname); + free (path); +} + + /* Read a whole directory and search for libraries. The purpose is two-fold: - search for libraries which will be added to the cache @@ -595,8 +671,9 @@ main (int argc, char **argv) /* Parse and process arguments. */ argp_parse (&argp, argc, argv, 0, &remaining, NULL); - /* Remaining arguments are additional libraries. */ - if (remaining != argc) + /* Remaining arguments are additional libraries if opt_manual_link + is not set. */ + if (remaining != argc && !opt_manual_link) { int i; for (i = remaining; i < argc; ++i) @@ -626,6 +703,18 @@ m |
