From 247a5c763d36a898360d28b86187cff9fc62a121 Mon Sep 17 00:00:00 2001 From: Kurt Miller Date: Wed, 24 Dec 2014 14:04:10 +0000 Subject: 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@ --- libexec/ld.so/i386/archdep.h | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to 'libexec') 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) -- cgit v1.2.3