summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorthorpej <thorpej@NetBSD.org>2001-12-14 21:25:22 +0000
committerthorpej <thorpej@NetBSD.org>2001-12-14 21:25:22 +0000
commit6d9f5579ab59469b5a5a36fa2bfe075950b09443 (patch)
tree74251d5876a53a51117e8ce2befc002fe023d6a9 /libexec
parentc7e9af3ef058dfd3ab4da5a84f2c57ebf4df96d1 (diff)
Garbage-collect the OLD_GOT stuff.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/ld.elf_so/README6
-rw-r--r--libexec/ld.elf_so/arch/alpha/rtld_start.S6
-rw-r--r--libexec/ld.elf_so/rtld.c12
3 files changed, 4 insertions, 20 deletions
diff --git a/libexec/ld.elf_so/README b/libexec/ld.elf_so/README
index 6d366c016ec..7728dc44923 100644
--- a/libexec/ld.elf_so/README
+++ b/libexec/ld.elf_so/README
@@ -1,4 +1,4 @@
-$NetBSD: README,v 1.6 1999/08/20 21:12:47 christos Exp $
+$NetBSD: README,v 1.7 2001/12/14 21:25:22 thorpej Exp $
BUGS/PROBLEMS:
@@ -12,10 +12,6 @@ BUGS/PROBLEMS:
It's a workaround for a linker bug, and will go away when the linker is
fixed.
-* Formerly, _DYNAMIC was _GLOBAL_OFFSET_TABLE_[0], but that isn't true with
- newer snapshots of gas/binutils (at least on the Alpha), which support
- multiple GOTs. That's what the OLD_GOT #ifdefs are about.
-
* The method used to relocate ld.so is shoddy and fragile. Currently it's
something like:
diff --git a/libexec/ld.elf_so/arch/alpha/rtld_start.S b/libexec/ld.elf_so/arch/alpha/rtld_start.S
index 9183b30879f..fa575fe8095 100644
--- a/libexec/ld.elf_so/arch/alpha/rtld_start.S
+++ b/libexec/ld.elf_so/arch/alpha/rtld_start.S
@@ -1,4 +1,4 @@
-/* $NetBSD: rtld_start.S,v 1.7 2001/12/13 22:34:52 thorpej Exp $ */
+/* $NetBSD: rtld_start.S,v 1.8 2001/12/14 21:25:23 thorpej Exp $ */
/*
* Copyright 1996 Matt Thomas <matt@3am-software.com>
@@ -54,11 +54,7 @@ LEAF_NOPROFILE(_rtld_start, 0)
lda t5, _GLOBAL_OFFSET_TABLE_
addq t8, t5, t9 /* add the displacement */
-#if defined(OLD_GOT)
- ldq t4, 0(t9) /* Get the address of dynamic table */
-#else
lda t4, _GOT_END_ /* Get the address of the end of the GOT */
-#endif
addq t8, t4, t10 /* add the displacement */
/*
diff --git a/libexec/ld.elf_so/rtld.c b/libexec/ld.elf_so/rtld.c
index 054bc460bf3..e0a9bd4e25c 100644
--- a/libexec/ld.elf_so/rtld.c
+++ b/libexec/ld.elf_so/rtld.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rtld.c,v 1.46 2001/12/14 21:21:27 thorpej Exp $ */
+/* $NetBSD: rtld.c,v 1.47 2001/12/14 21:25:22 thorpej Exp $ */
/*
* Copyright 1996 John D. Polstra.
@@ -108,12 +108,8 @@ Library_Xform *_rtld_xforms;
char *__progname;
char **environ;
-#ifdef OLD_GOT
-extern Elf_Addr _GLOBAL_OFFSET_TABLE_[];
-#else
extern Elf_Addr _GLOBAL_OFFSET_TABLE_[];
extern Elf_Dyn _DYNAMIC;
-#endif
static void _rtld_call_fini_functions __P((Obj_Entry *));
static void _rtld_call_init_functions __P((Obj_Entry *));
@@ -201,11 +197,7 @@ _rtld_init(mapbase, pagesz)
objself.pltgot = NULL;
-#ifdef OLD_GOT
- objself.dynamic = (Elf_Dyn *) _GLOBAL_OFFSET_TABLE_[0];
-#else
- objself.dynamic = (Elf_Dyn *) & _DYNAMIC;
-#endif
+ objself.dynamic = (Elf_Dyn *) &_DYNAMIC;
#ifdef RTLD_RELOCATE_SELF
/* We have not been relocated yet, so fix the dynamic address */