diff options
-rw-r--r-- | libexec/ld.so/hppa/rtld_machine.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libexec/ld.so/hppa/rtld_machine.c b/libexec/ld.so/hppa/rtld_machine.c index 84ac8d7c167..fb16756d8df 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.3 2004/05/27 21:59:07 mickey Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.4 2004/06/01 21:07:46 mickey Exp $ */ /* * Copyright (c) 2004 Michael Shalayeff @@ -109,6 +109,10 @@ _dl_md_reloc(elf_object_t *object, int rel, int relasz) if (rela == NULL) return (0); + /* either it's an ld bug or a wacky hpux abi */ + if (!object->dyn.pltgot) + object->Dyn.info[DT_PLTGOT] += loff; + if (object->dyn.init && !((Elf_Addr)object->dyn.init & 2)) { Elf_Addr addr = _dl_md_plabel((Elf_Addr)object->dyn.init, object->dyn.pltgot); |