aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-10-21 01:26:31 +0000
committerUlrich Drepper <drepper@redhat.com>1996-10-21 01:26:31 +0000
commit46ec036de624bf22daf2ad71780de8671ffa7565 (patch)
tree6dc28ac3e18b62999d9d1ad34792904282992d3c
parent8145a97443a708443ed2c39e80e681a5c5354e92 (diff)
downloadglibc-46ec036de624bf22daf2ad71780de8671ffa7565.tar.xz
glibc-46ec036de624bf22daf2ad71780de8671ffa7565.zip
update from main archive 961020cvs/libc-961021
Mon Oct 21 01:32:36 1996 Ulrich Drepper <drepper@cygnus.com> * elf/rtld.c (dl_main): Move initialization of `_dl_starting_up' to beginning of function. So libc functions can use this flag. * sysdeps/generic/_strerror.c: Don't use dgettext for message translation while `_dl_starting_up' is nonzero. * elf/dl-deps.c (_dl_map_object_deps): Add new parameter TRACE_MODE. Pass parameter value to _dl_map_object. * elf/dl-load (_dl_map_object): Add new parameter TRACE_MODE. If TRACE_MODE is nonzero don#t signal error when shared lib is not found. Instead create fake entry for link map. * dl-open.c (dl-open): Pass 0 for new argument to _dl_map_object. * dl-runtime.c (_dl_object_relocation_scope): Pass 0 for new argument to _dl_map_object_deps. * elf/link.h: Add new parameter TRACE_MODE for prototypes of _dl_map_object and _dl_map_object_deps. * elf/rtld.c (dl_main): Pass 0 for new argument to _dl_map_object and _dl_map_object_deps. When mode == trace test for l_opencount == 0 before printing link information since this means the lib is not found. Sun Oct 20 22:19:58 1996 Ulrich Drepper <drepper@cygnus.com> * rpm/template: Add INSTALL to %doc line to follow copyright restrictions which demand the distribution of the copyright messages in INSTALL even for binary distributions. * features.h: Rename to... * features.h.in: ...this. Change value of __GNU_LIBRARY__ to 2 (for major version numberof package) and add __GNU_LIBRARY_MINOR__ and __GNU_LIBRARY_INTERFACE__. * Makefile ($(objpfx)features.h): New rule to generate features.h from template features.h.in. * sysdeps/unix/sysv/linux/getsysstats.c: Include <paths.h>. Sun Oct 20 00:00:13 1996 Richard Henderson <rth@tamu.edu> * locale/programs/linereader.c (lr_open): Cast away const before free. (lr_close): Likewise. * misc/mntent.h: Move _PATH_MNTTAB & _PATH_MOUNTED to paths.h. * misc/paths.h: Move to ... * sysdeps/generic/paths.h: ... here. * paths.h: Remove. * sysdeps/unix/sysv/linux/paths.h: New file. Correct _PATH_STDPATH, _PATH_MAILDIR, _PATH_MOUNTED, _PATH_UNIX to comply with the fsstd. * nss/nss_db/db-netgrp.h: Include <string.h>. * stdio-common/psignal.c: De-ansidecl-ify. Allow NULL entries in _sys_siglist, which result in the "Unknown signal" message. * string/strsignal.c: Likewise. * sysdeps/generic/Makefile [stdio-common]: If $(inhibit-siglist), don't auto-generate siglist.c. * sysdeps/unix/sysv/linux/Makefile [stdio-common]: Set inhibit-siglist. * sysdeps/unix/sysv/linux/siglist.c: New file. Not needing to autogenerate makes bootstrapping and cross-compiling much easier. * sysdeps/unix/sysv/linux/siglist.h: New file. * stdlib/longlong.h: Prototype __udiv_qrnnd. * sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_headers): Remove sys/io.h. It is already added in .../linux/Makefile. * sysdeps/unix/sysv/linux/alpha/sigaction.h: New file. * sysdeps/unix/sysv/linux/alpha/signum.h: New file. * sysdeps/unix/sysv/linux/alpha/statbuf.h: New file. Sun Oct 20 17:17:12 1996 Ulrich Drepper <drepper@cygnus.com> Add implementation of POSIX.1g function getaddrinfo. * posix/Makefile (routines): Add getaddrinfo. * sysdeps/posix/getaddrinfo.c.: New file. Add implementation by Craig Metz. * sysdeps/stub/getaddrinfo.c: New file. Stub implementation. * resolv/netdb.h [__USE_POSIX]: Add getaddrinfo prototypes and related constants and structures. Sun Oct 20 13:02:34 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/stub/lockfile.c: Rename functions to __internal_*. Make all old names weak alises so that they can be replaced by libpthread. * stdio-common/vfprintf.c: Only declare __flockfile and __funlockfile for !USE_IN_LIBIO. [USE_IN_LIBIO]: Call _IO_flockfile and _IO_funlockfile instead of __flockfile and __funlockfile. Reported by NIIBE Yutaka. * crypt/md5.c: Change form of copyright message according to GNITS rules. Add warning for requirement on RESBUF parameter for `md5_finish_ctx' and `md5_read_ctx' function. * crypt/md5.h: Likewise. * grp/testgrp.c: Don't use perror for error cases since getgr* and getpw* functions do not return usable error codes. Sun Oct 19 23:05:32 1996 Jim Meyering <meyering@asic.sc.ti.com> * crypt/md5.c (md5_process_bytes): Used casting for pointer arithmetic. Sun Oct 20 03:53:23 1996 Ulrich Drepper <drepper@cygnus.com> * sunrpc/Makefile (others): Remove portmap here, too.
-rw-r--r--ChangeLog111
-rw-r--r--INSTALL60
-rw-r--r--Makefile19
-rw-r--r--elf/dl-deps.c5
-rw-r--r--elf/dl-load.c24
-rw-r--r--elf/dl-open.c4
-rw-r--r--elf/dl-runtime.c2
-rw-r--r--elf/link.h5
-rw-r--r--elf/rtld.c41
-rw-r--r--grp/testgrp.c10
-rw-r--r--locale/programs/linereader.c4
-rw-r--r--misc/mntent.h2
-rw-r--r--nss/nss_db/db-netgrp.c1
-rw-r--r--paths.h1
-rw-r--r--posix/Makefile4
-rw-r--r--resolv/netdb.h44
-rw-r--r--rpm/template2
-rw-r--r--stdio-common/psignal.c13
-rw-r--r--stdio-common/vfprintf.c13
-rw-r--r--stdlib/longlong.h4
-rw-r--r--string/stratcliff.c152
-rw-r--r--string/strsignal.c13
-rw-r--r--sunrpc/Makefile2
-rw-r--r--sysdeps/generic/Makefile6
-rw-r--r--sysdeps/generic/_strerror.c10
-rw-r--r--sysdeps/generic/paths.h (renamed from misc/paths.h)2
-rw-r--r--sysdeps/posix/getaddrinfo.c487
-rw-r--r--sysdeps/stub/getaddrinfo.c38
-rw-r--r--sysdeps/stub/lockfile.c24
-rw-r--r--sysdeps/unix/sysv/linux/Makefile5
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sigaction.h51
-rw-r--r--sysdeps/unix/sysv/linux/alpha/signum.h69
-rw-r--r--sysdeps/unix/sysv/linux/alpha/statbuf.h49
-rw-r--r--sysdeps/unix/sysv/linux/getsysstats.c1
-rw-r--r--sysdeps/unix/sysv/linux/paths.h71
-rw-r--r--sysdeps/unix/sysv/linux/siglist.c19
-rw-r--r--sysdeps/unix/sysv/linux/siglist.h47
38 files changed, 1313 insertions, 104 deletions
diff --git a/ChangeLog b/ChangeLog
index fe304de5bd..4e2212a2e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,114 @@
+Mon Oct 21 01:32:36 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/rtld.c (dl_main): Move initialization of `_dl_starting_up'
+ to beginning of function. So libc functions can use this flag.
+ * sysdeps/generic/_strerror.c: Don't use dgettext for message
+ translation while `_dl_starting_up' is nonzero.
+
+ * elf/dl-deps.c (_dl_map_object_deps): Add new parameter
+ TRACE_MODE.
+ Pass parameter value to _dl_map_object.
+ * elf/dl-load (_dl_map_object): Add new parameter TRACE_MODE.
+ If TRACE_MODE is nonzero don#t signal error when shared lib
+ is not found. Instead create fake entry for link map.
+ * dl-open.c (dl-open): Pass 0 for new argument to _dl_map_object.
+ * dl-runtime.c (_dl_object_relocation_scope): Pass 0 for new
+ argument to _dl_map_object_deps.
+ * elf/link.h: Add new parameter TRACE_MODE for prototypes of
+ _dl_map_object and _dl_map_object_deps.
+ * elf/rtld.c (dl_main): Pass 0 for new argument to _dl_map_object
+ and _dl_map_object_deps.
+ When mode == trace test for l_opencount == 0 before printing
+ link information since this means the lib is not found.
+
+Sun Oct 20 22:19:58 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * rpm/template: Add INSTALL to %doc line to follow copyright
+ restrictions which demand the distribution of the copyright
+ messages in INSTALL even for binary distributions.
+
+ * features.h: Rename to...
+ * features.h.in: ...this. Change value of __GNU_LIBRARY__ to 2
+ (for major version numberof package) and add __GNU_LIBRARY_MINOR__
+ and __GNU_LIBRARY_INTERFACE__.
+ * Makefile ($(objpfx)features.h): New rule to generate features.h
+ from template features.h.in.
+
+ * sysdeps/unix/sysv/linux/getsysstats.c: Include <paths.h>.
+
+Sun Oct 20 00:00:13 1996 Richard Henderson <rth@tamu.edu>
+
+ * locale/programs/linereader.c (lr_open): Cast away const before free.
+ (lr_close): Likewise.
+
+ * misc/mntent.h: Move _PATH_MNTTAB & _PATH_MOUNTED to paths.h.
+ * misc/paths.h: Move to ...
+ * sysdeps/generic/paths.h: ... here.
+ * paths.h: Remove.
+ * sysdeps/unix/sysv/linux/paths.h: New file. Correct _PATH_STDPATH,
+ _PATH_MAILDIR, _PATH_MOUNTED, _PATH_UNIX to comply with the fsstd.
+
+ * nss/nss_db/db-netgrp.h: Include <string.h>.
+
+ * stdio-common/psignal.c: De-ansidecl-ify. Allow NULL entries in
+ _sys_siglist, which result in the "Unknown signal" message.
+ * string/strsignal.c: Likewise.
+ * sysdeps/generic/Makefile [stdio-common]: If $(inhibit-siglist),
+ don't auto-generate siglist.c.
+ * sysdeps/unix/sysv/linux/Makefile [stdio-common]: Set inhibit-siglist.
+ * sysdeps/unix/sysv/linux/siglist.c: New file. Not needing to
+ autogenerate makes bootstrapping and cross-compiling much easier.
+ * sysdeps/unix/sysv/linux/siglist.h: New file.
+
+ * stdlib/longlong.h: Prototype __udiv_qrnnd.
+
+ * sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_headers): Remove
+ sys/io.h. It is already added in .../linux/Makefile.
+
+ * sysdeps/unix/sysv/linux/alpha/sigaction.h: New file.
+ * sysdeps/unix/sysv/linux/alpha/signum.h: New file.
+ * sysdeps/unix/sysv/linux/alpha/statbuf.h: New file.
+
+Sun Oct 20 17:17:12 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ Add implementation of POSIX.1g function getaddrinfo.
+ * posix/Makefile (routines): Add getaddrinfo.
+ * sysdeps/posix/getaddrinfo.c.: New file. Add implementation by
+ Craig Metz.
+ * sysdeps/stub/getaddrinfo.c: New file. Stub implementation.
+ * resolv/netdb.h [__USE_POSIX]: Add getaddrinfo prototypes and
+ related constants and structures.
+
+Sun Oct 20 13:02:34 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/stub/lockfile.c: Rename functions to __internal_*.
+ Make all old names weak alises so that they can be replaced
+ by libpthread.
+
+ * stdio-common/vfprintf.c: Only declare __flockfile and __funlockfile
+ for !USE_IN_LIBIO.
+ [USE_IN_LIBIO]: Call _IO_flockfile and _IO_funlockfile instead of
+ __flockfile and __funlockfile.
+ Reported by NIIBE Yutaka.
+
+ * crypt/md5.c: Change form of copyright message according to GNITS
+ rules.
+ Add warning for requirement on RESBUF parameter for `md5_finish_ctx'
+ and `md5_read_ctx' function.
+ * crypt/md5.h: Likewise.
+
+ * grp/testgrp.c: Don't use perror for error cases since getgr* and
+ getpw* functions do not return usable error codes.
+
+Sun Oct 19 23:05:32 1996 Jim Meyering <meyering@asic.sc.ti.com>
+
+ * crypt/md5.c (md5_process_bytes): Used casting for pointer
+ arithmetic.
+
+Sun Oct 20 03:53:23 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * sunrpc/Makefile (others): Remove portmap here, too.
+
Sat Oct 19 17:42:24 1996 Ulrich Drepper <drepper@cygnus.com>
* intl/locale.alias: Language for entry `czech' is `cs'.
diff --git a/INSTALL b/INSTALL
index 242aaa6767..e82b645b41 100644
--- a/INSTALL
+++ b/INSTALL
@@ -773,9 +773,10 @@ parts of the library were contributed or worked on by other people.
platforms was written by Per Bothner and modified by Ulrich
Drepper.
- * The Internet-related code (most of the `inet' subdirectory) and
- several other miscellaneous functions and header files have been
- included from 4.4 BSD with little or no modification.
+ * Some of the Internet-related code (most of the `inet'
+ subdirectory) and several other miscellaneous functions and
+ header files have been included from 4.4 BSD with little or no
+ modification.
All code incorporated from 4.4 BSD is under the following
copyright:
@@ -916,3 +917,56 @@ parts of the library were contributed or worked on by other people.
or `Software.Distribution@CS.CMU.EDU' any improvements or
extensions that they make and grant Carnegie Mellon the
rights to redistribute these changes.
+
+ * The `getaddrinfo' function is written by Craig Metz and it has the
+ following copyright:
+
+ The Inner Net License, Version 2.00
+ ===================================
+
+ The author(s) grant permission for redistribution and use in source and
+ binary forms, with or without modification, of the software
+ and documentation provided that the following conditions are met:
+
+ 0. If you receive a version of the software that is
+ specifically labelled as not being for redistribution
+ (check the version message and/or README), you are not
+ permitted to redistribute that version of the software in
+ any way or form.
+ 1. All terms of the all other applicable copyrights and
+ licenses must be followed.
+ 2. Redistributions of source code must retain the authors'
+ copyright notice(s), this list of conditions, and the
+ following disclaimer.
+ 3. Redistributions in binary form must reproduce the authors'
+ copyright notice(s), this list of conditions, and the
+ following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+ 4. All advertising materials mentioning features or use of
+ this software must display the following acknowledgement
+ with the name(s) of the authors as specified in the
+ copyright notice(s) substituted where indicated:
+
+ This product includes software developed by <name(s)>, The Inner
+ Net, and other contributors.
+
+ 5. Neither the name(s) of the author(s) nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+ SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ OF SUCH DAMAGE.
+
+ If these license terms cause you a real problem, contact the author.
diff --git a/Makefile b/Makefile
index 65e54a18b6..29591284bd 100644
--- a/Makefile
+++ b/Makefile
@@ -84,7 +84,7 @@ subdirs := $(filter mach,$(subdirs)) $(filter hurd,$(subdirs)) \
headers := errno.h sys/errno.h errnos.h limits.h values.h \
features.h gnu-versions.h libc-lock.h
aux = sysdep $(libc-init) version
-before-compile = $(objpfx)version-info.h
+before-compile = $(objpfx)version-info.h $(objpfx)features.h
echo-headers: subdir_echo-headers
@@ -151,6 +151,23 @@ $(objpfx)version-info.h: $(+sysdir_pfx)config.make $(all-Banner-files)
version.c-objects := $(addprefix $(objpfx)version,$(object-suffixes))
$(version.c-objects): $(objpfx)version-info.h
+$(objpfx)features.h: features.h.in Makefile $(common-objpfx)soversions.mk
+ nr="$(libc.so-version)"; \
+ if test -n $$nr; then \
+ nr=`echo $$nr | sed 's/^[.]//'`; \
+ tmpfile=$${TMPDIR:-/tmp}/sedtmp.$$$$; \
+ rm -f $$tmpfile; \
+ (echo '/^INTERFACENUMBER/ { i\'; \
+ echo '/* Interface number of the shared library. */\'; \
+ echo "#define __GNU_LIBRARY_INTERFACE__ $$nr"; \
+ echo ' s/^INTERFACENUMBER//'; \
+ echo '}') > $$tmpfile; \
+ sed -f $$tmpfile < $< > $@; \
+ rm -f $$tmpfile; \
+ else \
+ sed -e '/^INTERFACENUMBER/d' < $< > $@; \
+ fi
+
# Makerules creates a file `stub-$(subdir)' for each subdirectory, which
# contains `#define __stub_FUNCTION' for each function which is a stub.
# Here we paste all of these together into <stubs.h>.
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index 8521c50d25..c310a5b82d 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -24,7 +24,8 @@ Cambridge, MA 02139, USA. */
void
_dl_map_object_deps (struct link_map *map,
- struct link_map **preloads, unsigned int npreloads)
+ struct link_map **preloads, unsigned int npreloads,
+ int trace_mode)
{
struct list
{
@@ -75,7 +76,7 @@ _dl_map_object_deps (struct link_map *map,
struct link_map *dep
= _dl_map_object (l, strtab + d->d_un.d_val,
l->l_type == lt_executable ? lt_library :
- l->l_type);
+ l->l_type, trace_mode);
if (dep->l_reserved)
/* This object is already in the search list we are
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 9dfc961a2f..1a86cccb89 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -477,7 +477,8 @@ open_path (const char *name, size_t namelen,
/* Map in the shared object file NAME. */
struct link_map *
-_dl_map_object (struct link_map *loader, const char *name, int type)
+_dl_map_object (struct link_map *loader, const char *name, int type,
+ int trace_mode)
{
int fd;
char *realname;
@@ -582,7 +583,26 @@ _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");
+ {
+ if (trace_mode)
+ {
+ /* We haven't found an appropriate library. But since we
+ are only interested in the list of libraries this isn't
+ so severe. Fake an entry with all the information we
+ have (in fact only the name). */
+
+ /* Enter the new object in the list of loaded objects. */
+ if ((name_copy = local_strdup (name)) == NULL
+ || (l = _dl_new_object (name_copy, name, type)) == NULL)
+ _dl_signal_error (ENOMEM, name,
+ "cannot create shared object descriptor");
+ /* We use an opencount of 0 as a sign for the faked entry. */
+ l->l_opencount = 0;
+ l->l_reserved = 0;
+ }
+ else
+ _dl_signal_error (errno, name, "cannot open shared object file");
+ }
return _dl_map_object_from_fd (name_copy, fd, realname, loader, type);
}
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 25f2ba6fab..8f4f9f5015 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -46,13 +46,13 @@ _dl_open (const char *file, int mode)
struct r_debug *r;
/* Load the named object. */
- new = _dl_map_object (NULL, file, lt_loaded);
+ new = _dl_map_object (NULL, file, lt_loaded, 0);
if (new->l_searchlist)
/* It was already open. */
return new;<