summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorKurt Miller <kurt@cvs.openbsd.org>2014-12-24 14:04:10 +0000
committerKurt Miller <kurt@cvs.openbsd.org>2014-12-24 14:04:10 +0000
commit247a5c763d36a898360d28b86187cff9fc62a121 (patch)
tree51f69bb6c7713b5b41ec427a58e57dad643a926a /libexec
parentef7e97c0c41d52b29afb0c8535769d358c80e357 (diff)
Expand Elf_Rel relocations to include DT_JMPREL. Inspect DT_PLTREL value
to determine if DT_JMPREL relocations are REL or RELA and conditionally perform DT_JMPREL in either REL or RELA as needed (idea from kettenis@). Remove unneeded i386 RELA implementation. i386 static pie working now. okay kettenis@
Diffstat (limited to 'libexec')
-rw-r--r--libexec/ld.so/i386/archdep.h13
1 files changed, 1 insertions, 12 deletions
diff --git a/libexec/ld.so/i386/archdep.h b/libexec/ld.so/i386/archdep.h
index bfa203fee87..a08d058dc6c 100644
--- a/libexec/ld.so/i386/archdep.h
+++ b/libexec/ld.so/i386/archdep.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: archdep.h,v 1.12 2014/12/22 21:58:25 kurt Exp $ */
+/* $OpenBSD: archdep.h,v 1.13 2014/12/24 14:04:09 kurt Exp $ */
/*
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
@@ -79,17 +79,6 @@ static inline void
RELOC_RELA(Elf32_Rela *r, const Elf32_Sym *s, Elf32_Addr *p, unsigned long v,
Elf_Addr *pltgot)
{
- /* does i386 use RELA type relocations? - XXX */
-
- if (ELF32_R_TYPE(r->r_info) == RELOC_RELATIVE) {
- *p = v + r->r_addend;
- } else if (ELF32_R_TYPE(r->r_info) == RELOC_GLOB_DAT) {
- *p = v + s->st_value + r->r_addend;
- } else if (ELF32_R_TYPE(r->r_info) == RELOC_NONE) {
- } else {
- _dl_printf("unknown bootstrap relocation\n");
- _dl_exit(6);
- }
}
#define RELOC_GOT(obj, offs)