summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libexec/ld.so/hppa/rtld_machine.c6
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);