summary refs log tree commit diff
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.gz
glibc-96bda0ea44eb94e0284e91f20ba9733ae63f26a5.tar.xz
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);
-}