aboutsummaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-07-02 19:35:40 +0000
committerRoland McGrath <roland@gnu.org>1996-07-02 19:35:40 +0000
commit96bda0ea44eb94e0284e91f20ba9733ae63f26a5 (patch)
treed588be55a83c556ac5e617a680fbf53186c9bbb1 /elf
parentffee131630368bc2600747346d0b03025cbca6ee (diff)
downloadglibc-96bda0ea44eb94e0284e91f20ba9733ae63f26a5.tar
glibc-96bda0ea44eb94e0284e91f20ba9733ae63f26a5.tar.gz
glibc-96bda0ea44eb94e0284e91f20ba9733ae63f26a5.tar.bz2
glibc-96bda0ea44eb94e0284e91f20ba9733ae63f26a5.zip
* nss/nss_files/files-network.c: Pass empty for new DB_LOOKUP args.
(DATABASE): Define this instead of DATAFILE. * nss/nss_files/files-hosts.c: Likewise. (hostbyname): Use LOOKUP_NAME macro. * nss/nss_db/db-XXX.c: New file. * nss/Makefile (services): Add db. (libnss_db-inhibit-o): New variable. (libnss_db-routines): New variable. (distribute): Append db-XXX.c. (libnss_db.so): Depend on libdb.so and libnss_files.so. ($(libnss_db-routines:%=$(objpfx)%.c)): New static pattern rule. * nss/nss_files/files-XXX.c (DB_LOOKUP): Add KEYSIZE and KEYPATTERN args, ignored. (DATAFILE): New macro. * nss/nss_files/files-parse.c (GENERIC): If undefined, define to "files-XXX.c". * nss/nss_files/files-rpc.c: Include GENERIC instead of "files-XXX.c". Pass db key args to DB_LOOKUP. (DATAFILE): Macro removed. (DATABASE): New macro replaces it, lacks "/etc/" prefix. * nss/nss_files/files-service.c: Likewise. * nss/nss_files/files-pwd.c: Likewise. * nss/nss_files/files-proto.c: Likewise. * nss/nss_files/files-grp.c: Likewise. * nss/nss_files/files-ethers.c: Likewise. * elf/linux-compat.c: File removed. * elf/Makefile (distribute): Remove linux-compat.c. (ld-linux.so.1): Remove target and associated variables. * sunrpc/xdr.c: Remove malloc decl. * sunrpc/portmap.c: Likewise. * sunrpc/svc_tcp.c (abort): Don't declare. Instead define as macro casting abort to fn returning bool_t. * nss/nss_files/files-parse.c [EXTERN_PARSER]: Do an extern decl of the parser function. [EXTERN_PARSER] (LINE_PARSER): Define to empty. * nss/nss_files/files-pwd.c (EXTERN_PARSER): Define it. * nss/nss_files/files-grp.c: Likewise. * Makeconfig (BUILD_CC): If undefined, define to $(CC). * sunrpc/rpc/types.h: Include stdlib.h instead of declaring malloc. * Makeconfig (built-program-cmd): Use $(rtld-installed-name) in place of ld.so so lookups for that soname find it. * nss/Makefile (libnss_dns.so): Depend on libresolv.so. (resobjdir, LDLIBS-nss_dns.so): Variables removed.
Diffstat (limited to 'elf')
-rw-r--r--elf/Makefile20
-rw-r--r--elf/linux-compat.c41
2 files changed, 5 insertions, 56 deletions
diff --git a/elf/Makefile b/elf/Makefile
index 712fd99a57..524765ba30 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -34,7 +34,7 @@ elide-routines.so = $(dl-routines) dl-support
# interpreter and operating independent of libc.
rtld-routines := rtld $(dl-routines) dl-sysdep dl-minimal
distribute = $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \
- soinit.c sofini.c ldd.sh.in linux-compat.c
+ soinit.c sofini.c ldd.sh.in
extra-libs = libdl
libdl-routines := dlopen dlclose dlsym dlerror dladdr
@@ -50,13 +50,6 @@ generated = librtld.so dl-allobjs.so
install-others = $(slibdir)/$(rtld-installed-name)
install-bin = ldd
-ifneq (,$(filter linux% linux,$(config-os)))
-extra-objs += linux-compat.so
-install-others += $(slibdir)/ld-linux.so.1
-lib-noranlib: $(objpfx)ld-linux.so.1
-endif
-endif
-
include ../Rules
@@ -83,8 +76,6 @@ $(objpfx)librtld.so: $(objpfx)dl-allobjs.so \
$(objpfx)ld.so: $(objpfx)librtld.so
$(rtld-link) -Wl,-soname=$(rtld-installed-name)
-$(objpfx)ld-linux.so.1: $(objpfx)librtld.so
- $(rtld-link) -Wl,-soname=ld-linux.so.1
define rtld-link
$(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
@@ -102,19 +93,18 @@ $(objpfx)$(rtld-installed-name): $(objpfx)ld.so
ln -s $(<F) $@
endif
-# The Linux-compatible dynamic linker shared object is just the same
-# with one object file of compatibility initialization code added.
-$(objpfx)ld-linux.so.1: $(objpfx)linux-compat.so
-
# Specify the dependencies of libdl.so; its commands come from the generic
# rule to build a shared library.
$(objpfx)libdl.so: $(objpfx)libdl_pic.a $(common-objpfx)libc.so $(objpfx)ld.so
$(slibdir)/$(rtld-installed-name): $(objpfx)ld.so; $(do-install-program)
-$(slibdir)/ld-linux.so.1: $(objpfx)ld-linux.so.1; $(do-install-program)
$(objpfx)ldd: ldd.sh.in Makefile
sed 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' < $< > $@.new
chmod 555 $@.new
mv -f $@.new $@
+
+# muwahaha
+
+$(objpfx)libdl.so: $(objpfx)eval.so
diff --git a/elf/linux-compat.c b/elf/linux-compat.c
deleted file mode 100644
index b42c78a3f7..0000000000
--- a/elf/linux-compat.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Initializer for Linux-compatible dynamic linker `/lib/ld-linux.so.1'.
-Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
-
-#include <link.h>
-#include <stdlib.h>
-
-/* This function will be the DT_INIT initializer for the ld-linux.so.1
- shared object. This is called from rtld.c before shlib initializers.
-
- The old Linux ELF startup code expects the dynamic linker to magically
- call atexit to arrange for shared object finalizers to run. (The
- ABI-compliant startup code does this itself.) We build a compatible
- version of the dynamic linker to install as /lib/ld-linux.so.1, the
- name old Linux ELF binaries use. */
-
-void
-_init (void)
-{
- const ElfW(Sym) *ref = NULL;
- struct link_map *scope[2] = { _dl_loaded, NULL };
- ElfW(Addr) loadbase = _dl_lookup_symbol ("atexit", &ref, scope,
- "<ld-linux.so.1 initialization>",
- 0, 1);
- (*(__typeof (atexit) *) (loadbase + ref->st_value)) (&_dl_fini);
-}