From 6cd8d357b8ff1f5df4f577f20cb9ddef1b7d3555 Mon Sep 17 00:00:00 2001 From: guenther Date: Sun, 7 Aug 2016 02:34:52 +0000 Subject: [PATCH] alpha already calculates &_DYNAMIC for the _reloc_alpha_got() call, so save that and pass it to _dl_boot_bind() too --- lib/csu/alpha/md_init.h | 5 +++-- lib/csu/boot.h | 6 ++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/csu/alpha/md_init.h b/lib/csu/alpha/md_init.h index 1f1ad3d0df6..19cd9d92397 100644 --- a/lib/csu/alpha/md_init.h +++ b/lib/csu/alpha/md_init.h @@ -1,4 +1,4 @@ -/* $OpenBSD: md_init.h,v 1.6 2016/03/20 02:32:39 guenther Exp $ */ +/* $OpenBSD: md_init.h,v 1.7 2016/08/07 02:34:52 guenther Exp $ */ /*- * Copyright (c) 2001 Ross Harvey * All rights reserved. @@ -85,12 +85,13 @@ " mov $11, $17 \n" \ " lda $6, _DYNAMIC \n" \ " addq $11, $6, $16 \n" \ + " mov $16, $15 \n" \ " bsr $26, _reloc_alpha_got \n" \ " lda $sp, -80($sp) \n" \ " mov $9, $16 \n" \ " lda $11, 0($sp) \n" \ " mov $11, $17 \n" \ - " mov 0, $18 \n" \ + " mov $15, $18 \n" \ " jsr $26, _dl_boot_bind \n" \ " ldgp $gp, 0($26) \n" \ " mov $9, $16 \n" \ diff --git a/lib/csu/boot.h b/lib/csu/boot.h index 88aee9556af..878b15c2027 100644 --- a/lib/csu/boot.h +++ b/lib/csu/boot.h @@ -1,4 +1,4 @@ -/* $OpenBSD: boot.h,v 1.19 2016/08/07 02:30:55 guenther Exp $ */ +/* $OpenBSD: boot.h,v 1.20 2016/08/07 02:34:52 guenther Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -146,9 +146,7 @@ _dl_boot_bind(const long sp, long *dl_data, Elf_Dyn *dynamicp) * Cache the data for easier access. */ -#if defined(__alpha__) - dynp = (Elf_Dyn *)((long)_DYNAMIC); -#elif defined(__mips64__) +#if defined(__mips64__) dynp = (Elf_Dyn *)((long)_DYNAMIC + loff); #else dynp = dynamicp; -- 2.20.1