summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorPhilip Guenther <guenther@cvs.openbsd.org>2016-07-15 09:25:48 +0000
committerPhilip Guenther <guenther@cvs.openbsd.org>2016-07-15 09:25:48 +0000
commit4ccc00d7e9c79308c12f84aba74016ab3b61d463 (patch)
tree62c800b593cb7eeb79c054d09bc89f488cc2f1f5 /libexec
parentb4d2b85e1a53dfc01e1db9d2784538e7829a5987 (diff)
Switch m88k to pass &_DYNAMIC to _dl_boot_bind()
probably works: this ASM pattern is already used for _dl_dtors
Diffstat (limited to 'libexec')
-rw-r--r--libexec/ld.so/boot.c4
-rw-r--r--libexec/ld.so/m88k/ldasm.S4
2 files changed, 3 insertions, 5 deletions
diff --git a/libexec/ld.so/boot.c b/libexec/ld.so/boot.c
index 30e646cb22f..8271e386717 100644
--- a/libexec/ld.so/boot.c
+++ b/libexec/ld.so/boot.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: boot.c,v 1.6 2015/12/06 23:36:12 guenther Exp $ */
+/* $OpenBSD: boot.c,v 1.7 2016/07/15 09:25:47 guenther Exp $ */
/*
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
@@ -130,7 +130,7 @@ _dl_boot_bind(const long sp, long *dl_data, Elf_Dyn *dynamicp)
#if defined(__alpha__)
dynp = (Elf_Dyn *)((long)_DYNAMIC);
#elif defined(__sparc__) || defined(__sparc64__) || defined(__powerpc__) || \
- defined(__hppa__) || defined(__sh__)
+ defined(__hppa__) || defined(__sh__) || defined(__m88k__)
dynp = dynamicp;
#else
dynp = (Elf_Dyn *)((long)_DYNAMIC + loff);
diff --git a/libexec/ld.so/m88k/ldasm.S b/libexec/ld.so/m88k/ldasm.S
index ca2c33a854d..f4719a8507c 100644
--- a/libexec/ld.so/m88k/ldasm.S
+++ b/libexec/ld.so/m88k/ldasm.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: ldasm.S,v 1.19 2016/05/07 19:05:23 guenther Exp $ */
+/* $OpenBSD: ldasm.S,v 1.20 2016/07/15 09:25:47 guenther Exp $ */
/*
* Copyright (c) 2013 Miodrag Vallat.
@@ -74,12 +74,10 @@ ENTRY(_dl_start)
*/
or %r2, %r30, 0 | kernel args
or %r3, %r31, 0 | array base
-#if 0 /* _dl_boot_bind() can compute this itself */
bsr 1f | the following instruction is skipped
bcnd eq0, %r0, _DYNAMIC | but gives us the pc-relative offset
1: ld.hu %r5, %r1, 2 | fetch branch offset (low 16 bits)
lda %r4, %r1[%r5] |
-#endif
bsr _dl_boot_bind
ld %r2, %r30, 0 | argc