Teach mips64 to pass &_DYNAMIC to _dl_boot_bind().
authorguenther <guenther@openbsd.org>
Sun, 7 Aug 2016 02:44:00 +0000 (02:44 +0000)
committerguenther <guenther@openbsd.org>
Sun, 7 Aug 2016 02:44:00 +0000 (02:44 +0000)
mips64be testing by deraadt@

lib/csu/boot.h
lib/csu/mips64/md_init.h

index 878b15c..c0a541f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: boot.h,v 1.20 2016/08/07 02:34:52 guenther Exp $ */
+/*     $OpenBSD: boot.h,v 1.21 2016/08/07 02:44:00 guenther Exp $ */
 
 /*
  * Copyright (c) 1998 Per Fogelstrom, Opsycon AB
@@ -145,12 +145,7 @@ _dl_boot_bind(const long sp, long *dl_data, Elf_Dyn *dynamicp)
         * Scan the DYNAMIC section for the loader.
         * Cache the data for easier access.
         */
-
-#if defined(__mips64__)
-       dynp = (Elf_Dyn *)((long)_DYNAMIC + loff);
-#else
        dynp = dynamicp;
-#endif
 
        _dl_memset(&dynld, 0, sizeof(dynld));
        while (dynp->d_tag != DT_NULL) {
index c0c614c..30c78cf 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: md_init.h,v 1.13 2016/03/20 02:32:39 guenther Exp $ */
+/* $OpenBSD: md_init.h,v 1.14 2016/08/07 02:44:00 guenther Exp $ */
 
 /*-
  * Copyright (c) 2001 Ross Harvey
        "       dsubu   $s0, $ra, $s1           \n" \
        "       daddu   $a0, $sp, 160           \n" \
        "       daddu   $a1, $sp, 0             \n" \
+       "       dla     $a2, _DYNAMIC           \n" \
+       "       daddu   $a2, $s0                \n" \
        "       dla     $t9, _dl_boot_bind      \n" \
        "       daddu   $t9, $s0                \n" \
        "       jalr    $t9                     \n" \