about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
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);
-}