diff options
-rw-r--r-- | libexec/ld.so/aarch64/archdep.h | 10 | ||||
-rw-r--r-- | libexec/ld.so/aarch64/rtld_machine.c | 10 | ||||
-rw-r--r-- | libexec/ld.so/alpha/archdep.h | 16 | ||||
-rw-r--r-- | libexec/ld.so/alpha/rtld_machine.c | 42 | ||||
-rw-r--r-- | libexec/ld.so/amd64/archdep.h | 10 | ||||
-rw-r--r-- | libexec/ld.so/amd64/rtld_machine.c | 16 | ||||
-rw-r--r-- | libexec/ld.so/arm/rtld_machine.c | 14 | ||||
-rw-r--r-- | libexec/ld.so/hppa/rtld_machine.c | 28 | ||||
-rw-r--r-- | libexec/ld.so/i386/archdep.h | 10 | ||||
-rw-r--r-- | libexec/ld.so/i386/rtld_machine.c | 22 | ||||
-rw-r--r-- | libexec/ld.so/m88k/SYS.h | 4 | ||||
-rw-r--r-- | libexec/ld.so/m88k/archdep.h | 12 | ||||
-rw-r--r-- | libexec/ld.so/m88k/rtld_machine.c | 58 | ||||
-rw-r--r-- | libexec/ld.so/mips64/archdep.h | 16 | ||||
-rw-r--r-- | libexec/ld.so/mips64/rtld_machine.c | 64 | ||||
-rw-r--r-- | libexec/ld.so/powerpc/archdep.h | 16 | ||||
-rw-r--r-- | libexec/ld.so/powerpc/rtld_machine.c | 96 | ||||
-rw-r--r-- | libexec/ld.so/sh/archdep.h | 4 | ||||
-rw-r--r-- | libexec/ld.so/sh/rtld_machine.c | 14 | ||||
-rw-r--r-- | libexec/ld.so/sparc64/rtld_machine.c | 42 |
20 files changed, 252 insertions, 252 deletions
diff --git a/libexec/ld.so/aarch64/archdep.h b/libexec/ld.so/aarch64/archdep.h index 0bf77612dd4..a34e6d6d18f 100644 --- a/libexec/ld.so/aarch64/archdep.h +++ b/libexec/ld.so/aarch64/archdep.h @@ -1,4 +1,4 @@ -/* $OpenBSD: archdep.h,v 1.5 2017/10/27 16:47:08 mpi Exp $ */ +/* $OpenBSD: archdep.h,v 1.6 2019/10/23 19:55:08 guenther Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -40,13 +40,13 @@ static inline void -RELOC_DYN(Elf64_Rela *r, const Elf64_Sym *s, Elf64_Addr *p, unsigned long v) +RELOC_DYN(Elf_RelA *r, const Elf_Sym *s, Elf_Addr *p, unsigned long v) { - if (ELF64_R_TYPE(r->r_info) == R_AARCH64_RELATIVE) { + if (ELF_R_TYPE(r->r_info) == R_AARCH64_RELATIVE) { *p = v + r->r_addend; - } else if (ELF64_R_TYPE(r->r_info) == R_AARCH64_GLOB_DAT) { + } else if (ELF_R_TYPE(r->r_info) == R_AARCH64_GLOB_DAT) { *p = v + s->st_value + r->r_addend; - } else if (ELF64_R_TYPE(r->r_info) == R_AARCH64_ABS64) { + } else if (ELF_R_TYPE(r->r_info) == R_AARCH64_ABS64) { *p = v + s->st_value + r->r_addend; } else { _dl_exit(6); diff --git a/libexec/ld.so/aarch64/rtld_machine.c b/libexec/ld.so/aarch64/rtld_machine.c index 3429459cb9d..e59bee50517 100644 --- a/libexec/ld.so/aarch64/rtld_machine.c +++ b/libexec/ld.so/aarch64/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.10 2019/10/05 00:08:50 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.11 2019/10/23 19:55:08 guenther Exp $ */ /* * Copyright (c) 2004 Dale Rahn @@ -117,7 +117,7 @@ _dl_md_reloc(elf_object_t *object, int rel, int relsz) rels = (Elf_RelA *)(object->Dyn.info[rel]); if (rels == NULL) - return(0); + return 0; if (relrel > numrel) _dl_die("relcount > numrel: %ld > %ld", relrel, numrel); @@ -243,7 +243,7 @@ resolve_failed: } } - return (fails); + return fails; } /* @@ -260,7 +260,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) Elf_RelA *rel; if (object->Dyn.info[DT_PLTREL] != DT_RELA) - return (0); + return 0; if (object->traced) lazy = 1; @@ -281,7 +281,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) pltgot[2] = (Elf_Addr)_dl_bind_start; } - return (fails); + return fails; } Elf_Addr diff --git a/libexec/ld.so/alpha/archdep.h b/libexec/ld.so/alpha/archdep.h index 02bcc145607..74c7318af73 100644 --- a/libexec/ld.so/alpha/archdep.h +++ b/libexec/ld.so/alpha/archdep.h @@ -1,4 +1,4 @@ -/* $OpenBSD: archdep.h,v 1.22 2018/11/22 21:37:30 guenther Exp $ */ +/* $OpenBSD: archdep.h,v 1.23 2019/10/23 19:55:08 guenther Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -39,18 +39,18 @@ #include "util.h" static inline void -RELOC_DYN(Elf64_Rela *r, const Elf64_Sym *s, Elf64_Addr *p, unsigned long v) +RELOC_DYN(Elf_RelA *r, const Elf_Sym *s, Elf_Addr *p, unsigned long v) { - if (ELF64_R_TYPE(r->r_info) == RELOC_RELATIVE) { + if (ELF_R_TYPE(r->r_info) == RELOC_RELATIVE) { *p += v; - } else if (ELF64_R_TYPE(r->r_info) == RELOC_NONE) { + } else if (ELF_R_TYPE(r->r_info) == RELOC_NONE) { /* nothing to do */ - } else if (ELF64_R_TYPE(r->r_info) == RELOC_JMP_SLOT) { - Elf64_Addr val = v + s->st_value + r->r_addend - - (Elf64_Addr)(p); + } else if (ELF_R_TYPE(r->r_info) == RELOC_JMP_SLOT) { + Elf_Addr val = v + s->st_value + r->r_addend - + (Elf_Addr)(p); *p = val; __asm volatile("imb" : : : "memory"); - } else if (ELF64_R_TYPE(r->r_info) == RELOC_GLOB_DAT) { + } else if (ELF_R_TYPE(r->r_info) == RELOC_GLOB_DAT) { *p = v + s->st_value + r->r_addend; } else { _dl_exit(6); diff --git a/libexec/ld.so/alpha/rtld_machine.c b/libexec/ld.so/alpha/rtld_machine.c index dabff9f7eb8..0e4c93f6bc7 100644 --- a/libexec/ld.so/alpha/rtld_machine.c +++ b/libexec/ld.so/alpha/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.68 2019/10/05 00:08:50 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.69 2019/10/23 19:55:08 guenther Exp $ */ /* * Copyright (c) 1999 Dale Rahn @@ -55,18 +55,18 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) long numrela; long relrel; int fails = 0; - Elf64_Addr loff; - Elf64_Addr prev_value = 0; + Elf_Addr loff; + Elf_Addr prev_value = 0; const Elf_Sym *prev_sym = NULL; - Elf64_Rela *relas; + Elf_RelA *relas; loff = object->obj_base; - numrela = object->Dyn.info[relasz] / sizeof(Elf64_Rela); + numrela = object->Dyn.info[relasz] / sizeof(Elf_RelA); relrel = rel == DT_RELA ? object->relacount : 0; - relas = (Elf64_Rela *)(object->Dyn.info[rel]); + relas = (Elf_RelA *)(object->Dyn.info[rel]); if (relas == NULL) - return(0); + return 0; if (relrel > numrela) _dl_die("relacount > numrel: %ld > %ld", relrel, numrela); @@ -78,7 +78,7 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) for (i = 0; i < relrel; i++, relas++) { Elf_Addr *r_addr; - r_addr = (Elf64_Addr *)(relas->r_offset + loff); + r_addr = (Elf_Addr *)(relas->r_offset + loff); /* Handle unaligned RELATIVE relocs */ if ((((Elf_Addr)r_addr) & 0x7) != 0) { @@ -90,22 +90,22 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) *r_addr += loff; } for (; i < numrela; i++, relas++) { - Elf64_Addr *r_addr; + Elf_Addr *r_addr; struct sym_res sr; - const Elf64_Sym *sym; + const Elf_Sym *sym; const char *symn; - r_addr = (Elf64_Addr *)(relas->r_offset + loff); + r_addr = (Elf_Addr *)(relas->r_offset + loff); - if (ELF64_R_SYM(relas->r_info) == 0xffffffff) + if (ELF_R_SYM(relas->r_info) == 0xffffffff) continue; sym = object->dyn.symtab; - sym += ELF64_R_SYM(relas->r_info); + sym += ELF_R_SYM(relas->r_info); symn = object->dyn.strtab + sym->st_name; - switch (ELF64_R_TYPE(relas->r_info)) { + switch (ELF_R_TYPE(relas->r_info)) { case R_TYPE(REFQUAD): sr = _dl_find_symbol(symn, SYM_SEARCH_ALL|SYM_WARNNOTFOUND|SYM_NOTPLT, @@ -160,7 +160,7 @@ _dl_printf("unaligned RELATIVE: %p type: %d %s 0x%lx -> 0x%lx\n", r_addr, default: _dl_die("%s: unsupported relocation '%s' %lld at %p", object->load_name, symn, - ELF64_R_TYPE(relas->r_info), (void *)r_addr); + ELF_R_TYPE(relas->r_info), (void *)r_addr); } continue; resolve_failed: @@ -169,7 +169,7 @@ resolve_failed: } __asm volatile("imb" : : : "memory"); - return (fails); + return fails; } /* @@ -191,7 +191,7 @@ _dl_bind(elf_object_t *object, int reloff) rela = (Elf_RelA *)(object->Dyn.info[DT_JMPREL] + reloff); sym = object->dyn.symtab; - sym += ELF64_R_SYM(rela->r_info); + sym += ELF_R_SYM(rela->r_info); symn = object->dyn.strtab + sym->st_name; sr = _dl_find_symbol(symn, SYM_SEARCH_ALL|SYM_WARNNOTFOUND|SYM_PLT, @@ -202,7 +202,7 @@ _dl_bind(elf_object_t *object, int reloff) buf.newval = sr.obj->obj_base + sr.sym->st_value + rela->r_addend; if (__predict_false(sr.obj->traced) && _dl_trace_plt(sr.obj, symn)) - return (buf.newval); + return buf.newval; buf.param.kb_addr = (Elf_Addr *)(object->obj_base + rela->r_offset); buf.param.kb_size = sizeof(Elf_Addr); @@ -219,7 +219,7 @@ _dl_bind(elf_object_t *object, int reloff) "r" (arg3) : "$19", "$20", "memory"); } - return (buf.newval); + return buf.newval; } void _dl_bind_start(void) __dso_hidden; /* XXX */ @@ -234,7 +234,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) Elf_Addr *pltgot; if (object->Dyn.info[DT_PLTREL] != DT_RELA) - return (0); + return 0; pltgot = (Elf_Addr *)object->Dyn.info[DT_PLTGOT]; @@ -263,5 +263,5 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) pltgot[1] = (Elf_Addr)object; } - return (fails); + return fails; } diff --git a/libexec/ld.so/amd64/archdep.h b/libexec/ld.so/amd64/archdep.h index 97e13fea065..17713fecf26 100644 --- a/libexec/ld.so/amd64/archdep.h +++ b/libexec/ld.so/amd64/archdep.h @@ -1,4 +1,4 @@ -/* $OpenBSD: archdep.h,v 1.12 2017/10/27 16:47:08 mpi Exp $ */ +/* $OpenBSD: archdep.h,v 1.13 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -40,13 +40,13 @@ static inline void -RELOC_DYN(Elf64_Rela *r, const Elf64_Sym *s, Elf64_Addr *p, unsigned long v) +RELOC_DYN(Elf_RelA *r, const Elf_Sym *s, Elf_Addr *p, unsigned long v) { - if (ELF64_R_TYPE(r->r_info) == R_X86_64_RELATIVE) { + if (ELF_R_TYPE(r->r_info) == R_X86_64_RELATIVE) { *p = v + r->r_addend; - } else if (ELF64_R_TYPE(r->r_info) == R_X86_64_GLOB_DAT) { + } else if (ELF_R_TYPE(r->r_info) == R_X86_64_GLOB_DAT) { *p = v + s->st_value + r->r_addend; - } else if (ELF64_R_TYPE(r->r_info) == R_X86_64_64) { + } else if (ELF_R_TYPE(r->r_info) == R_X86_64_64) { *p = v + s->st_value + r->r_addend; } else { _dl_exit(6); diff --git a/libexec/ld.so/amd64/rtld_machine.c b/libexec/ld.so/amd64/rtld_machine.c index 3b3fa1b88ac..06b6d7c4ef0 100644 --- a/libexec/ld.so/amd64/rtld_machine.c +++ b/libexec/ld.so/amd64/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.34 2019/10/05 00:08:50 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.35 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 2002,2004 Dale Rahn @@ -185,7 +185,7 @@ _dl_md_reloc(elf_object_t *object, int rel, int relsz) relrel = rel == DT_RELA ? object->relacount : 0; rels = (Elf_RelA *)(object->Dyn.info[rel]); if (rels == NULL) - return(0); + return 0; if (relrel > numrel) _dl_die("relacount > numrel: %ld > %ld", relrel, numrel); @@ -296,7 +296,7 @@ resolve_failed: } } - return (fails); + return fails; } void @@ -335,7 +335,7 @@ _dl_bind(elf_object_t *object, int index) buf.newval = sr.obj->obj_base + sr.sym->st_value; if (__predict_false(sr.obj->traced) && _dl_trace_plt(sr.obj, symn)) - return (buf.newval); + return buf.newval; buf.param.kb_addr = (Elf_Word *)(object->obj_base + rel->r_offset); buf.param.kb_size = sizeof(Elf_Addr); @@ -350,7 +350,7 @@ _dl_bind(elf_object_t *object, int index) __asm volatile("syscall" : "+r" (syscall_num), "+r" (arg3) : "r" (arg1), "r" (arg2) : "cc", "rcx", "r11", "memory"); } - return (buf.newval); + return buf.newval; } int @@ -363,10 +363,10 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) Elf_RelA *rel; if (pltgot == NULL) - return (0); /* it is possible to have no PLT/GOT relocations */ + return 0; /* it is possible to have no PLT/GOT relocations */ if (object->Dyn.info[DT_PLTREL] != DT_RELA) - return (0); + return 0; if (object->traced) lazy = 1; @@ -386,5 +386,5 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) } } - return (fails); + return fails; } diff --git a/libexec/ld.so/arm/rtld_machine.c b/libexec/ld.so/arm/rtld_machine.c index 70dc82df19a..86a7a521a3c 100644 --- a/libexec/ld.so/arm/rtld_machine.c +++ b/libexec/ld.so/arm/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.31 2019/10/05 00:08:50 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.32 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 2004 Dale Rahn @@ -178,7 +178,7 @@ _dl_md_reloc(elf_object_t *object, int rel, int relsz) rels = (Elf_Rel *)(object->Dyn.info[rel]); if (rels == NULL) - return(0); + return 0; if (relrel > numrel) _dl_die("relcount > numrel: %ld > %ld", relrel, numrel); @@ -306,7 +306,7 @@ resolve_failed: } } - return (fails); + return fails; } /* @@ -323,7 +323,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) Elf_Rel *rel; if (object->Dyn.info[DT_PLTREL] != DT_REL) - return (0); + return 0; if (object->traced) lazy = 1; @@ -344,7 +344,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) pltgot[2] = (Elf_Addr)_dl_bind_start; } - return (fails); + return fails; } Elf_Addr @@ -374,7 +374,7 @@ _dl_bind(elf_object_t *object, int relidx) buf.newval = sr.obj->obj_base + sr.sym->st_value; if (__predict_false(sr.obj->traced) && _dl_trace_plt(sr.obj, symn)) - return (buf.newval); + return buf.newval; buf.param.kb_addr = (Elf_Addr *)(object->obj_base + rel->r_offset); buf.param.kb_size = sizeof(Elf_Word); @@ -392,5 +392,5 @@ _dl_bind(elf_object_t *object, int relidx) : "cc", "memory"); } - return (buf.newval); + return buf.newval; } diff --git a/libexec/ld.so/hppa/rtld_machine.c b/libexec/ld.so/hppa/rtld_machine.c index 4bc60aef068..7e4645f10a8 100644 --- a/libexec/ld.so/hppa/rtld_machine.c +++ b/libexec/ld.so/hppa/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.40 2019/10/05 20:49:48 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.41 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 2004 Michael Shalayeff @@ -66,15 +66,15 @@ static __inline int _dl_md_plcmp(hppa_plabel_t *a, hppa_plabel_t *b) { if (a->sl < b->sl) - return (-1); + return -1; else if (a->sl > b->sl) - return (1); + return 1; else if (a->pc < b->pc) - return (-1); + return -1; else if (a->pc > b->pc) - return (1); + return 1; else - return (0); + return 0; } SPLAY_PROTOTYPE(_dl_md_plabels, hppa_plabel, node, _dl_md_plcmp); @@ -119,7 +119,7 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) #endif if (rela == NULL) - return (0); + return 0; /* either it's an ld bug or a wacky hpux abi */ if (!object->dyn.pltgot) @@ -287,7 +287,7 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) } } - return (fails); + return fails; } extern void _dl_bind_start(void); @@ -310,7 +310,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) int i, numrela, fails = 0; if (object->dyn.pltrel != DT_RELA) - return (0); + return 0; if (object->traced) lazy = 1; @@ -341,7 +341,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) got = NULL; } if (got == NULL) - return (1); + return 1; /* * Patch up the PLT stub such that it doesn't clobber @@ -391,7 +391,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) if (ELF_R_TYPE(rela->r_info) != RELOC_IPLT) { _dl_printf("unexpected reloc 0x%x\n", ELF_R_TYPE(rela->r_info)); - return (1); + return 1; } if (ELF_R_SYM(rela->r_info)) { @@ -405,7 +405,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) } } - return (fails); + return fails; } /* @@ -441,7 +441,7 @@ _dl_bind(elf_object_t *object, int reloff) buf.newval = ((uint64_t)value << 32) | (Elf_Addr)sr.obj->dyn.pltgot; if (__predict_false(sr.obj->traced) && _dl_trace_plt(sr.obj, symn)) - return (buf.newval); + return buf.newval; buf.param.kb_addr = (Elf_Addr *)(object->obj_base + rela->r_offset); buf.param.kb_size = sizeof(uint64_t); @@ -460,5 +460,5 @@ _dl_bind(elf_object_t *object, int reloff) : "r22", "r28", "r29", "cc", "memory"); } - return (buf.newval); + return buf.newval; } diff --git a/libexec/ld.so/i386/archdep.h b/libexec/ld.so/i386/archdep.h index 0d1892eccfa..066a675c2a2 100644 --- a/libexec/ld.so/i386/archdep.h +++ b/libexec/ld.so/i386/archdep.h @@ -1,4 +1,4 @@ -/* $OpenBSD: archdep.h,v 1.20 2017/10/27 16:47:08 mpi Exp $ */ +/* $OpenBSD: archdep.h,v 1.21 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -40,14 +40,14 @@ static inline void -RELOC_DYN(Elf32_Rel *r, const Elf32_Sym *s, Elf32_Addr *p, unsigned long v) +RELOC_DYN(Elf_Rel *r, const Elf_Sym *s, Elf_Addr *p, unsigned long v) { - if (ELF32_R_TYPE(r->r_info) == RELOC_RELATIVE) { + if (ELF_R_TYPE(r->r_info) == RELOC_RELATIVE) { *p += v; - } else if (ELF32_R_TYPE(r->r_info) == RELOC_GLOB_DAT) { + } else if (ELF_R_TYPE(r->r_info) == RELOC_GLOB_DAT) { *p += v + s->st_value; - } else if (ELF32_R_TYPE(r->r_info) == RELOC_32) { + } else if (ELF_R_TYPE(r->r_info) == RELOC_32) { *p += v + s->st_value; } else { _dl_exit(6); diff --git a/libexec/ld.so/i386/rtld_machine.c b/libexec/ld.so/i386/rtld_machine.c index 0b2fd6e4ccd..8191e6f5fd7 100644 --- a/libexec/ld.so/i386/rtld_machine.c +++ b/libexec/ld.so/i386/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.42 2019/10/05 00:08:50 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.43 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 2002 Dale Rahn @@ -181,11 +181,11 @@ _dl_md_reloc(elf_object_t *object, int rel, int relsz) Elf_Rel *rels; loff = object->obj_base; - numrel = object->Dyn.info[relsz] / sizeof(Elf32_Rel); + numrel = object->Dyn.info[relsz] / sizeof(Elf_Rel); relrel = rel == DT_REL ? object->relcount : 0; - rels = (Elf32_Rel *)(object->Dyn.info[rel]); + rels = (Elf_Rel *)(object->Dyn.info[rel]); if (rels == NULL) - return(0); + return 0; if (relrel > numrel) _dl_die("relcount > numrel: %ld > %ld", relrel, numrel); @@ -302,14 +302,14 @@ resolve_failed: *where &= ~mask; *where |= value; } else { - Elf32_Addr *where32 = (Elf32_Addr *)where; + Elf_Addr *where32 = (Elf_Addr *)where; *where32 &= ~mask; *where32 |= value; } } - return (fails); + return fails; } #if 0 @@ -360,7 +360,7 @@ _dl_bind(elf_object_t *object, int index) buf.newval = sr.obj->obj_base + sr.sym->st_value; if (__predict_false(sr.obj->traced) && _dl_trace_plt(sr.obj, symn)) - return (buf.newval); + return buf.newval; buf.param.kb_addr = (Elf_Word *)(object->obj_base + rel->r_offset); buf.param.kb_size = sizeof(Elf_Addr); @@ -376,7 +376,7 @@ _dl_bind(elf_object_t *object, int index) "m" (cookie) : "edx", "cc", "memory"); } - return (buf.newval); + return buf.newval; } int @@ -389,10 +389,10 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) Elf_Rel *rel; if (pltgot == NULL) - return (0); /* it is possible to have no PLT/GOT relocations */ + return 0; /* it is possible to have no PLT/GOT relocations */ if (object->Dyn.info[DT_PLTREL] != DT_REL) - return (0); + return 0; if (object->traced) lazy = 1; @@ -412,5 +412,5 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) } } - return (fails); + return fails; } diff --git a/libexec/ld.so/m88k/SYS.h b/libexec/ld.so/m88k/SYS.h index 252cdf52173..79892dfa3e8 100644 --- a/libexec/ld.so/m88k/SYS.h +++ b/libexec/ld.so/m88k/SYS.h @@ -1,4 +1,4 @@ -/* $OpenBSD: SYS.h,v 1.3 2019/02/03 02:20:36 guenther Exp $ */ +/* $OpenBSD: SYS.h,v 1.4 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 2013 Miodrag Vallat. @@ -60,6 +60,6 @@ #define DL_SYSCALL(n) \ __ENTRY(_dl_,n); \ __DO_SYSCALL(n); \ - subu %r2, %r0, %r2; /* return (-errno); */ \ + subu %r2, %r0, %r2; /* return -errno; */ \ jmp %r1; \ END(_dl_##n) diff --git a/libexec/ld.so/m88k/archdep.h b/libexec/ld.so/m88k/archdep.h index 8e3910f3be5..2a96593df2b 100644 --- a/libexec/ld.so/m88k/archdep.h +++ b/libexec/ld.so/m88k/archdep.h @@ -1,4 +1,4 @@ -/* $OpenBSD: archdep.h,v 1.7 2018/06/16 16:06:03 guenther Exp $ */ +/* $OpenBSD: archdep.h,v 1.8 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -44,14 +44,14 @@ */ static inline void -RELOC_DYN(Elf32_Rela *r, const Elf32_Sym *s, Elf32_Addr *p, unsigned long v) +RELOC_DYN(Elf_RelA *r, const Elf_Sym *s, Elf_Addr *p, unsigned long v) { - if (ELF32_R_TYPE(r->r_info) == RELOC_BBASED_32) { + if (ELF_R_TYPE(r->r_info) == RELOC_BBASED_32) { *p = v + r->r_addend; - } else if (ELF32_R_TYPE(r->r_info) == RELOC_32) { + } else if (ELF_R_TYPE(r->r_info) == RELOC_32) { *p = v + s->st_value + r->r_addend; - } else if (ELF32_R_TYPE(r->r_info) != RELOC_NONE) { - _dl_exit(ELF32_R_TYPE(r->r_info) + 100); + } else if (ELF_R_TYPE(r->r_info) != RELOC_NONE) { + _dl_exit(ELF_R_TYPE(r->r_info) + 100); } } diff --git a/libexec/ld.so/m88k/rtld_machine.c b/libexec/ld.so/m88k/rtld_machine.c index 44822b272ae..9635e5b5b67 100644 --- a/libexec/ld.so/m88k/rtld_machine.c +++ b/libexec/ld.so/m88k/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.27 2019/10/05 00:08:50 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.28 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 2013 Miodrag Vallat. @@ -67,38 +67,38 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) int numrela; int relrela; int fails = 0; - Elf32_Addr loff; - Elf32_Rela *relas; - Elf32_Addr prev_value = 0, prev_ooff = 0; - const Elf32_Sym *prev_sym = NULL; + Elf_Addr loff; + Elf_RelA *relas; + Elf_Addr prev_value = 0, prev_ooff = 0; + const Elf_Sym *prev_sym = NULL; loff = object->obj_base; - numrela = object->Dyn.info[relasz] / sizeof(Elf32_Rela); + numrela = object->Dyn.info[relasz] / sizeof(Elf_RelA); relrela = rel == DT_RELA ? object->relacount : 0; - relas = (Elf32_Rela *)(object->Dyn.info[rel]); + relas = (Elf_RelA *)(object->Dyn.info[rel]); if (relas == NULL) - return(0); + return 0; if (relrela > numrela) _dl_die("relacount > numrel: %d > %d", relrela, numrela); /* tight loop for leading RELATIVE relocs */ for (i = 0; i < relrela; i++, relas++) { - Elf32_Addr *r_addr; + Elf_Addr *r_addr; - r_addr = (Elf32_Addr *)(relas->r_offset + loff); + r_addr = (Elf_Addr *)(relas->r_offset + loff); *r_addr = relas->r_addend + loff; } for (; i < numrela; i++, relas++) { - Elf32_Addr *r_addr = (Elf32_Addr *)(relas->r_offset + loff); - Elf32_Addr addend, newval; - const Elf32_Sym *sym; + Elf_Addr *r_addr = (Elf_Addr *)(relas->r_offset + loff); + Elf_Addr addend, newval; + const Elf_Sym *sym; const char *symn; int type; - type = ELF32_R_TYPE(relas->r_info); + type = ELF_R_TYPE(relas->r_info); if (type == RELOC_GOTP_ENT && rel != DT_JMPREL) continue; @@ -107,7 +107,7 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) continue; sym = object->dyn.symtab; - sym += ELF32_R_SYM(relas->r_info); + sym += ELF_R_SYM(relas->r_info); symn = object->dyn.strtab + sym->st_name; if (type == RELOC_COPY) { @@ -131,12 +131,12 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) continue; } - if (ELF32_R_SYM(relas->r_info) && - !(ELF32_ST_BIND(sym->st_info) == STB_LOCAL && - ELF32_ST_TYPE (sym->st_info) == STT_NOTYPE) && + if (ELF_R_SYM(relas->r_info) && + !(ELF_ST_BIND(sym->st_info) == STB_LOCAL && + ELF_ST_TYPE (sym->st_info) == STT_NOTYPE) && sym != prev_sym) { - if (ELF32_ST_BIND(sym->st_info) == STB_LOCAL && - ELF32_ST_TYPE(sym->st_info) == STT_SECTION) { + if (ELF_ST_BIND(sym->st_info) == STB_LOCAL && + ELF_ST_TYPE(sym->st_info) == STT_SECTION) { prev_sym = sym; prev_value = 0; prev_ooff = object->obj_base; @@ -167,9 +167,9 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) continue; } - if (ELF32_ST_BIND(sym->st_info) == STB_LOCAL && - (ELF32_ST_TYPE(sym->st_info) == STT_SECTION || - ELF32_ST_TYPE(sym->st_info) == STT_NOTYPE)) + if (ELF_ST_BIND(sym->st_info) == STB_LOCAL && + (ELF_ST_TYPE(sym->st_info) == STT_SECTION || + ELF_ST_TYPE(sym->st_info) == STT_NOTYPE)) addend = relas->r_addend; else addend = prev_value + relas->r_addend; @@ -210,7 +210,7 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) } } - return(fails); + return fails; } /* @@ -243,13 +243,13 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) Elf_Addr plt_start, plt_end; if (pltgot == NULL) - return (0); + return 0; pltgot[1] = (Elf_Addr)object; pltgot[2] = (Elf_Addr)_dl_bind_start; if (object->Dyn.info[DT_PLTREL] != DT_RELA) - return (0); + return 0; if (object->traced) lazy = 1; @@ -289,7 +289,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) _dl_cacheflush(plt_start + object->obj_base, plt_size); } - return (fails); + return fails; } Elf_Addr @@ -319,7 +319,7 @@ _dl_bind(elf_object_t *object, int reloff) buf.newval = sr.obj->obj_base + sr.sym->st_value; if (__predict_false(sr.obj->traced) && _dl_trace_plt(sr.obj, symn)) - return (buf.newval); + return buf.newval; buf.param.kb_addr = (Elf_Addr *)(object->obj_base + rel->r_offset); buf.param.kb_size = sizeof(Elf_Addr); @@ -337,5 +337,5 @@ _dl_bind(elf_object_t *object, int reloff) "r" (arg3), "r" (arg4) : "memory"); } - return (buf.newval); + return buf.newval; } diff --git a/libexec/ld.so/mips64/archdep.h b/libexec/ld.so/mips64/archdep.h index 47dcbe13efc..6e612252285 100644 --- a/libexec/ld.so/mips64/archdep.h +++ b/libexec/ld.so/mips64/archdep.h @@ -1,4 +1,4 @@ -/* $OpenBSD: archdep.h,v 1.14 2017/10/27 16:47:08 mpi Exp $ */ +/* $OpenBSD: archdep.h,v 1.15 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 1998-2002 Opsycon AB, Sweden. @@ -40,13 +40,13 @@ #define RELOC_DYN(relp, symp, adrp, val) \ do { \ - if (ELF64_R_TYPE(relp->r_info) == R_MIPS_REL32_64) { \ - if (ELF64_R_SYM(relp->r_info) != 0) \ + if (ELF_R_TYPE(relp->r_info) == R_MIPS_REL32_64) { \ + if (ELF_R_SYM(relp->r_info) != 0) \ *adrp += symp->st_value + val; \ else \ *adrp += val; \ - } else if (ELF64_R_TYPE(relp->r_info) != R_MIPS_NONE) { \ - _dl_exit(ELF64_R_TYPE(relp->r_info)+100); \ + } else if (ELF_R_TYPE(relp->r_info) != R_MIPS_NONE) { \ + _dl_exit(ELF_R_TYPE(relp->r_info)+100); \ } \ } while (0) @@ -54,7 +54,7 @@ do { \ do { \ struct boot_dyn *__dynld = obj; \ long __loff = off; \ - Elf64_Addr *gotp; \ + Elf_Addr *gotp; \ int i, n; \ const Elf_Sym *sp; \ \ @@ -76,9 +76,9 @@ do { \ while (n--) { \ if (sp->st_shndx == SHN_UNDEF || \ sp->st_shndx == SHN_COMMON) { \ - if (ELF64_ST_BIND(sp->st_info) != STB_WEAK) \ + if (ELF_ST_BIND(sp->st_info) != STB_WEAK) \ _dl_exit(7); \ - } else if (ELF64_ST_TYPE(sp->st_info) == STT_FUNC) { \ + } else if (ELF_ST_TYPE(sp->st_info) == STT_FUNC) { \ *gotp += __loff; \ } else { \ *gotp = sp->st_value + __loff; \ diff --git a/libexec/ld.so/mips64/rtld_machine.c b/libexec/ld.so/mips64/rtld_machine.c index 19e7c65145d..a93db355625 100644 --- a/libexec/ld.so/mips64/rtld_machine.c +++ b/libexec/ld.so/mips64/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.31 2019/08/06 04:01:42 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.32 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 1998-2004 Opsycon AB, Sweden. @@ -42,7 +42,7 @@ int64_t pcookie __attribute__((section(".openbsd.randomdata"))) __dso_hidden; static inline void -_dl_reloc_ent(Elf64_Addr r_addr, Elf64_Addr value) +_dl_reloc_ent(Elf_Addr r_addr, Elf_Addr value) { if ((r_addr & 7) == 0) *(u_int64_t *)r_addr += value; @@ -65,39 +65,39 @@ _dl_md_reloc(elf_object_t *object, int rel, int relsz) int i; int numrel; int fails = 0; - Elf64_Addr loff; - Elf64_Rel *relocs; - const Elf64_Sym *sym, *this; - Elf64_Addr prev_value = 0; - const Elf64_Sym *prev_sym = NULL; + Elf_Addr loff; + Elf_Rel *relocs; + const Elf_Sym *sym, *this; + Elf_Addr prev_value = 0; + const Elf_Sym *prev_sym = NULL; loff = object->obj_base; - numrel = object->Dyn.info[relsz] / sizeof(Elf64_Rel); - relocs = (Elf64_Rel *)(object->Dyn.info[rel]); + numrel = object->Dyn.info[relsz] / sizeof(Elf_Rel); + relocs = (Elf_Rel *)(object->Dyn.info[rel]); if (relocs == NULL) - return(0); + return 0; DL_DEB(("relocating %d\n", numrel)); for (i = 0; i < numrel; i++, relocs++) { - Elf64_Addr r_addr = relocs->r_offset + loff; + Elf_Addr r_addr = relocs->r_offset + loff; const char *symn; int type; - if (ELF64_R_SYM(relocs->r_info) == 0xffffff) + if (ELF_R_SYM(relocs->r_info) == 0xffffff) continue; sym = object->dyn.symtab; - sym += ELF64_R_SYM(relocs->r_info); + sym += ELF_R_SYM(relocs->r_info); symn = object->dyn.strtab + sym->st_name; - type = ELF64_R_TYPE(relocs->r_info); + type = ELF_R_TYPE(relocs->r_info); this = NULL; - if (ELF64_R_SYM(relocs->r_info)) { + if (ELF_R_SYM(relocs->r_info)) { if (sym == prev_sym) this = sym; /* XXX non-NULL */ - else if (!(ELF64_ST_BIND(sym->st_info) == STB_LOCAL && - ELF64_ST_TYPE (sym->st_info) == STT_NOTYPE)) { + else if (!(ELF_ST_BIND(sym->st_info) == STB_LOCAL && + ELF_ST_TYPE (sym->st_info) == STT_NOTYPE)) { struct sym_res sr; sr = _dl_find_symbol(symn, @@ -117,11 +117,11 @@ _dl_md_reloc(elf_object_t *object, int rel, int relsz) } } - switch (ELF64_R_TYPE(relocs->r_info)) { + switch (ELF_R_TYPE(relocs->r_info)) { case R_MIPS_REL32_64: - if (ELF64_ST_BIND(sym->st_info) == STB_LOCAL && - (ELF64_ST_TYPE(sym->st_info) == STT_SECTION || - ELF64_ST_TYPE(sym->st_info) == STT_NOTYPE) ) + if (ELF_ST_BIND(sym->st_info) == STB_LOCAL && + (ELF_ST_TYPE(sym->st_info) == STT_SECTION || + ELF_ST_TYPE(sym->st_info) == STT_NOTYPE) ) _dl_reloc_ent(r_addr, loff + sym->st_value); else if (this) _dl_reloc_ent(r_addr, prev_value); @@ -132,12 +132,12 @@ _dl_md_reloc(elf_object_t *object, int rel, int relsz) default: _dl_die("unsupported relocation '%llu'", - ELF64_R_TYPE(relocs->r_info)); + ELF_R_TYPE(relocs->r_info)); } } DL_DEB(("done %d fails\n", fails)); - return(fails); + return fails; } extern void _dl_bind_start(void); @@ -155,13 +155,13 @@ int _dl_md_reloc_got(elf_object_t *object, int lazy) { int i, n; - Elf64_Addr loff; - Elf64_Addr *gotp; - const Elf64_Sym *symp; + Elf_Addr loff; + Elf_Addr *gotp; + const Elf_Sym *symp; const char *strt; if (object->status & STAT_GOT_DONE) - return (0); + return 0; loff = object->obj_base; strt = object->dyn.strtab; @@ -199,7 +199,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) struct sym_res sr; if (symp->st_shndx == SHN_UNDEF && - ELF64_ST_TYPE(symp->st_info) == STT_FUNC) { + ELF_ST_TYPE(symp->st_info) == STT_FUNC) { if (symp->st_value == 0 || !lazy) { sr = _dl_find_symbol(symn, SYM_SEARCH_ALL|SYM_NOWARNNOTFOUND|SYM_PLT, @@ -216,7 +216,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) symp, object); if (sr.sym) *gotp = sr.sym->st_value + sr.obj->obj_base; - } else if ((ELF64_ST_TYPE(symp->st_info) == STT_FUNC && + } else if ((ELF_ST_TYPE(symp->st_info) == STT_FUNC && symp->st_value != *gotp) || ELF_ST_VISIBILITY(symp->st_other) == STV_PROTECTED) { *gotp += loff; @@ -234,7 +234,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) } object->status |= STAT_GOT_DONE; - return (0); + return 0; } Elf_Addr @@ -265,7 +265,7 @@ _dl_bind(elf_object_t *object, int symidx) buf.newval = sr.obj->obj_base + sr.sym->st_value; if (__predict_false(sr.obj->traced) && _dl_trace_plt(sr.obj, symn)) - return (buf.newval); + return buf.newval; buf.param.kb_addr = &gotp[n + symidx]; buf.param.kb_size = sizeof(Elf_Addr); @@ -282,5 +282,5 @@ _dl_bind(elf_object_t *object, int symidx) : "v1", "a3", "memory"); } - return (buf.newval); + return buf.newval; } diff --git a/libexec/ld.so/powerpc/archdep.h b/libexec/ld.so/powerpc/archdep.h index 75678ef2c1a..02898ceae0f 100644 --- a/libexec/ld.so/powerpc/archdep.h +++ b/libexec/ld.so/powerpc/archdep.h @@ -1,4 +1,4 @@ -/* $OpenBSD: archdep.h,v 1.22 2017/10/27 16:47:08 mpi Exp $ */ +/* $OpenBSD: archdep.h,v 1.23 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -44,7 +44,7 @@ */ static inline void -_dl_dcbf(Elf32_Addr *addr) +_dl_dcbf(Elf_Addr *addr) { __asm__ volatile ("dcbst 0, %0\n\t" "sync\n\t" @@ -55,13 +55,13 @@ _dl_dcbf(Elf32_Addr *addr) } static inline void -RELOC_DYN(Elf32_Rela *r, const Elf32_Sym *s, Elf32_Addr *p, unsigned long v) +RELOC_DYN(Elf_RelA *r, const Elf_Sym *s, Elf_Addr *p, unsigned long v) { - if (ELF32_R_TYPE(r->r_info) == RELOC_RELATIVE) { + if (ELF_R_TYPE(r->r_info) == RELOC_RELATIVE) { *p = v + r->r_addend; - } else if (ELF32_R_TYPE(r->r_info) == RELOC_JMP_SLOT) { - Elf32_Addr val = v + s->st_value + r->r_addend - - (Elf32_Addr)(p); + } else if (ELF_R_TYPE(r->r_info) == RELOC_JMP_SLOT) { + Elf_Addr val = v + s->st_value + r->r_addend - + (Elf_Addr)(p); if (((val & 0xfe000000) != 0) && ((val & 0xfe000000) != 0xfe000000)) { /* invalid offset */ @@ -71,7 +71,7 @@ RELOC_DYN(Elf32_Rela *r, const Elf32_Sym *s, Elf32_Addr *p, unsigned long v) val |= 0x48000000; *p = val; _dl_dcbf(p); - } else if (ELF32_R_TYPE((r)->r_info) == RELOC_GLOB_DAT) { + } else if (ELF_R_TYPE((r)->r_info) == RELOC_GLOB_DAT) { *p = v + s->st_value + r->r_addend; } else { _dl_exit(6); diff --git a/libexec/ld.so/powerpc/rtld_machine.c b/libexec/ld.so/powerpc/rtld_machine.c index ea5f4a900cc..b1f3dc9ab38 100644 --- a/libexec/ld.so/powerpc/rtld_machine.c +++ b/libexec/ld.so/powerpc/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.68 2019/10/05 00:08:50 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.69 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 1999 Dale Rahn @@ -58,19 +58,19 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) int numrela; long relrel; int fails = 0; - Elf32_Addr loff; - Elf32_Rela *relas; + Elf_Addr loff; + Elf_RelA *relas; /* for jmp table relocations */ - Elf32_Addr prev_value = 0, prev_ooff = 0; - const Elf32_Sym *prev_sym = NULL; + Elf_Addr prev_value = 0, prev_ooff = 0; + const Elf_Sym *prev_sym = NULL; loff = object->obj_base; - numrela = object->Dyn.info[relasz] / sizeof(Elf32_Rela); + numrela = object->Dyn.info[relasz] / sizeof(Elf_RelA); relrel = rel == DT_RELA ? object->relacount : 0; - relas = (Elf32_Rela *)(object->Dyn.info[rel]); + relas = (Elf_RelA *)(object->Dyn.info[rel]); if (relas == NULL) - return(0); + return 0; if (relrel > numrela) _dl_die("relcount > numrel: %ld > %d", relrel, numrela); @@ -86,26 +86,26 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) *r_addr = loff + relas->r_addend; } for (; i < numrela; i++, relas++) { - Elf32_Addr *r_addr = (Elf32_Addr *)(relas->r_offset + loff); - const Elf32_Sym *sym; + Elf_Addr *r_addr = (Elf_Addr *)(relas->r_offset + loff); + const Elf_Sym *sym; const char *symn; int type; - if (ELF32_R_SYM(relas->r_info) == 0xffffff) + if (ELF_R_SYM(relas->r_info) == 0xffffff) continue; - type = ELF32_R_TYPE(relas->r_info); + type = ELF_R_TYPE(relas->r_info); if (type == RELOC_JMP_SLOT && rel != DT_JMPREL) continue; sym = object->dyn.symtab; - sym += ELF32_R_SYM(relas->r_info); + sym += ELF_R_SYM(relas->r_info); symn = object->dyn.strtab + sym->st_name; - if (ELF32_R_SYM(relas->r_info) && - !(ELF32_ST_BIND(sym->st_info) == STB_LOCAL && - ELF32_ST_TYPE (sym->st_info) == STT_NOTYPE) && + if (ELF_R_SYM(relas->r_info) && + !(ELF_ST_BIND(sym->st_info) == STB_LOCAL && + ELF_ST_TYPE (sym->st_info) == STT_NOTYPE) && sym != prev_sym) { struct sym_res sr; @@ -126,9 +126,9 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) switch (type) { case RELOC_32: - if (ELF32_ST_BIND(sym->st_info) == STB_LOCAL && - (ELF32_ST_TYPE(sym->st_info) == STT_SECTION || - ELF32_ST_TYPE(sym->st_info) == STT_NOTYPE) ) { + if (ELF_ST_BIND(sym->st_info) == STB_LOCAL && + (ELF_ST_TYPE(sym->st_info) == STT_SECTION || + ELF_ST_TYPE(sym->st_info) == STT_NOTYPE) ) { *r_addr = prev_ooff + relas->r_addend; } else { *r_addr = prev_ooff + prev_value + @@ -136,9 +136,9 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) } break; case RELOC_RELATIVE: - if (ELF32_ST_BIND(sym->st_info) == STB_LOCAL && - (ELF32_ST_TYPE(sym->st_info) == STT_SECTION || - ELF32_ST_TYPE(sym->st_info) == STT_NOTYPE) ) { + if (ELF_ST_BIND(sym->st_info) == STB_LOCAL && + (ELF_ST_TYPE(sym->st_info) == STT_SECTION || + ELF_ST_TYPE(sym->st_info) == STT_NOTYPE) ) { *r_addr = loff + relas->r_addend; } else { *r_addr = loff + prev_value + @@ -158,8 +158,8 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) /* should not be supported ??? */ case RELOC_REL24: { - Elf32_Addr val = prev_ooff + prev_value + - relas->r_addend - (Elf32_Addr)r_addr; + Elf_Addr val = prev_ooff + prev_value + + relas->r_addend - (Elf_Addr)r_addr; if (!B24_VALID_RANGE(val)) { /* invalid offset */ _dl_die("%s: invalid %s offset %x at %p", @@ -177,10 +177,10 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) #if 1 case RELOC_16_LO: { - Elf32_Addr val; + Elf_Addr val; val = loff + relas->r_addend; - *(Elf32_Half *)r_addr = val; + *(Elf_Half *)r_addr = val; _dl_dcbf(r_addr); } @@ -189,10 +189,10 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) #if 1 case RELOC_16_HI: { - Elf32_Addr val; + Elf_Addr val; val = loff + relas->r_addend; - *(Elf32_Half *)r_addr = (val >> 16); + *(Elf_Half *)r_addr = (val >> 16); _dl_dcbf(r_addr); } @@ -201,10 +201,10 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) #if 1 case RELOC_16_HA: { - Elf32_Addr val; + Elf_Addr val; val = loff + relas->r_addend; - *(Elf32_Half *)r_addr = ((val + 0x8000) >> 16); + *(Elf_Half *)r_addr = ((val + 0x8000) >> 16); _dl_dcbf(r_addr); } @@ -215,8 +215,8 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) case RELOC_REL14: case RELOC_REL14_NTAKEN: { - Elf32_Addr val = prev_ooff + prev_value + - relas->r_addend - (Elf32_Addr)r_addr; + Elf_Addr val = prev_ooff + prev_value + + relas->r_addend - (Elf_Addr)r_addr; if (((val & 0xffff8000) != 0) && ((val & 0xffff8000) != 0xffff8000)) { /* invalid offset */ @@ -255,11 +255,11 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) default: _dl_die("%s: unsupported relocation '%s' %d at %p\n", object->load_name, symn, - ELF32_R_TYPE(relas->r_info), (void *)r_addr ); + ELF_R_TYPE(relas->r_info), (void *)r_addr ); } } - return(fails); + return fails; } /* @@ -273,7 +273,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) int fails = 0; if (object->Dyn.info[DT_PLTREL] != DT_RELA) - return (0); + return 0; if (object->traced) lazy = 1; @@ -281,26 +281,26 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) if (!lazy) { fails = _dl_md_reloc(object, DT_JMPREL, DT_PLTRELSZ); } else { - Elf32_Addr *got; - Elf32_Addr *plt; + Elf_Addr *got; + Elf_Addr *plt; int numplt, i; /* Relocate processor-specific tags. */ object->Dyn.info[DT_PROC(DT_PPC_GOT)] += object->obj_base; - got = (Elf32_Addr *) - (Elf32_Rela *)(object->Dyn.info[DT_PROC(DT_PPC_GOT)]); - got[1] = (Elf32_Addr)_dl_bind_start; - got[2] = (Elf32_Addr)object; + got = (Elf_Addr *) + (Elf_RelA *)(object->Dyn.info[DT_PROC(DT_PPC_GOT)]); + got[1] = (Elf_Addr)_dl_bind_start; + got[2] = (Elf_Addr)object; - plt = (Elf32_Addr *) - (Elf32_Rela *)(object->Dyn.info[DT_PLTGOT]); - numplt = object->Dyn.info[DT_PLTRELSZ] / sizeof(Elf32_Rela); + plt = (Elf_Addr *) + (Elf_RelA *)(object->Dyn.info[DT_PLTGOT]); + numplt = object->Dyn.info[DT_PLTRELSZ] / sizeof(Elf_RelA); for (i = 0; i < numplt; i++) plt[i] += object->obj_base; } - return (fails); + return fails; } Elf_Addr @@ -310,7 +310,7 @@ _dl_bind(elf_object_t *object, int reloff) struct sym_res sr; const char *symn; Elf_RelA *relas; - Elf32_Addr *plttable; + Elf_Addr *plttable; int64_t cookie = pcookie; struct { struct __kbind param; @@ -333,8 +333,8 @@ _dl_bind(elf_object_t *object, int reloff) if (__predict_false(sr.obj->traced) && _dl_trace_plt(sr.obj, symn)) return buf.newval; - plttable = (Elf32_Addr *)(Elf32_Rela *)(object->Dyn.info[DT_PLTGOT]); - buf.param.kb_addr = &plttable[ reloff / sizeof(Elf32_Rela) ]; + plttable = (Elf_Addr *)(Elf_RelA *)(object->Dyn.info[DT_PLTGOT]); + buf.param.kb_addr = &plttable[ reloff / sizeof(Elf_RelA) ]; buf.param.kb_size = sizeof(Elf_Addr); { diff --git a/libexec/ld.so/sh/archdep.h b/libexec/ld.so/sh/archdep.h index c4edb23fb7a..2e6aaaf8ee0 100644 --- a/libexec/ld.so/sh/archdep.h +++ b/libexec/ld.so/sh/archdep.h @@ -1,4 +1,4 @@ -/* $OpenBSD: archdep.h,v 1.11 2017/10/27 16:47:08 mpi Exp $ */ +/* $OpenBSD: archdep.h,v 1.12 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -44,7 +44,7 @@ */ static inline void -RELOC_DYN(Elf32_Rela *r, const Elf32_Sym *s, Elf32_Addr *p, unsigned long v) +RELOC_DYN(Elf_RelA *r, const Elf_Sym *s, Elf_Addr *p, unsigned long v) { if (ELF_R_TYPE(r->r_info) == R_SH_RELATIVE) { *p = v + r->r_addend; diff --git a/libexec/ld.so/sh/rtld_machine.c b/libexec/ld.so/sh/rtld_machine.c index 06a777588d0..b0fcd2de9a3 100644 --- a/libexec/ld.so/sh/rtld_machine.c +++ b/libexec/ld.so/sh/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.30 2019/10/05 00:08:50 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.31 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 2004 Dale Rahn @@ -615,7 +615,7 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) rels = (Elf_RelA *)(object->Dyn.info[rel]); if (rels == NULL) - return(0); + return 0; if (relrel > numrela) _dl_die("relacount > numrel: %ld > %ld", relrel, numrela); @@ -744,7 +744,7 @@ resolve_failed: } } - return (fails); + return fails; } /* @@ -761,7 +761,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) Elf_RelA *rel; if (object->Dyn.info[DT_PLTREL] != DT_RELA) - return (0); + return 0; if (object->traced) lazy = 1; @@ -789,7 +789,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) pltgot[2] = (Elf_Addr)_dl_bind_start; } - return (fails); + return fails; } Elf_Addr @@ -819,7 +819,7 @@ _dl_bind(elf_object_t *object, int reloff) buf.newval = sr.obj->obj_base + sr.sym->st_value; if (__predict_false(sr.obj->traced) && _dl_trace_plt(sr.obj, symn)) - return (buf.newval); + return buf.newval; buf.param.kb_addr = (Elf_Addr *)(object->obj_base + rel->r_offset); buf.param.kb_size = sizeof(Elf_Addr); @@ -837,5 +837,5 @@ _dl_bind(elf_object_t *object, int reloff) : "r1", "cc", "memory"); } - return (buf.newval); + return buf.newval; } diff --git a/libexec/ld.so/sparc64/rtld_machine.c b/libexec/ld.so/sparc64/rtld_machine.c index 3a467931f01..14ba5591406 100644 --- a/libexec/ld.so/sparc64/rtld_machine.c +++ b/libexec/ld.so/sparc64/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.66 2019/10/05 00:08:50 guenther Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.67 2019/10/23 19:55:09 guenther Exp $ */ /* * Copyright (c) 1999 Dale Rahn @@ -217,12 +217,12 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) Elf_RelA *relas; loff = object->obj_base; - numrela = object->Dyn.info[relasz] / sizeof(Elf64_Rela); + numrela = object->Dyn.info[relasz] / sizeof(Elf_RelA); relrel = rel == DT_RELA ? object->relacount : 0; - relas = (Elf64_Rela *)(object->Dyn.info[rel]); + relas = (Elf_RelA *)(object->Dyn.info[rel]); if (relas == NULL) - return(0); + return 0; if (relrel > numrela) _dl_die("relacount > numrel: %ld > %ld", relrel, numrela); @@ -337,7 +337,7 @@ resolve_failed: } } - return (fails); + return fails; } /* @@ -422,7 +422,7 @@ _dl_reloc_plt(Elf_Word *where1, Elf_Word *where2, Elf_Word *pltaddr, * */ *where1 = BAA | (((offset-4) >> 2) &0x7ffff); - return (0); + return 0; } else if (value < (1UL<<32)) { /* * We're within 32-bits of address zero. @@ -441,7 +441,7 @@ _dl_reloc_plt(Elf_Word *where1, Elf_Word *where2, Elf_Word *pltaddr, */ *where1 = SETHI | HIVAL(value, 10); where2[0] = JMP | LOVAL(value); - return (1); + return 1; } else if (value > -(1UL<<32)) { /* * We're within 32-bits of address -1. @@ -461,7 +461,7 @@ _dl_reloc_plt(Elf_Word *where1, Elf_Word *where2, Elf_Word *pltaddr, *where1 = SETHI | HIVAL(~value, 10); where2[0] = XOR | ((~value) & 0x00001fff); where2[1] = JMP; - return (2); + return 2; } else if ((int64_t)(offset-8) <= (1L<<31) && (int64_t)(offset-8) >= -((1L<<31) - 4)) { /* @@ -482,7 +482,7 @@ _dl_reloc_plt(Elf_Word *where1, Elf_Word *where2, Elf_Word *pltaddr, *where1 = MOV71; where2[0] = CALL | (((offset-8) >> 2) & 0x3fffffff); where2[1] = MOV17; - return (2); + return 2; } else if (value < (1L<<42)) { /* * Target 42bits or smaller. @@ -505,7 +505,7 @@ _dl_reloc_plt(Elf_Word *where1, Elf_Word *where2, Elf_Word *pltaddr, where2[0] = OR | LOVAL(value >> 10); where2[1] = SLLX | 10; where2[2] = JMP | LOVAL(value); - return (3); + return 3; } else if (value > -(1UL<<41)) { /* * Large target >= 0xfffffe0000000000UL @@ -529,7 +529,7 @@ _dl_reloc_plt(Elf_Word *where1, Elf_Word *where2, Elf_Word *pltaddr, where2[1] = SLLX | 32; where2[2] = SRAX | 22; where2[3] = JMP | LOVAL(value); - return (4); + return 4; } else { /* * We need to load all 64-bits @@ -552,7 +552,7 @@ _dl_reloc_plt(Elf_Word *where1, Elf_Word *where2, Elf_Word *pltaddr, where2[2] = SLLXG5 | 32; where2[3] = ORG15; where2[4] = JMP | LOVAL(value); - return (5); + return 5; } } @@ -602,7 +602,7 @@ _dl_bind(elf_object_t *object, int index) rela += index; sym = object->dyn.symtab; - sym += ELF64_R_SYM(rela->r_info); + sym += ELF_R_SYM(rela->r_info); symn = object->dyn.strtab + sym->st_name; sr = _dl_find_symbol(symn, SYM_SEARCH_ALL|SYM_WARNNOTFOUND|SYM_PLT, @@ -613,7 +613,7 @@ _dl_bind(elf_object_t *object, int index) newvalue = sr.obj->obj_base + sr.sym->st_value; if (__predict_false(sr.obj->traced) && _dl_trace_plt(sr.obj, symn)) - return (newvalue); + return newvalue; /* * While some relocations just need to write one word and @@ -712,7 +712,7 @@ _dl_bind(elf_object_t *object, int index) : "cc", "memory"); } - return (newvalue); + return newvalue; } /* @@ -753,11 +753,11 @@ _dl_md_reloc_all_plt(elf_object_t *object) Elf_RelA *relas; loff = object->obj_base; - numrela = object->Dyn.info[DT_PLTRELSZ] / sizeof(Elf64_Rela); - relas = (Elf64_Rela *)(object->Dyn.info[DT_JMPREL]); + numrela = object->Dyn.info[DT_PLTRELSZ] / sizeof(Elf_RelA); + relas = (Elf_RelA *)(object->Dyn.info[DT_JMPREL]); if (relas == NULL) - return(0); + return 0; for (i = 0; i < numrela; i++, relas++) { Elf_Addr value; @@ -795,7 +795,7 @@ _dl_md_reloc_all_plt(elf_object_t *object) _dl_reloc_plt(&where[1], &where[2], where, value); } - return (fails); + return fails; } /* @@ -809,7 +809,7 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) Elf_Word *entry = (Elf_Word *)pltgot; if (object->Dyn.info[DT_PLTREL] != DT_RELA) - return (0); + return 0; if (object->traced) lazy = 1; @@ -823,5 +823,5 @@ _dl_md_reloc_got(elf_object_t *object, int lazy) pltgot[8] = (Elf_Addr)object; } - return (fails); + return fails; } |