From 4307ecf18174b4318a283db66ff740721fa09712 Mon Sep 17 00:00:00 2001 From: guenther Date: Mon, 18 Jul 2016 08:43:16 +0000 Subject: [PATCH] Polish: - copy #define workaround from mips64 to avoid dangling __CERROR symbol - remove trap DL_SYSCALL2_NOERR() macro with comment explanation - make DL_SYSCALL2() self-contained - add END() and ENTRY() macros to make the symbol table shine ok miod@ --- libexec/ld.so/m88k/ldasm.S | 62 +++++++++----------------------------- 1 file changed, 15 insertions(+), 47 deletions(-) diff --git a/libexec/ld.so/m88k/ldasm.S b/libexec/ld.so/m88k/ldasm.S index be80860deda..aff65751b54 100644 --- a/libexec/ld.so/m88k/ldasm.S +++ b/libexec/ld.so/m88k/ldasm.S @@ -1,4 +1,4 @@ -/* $OpenBSD: ldasm.S,v 1.21 2016/07/18 04:35:57 guenther Exp $ */ +/* $OpenBSD: ldasm.S,v 1.22 2016/07/18 08:43:16 guenther Exp $ */ /* * Copyright (c) 2013 Miodrag Vallat. @@ -43,6 +43,7 @@ #include #include +#define __cerror _dl_cerror #include /* @@ -149,86 +150,53 @@ ENTRY(_dl_bind_start) jmp.n %r11 addu %r31, %r31, REG_SIZE + PLT_FRAME_SIZE +END(_dl_bind_start) /* ld.so SYSCALLS */ +/* + * m88k syscall return ABI requires the same amount of ASM + * whether or not the syscall can possibly fail, so there's + * no benefit to a DL_SYSCALL_NOERR() macro. + */ #define DL_SYSCALL(n) DL_SYSCALL2(n,n) #define DL_SYSCALL2(n,c) \ __ENTRY(_dl_,n); \ __DO_SYSCALL(c); \ - br _dl_cerror - -#define DL_SYSCALL2_NOERR(n,c) \ - __ENTRY(_dl_,n); \ - __DO_SYSCALL(c) - -DL_SYSCALL(close) - jmp %r1 + br _dl_cerror; \ + jmp %r1; \ + END(_dl_##n) ENTRY(_dl_exit) __DO_SYSCALL(exit) 1: br 1b +END(_dl_exit) +DL_SYSCALL(close) DL_SYSCALL(issetugid) - jmp %r1 - DL_SYSCALL(getthrid) - jmp %r1 - DL_SYSCALL2(_syscall,__syscall) - jmp %r1 - DL_SYSCALL(munmap) - jmp %r1 - DL_SYSCALL(mprotect) - jmp %r1 - DL_SYSCALL(open) - jmp %r1 - DL_SYSCALL(read) - jmp %r1 - DL_SYSCALL(write) - jmp %r1 - DL_SYSCALL(fstat) - jmp %r1 - DL_SYSCALL(gettimeofday) - jmp %r1 - DL_SYSCALL(readlink) - jmp %r1 - DL_SYSCALL(lstat) - jmp %r1 - DL_SYSCALL(utrace) - jmp %r1 - DL_SYSCALL(getentropy) - jmp %r1 - DL_SYSCALL(sendsyslog) - jmp %r1 - DL_SYSCALL(pledge) - jmp %r1 - DL_SYSCALL2(getcwd,__getcwd) - jmp %r1 - DL_SYSCALL(sysctl) - jmp %r1 - DL_SYSCALL(getdents) - jmp %r1 -_dl_cerror: +ENTRY(_dl_cerror) jmp.n %r1 subu %r2, %r0, %r2 +END(_dl_cerror) ENTRY(_dl_cacheflush) tb0 0, %r0, 451 -- 2.20.1