> Date: Wed, 20 Jul 2016 20:59:55 +0200 > From: Philip Guenther <[email protected]> > > Updated diff: > - replace the remaining uses of PIC_SYM(CERROR,PLT) with plain CERROR
This bit looks ok to me > - add setjmp xor cookies > - switch _?(set|long)jmp from sigblock/sigsetmask to sigprocmask But it is simply too hot to grok larger chunks of arm assembly right now. > Index: lib/libc/arch/arm/DEFS.h > =================================================================== > RCS file: lib/libc/arch/arm/DEFS.h > diff -N lib/libc/arch/arm/DEFS.h > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ lib/libc/arch/arm/DEFS.h 18 Jul 2016 13:32:23 -0000 > @@ -0,0 +1,40 @@ > +/* $OpenBSD$ */ > +/* > + * Copyright (c) 2016 Philip Guenther <[email protected]> > + * > + * Permission to use, copy, modify, and distribute this software for any > + * purpose with or without fee is hereby granted, provided that the above > + * copyright notice and this permission notice appear in all copies. > + * > + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES > + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF > + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR > + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES > + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF > + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. > + */ > + > +#include <machine/asm.h> > + > +/* > + * We define a hidden alias with the prefix "_libc_" for each global symbol > + * that may be used internally. By referencing _libc_x instead of x, other > + * parts of libc prevent overriding by the application and avoid unnecessary > + * relocations. > + */ > +#define _HIDDEN(x) _libc_##x > +#define _HIDDEN_ALIAS(x,y) \ > + STRONG_ALIAS(_HIDDEN(x),y); \ > + .hidden _HIDDEN(x) > +#define _HIDDEN_FALIAS(x,y) \ > + _HIDDEN_ALIAS(x,y); \ > + .type _HIDDEN(x),#function > + > +/* > + * For functions implemented in ASM that aren't syscalls. > + * END_STRONG(x) Like DEF_STRONG() in C; for standard/reserved C names > + * END_WEAK(x) Like DEF_WEAK() in C; for non-ISO C names > + */ > +#define END_STRONG(x) END(x); _HIDDEN_FALIAS(x,x); END(_HIDDEN(x)) > +#define END_WEAK(x) END_STRONG(x); .weak x > Index: lib/libc/arch/arm/SYS.h > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/SYS.h,v > retrieving revision 1.15 > diff -u -p -r1.15 SYS.h > --- lib/libc/arch/arm/SYS.h 7 May 2016 19:05:21 -0000 1.15 > +++ lib/libc/arch/arm/SYS.h 19 Jul 2016 16:31:49 -0000 > @@ -35,33 +35,10 @@ > * from: @(#)SYS.h 5.5 (Berkeley) 5/7/91 > */ > > -#include <machine/asm.h> > +#include "DEFS.h" > #include <sys/syscall.h> > > > -/* > - * We define a hidden alias with the prefix "_libc_" for each global symbol > - * that may be used internally. By referencing _libc_x instead of x, other > - * parts of libc prevent overriding by the application and avoid unnecessary > - * relocations. > - */ > -#define _HIDDEN(x) _libc_##x > -#define _HIDDEN_ALIAS(x,y) \ > - STRONG_ALIAS(_HIDDEN(x),y); \ > - .hidden _HIDDEN(x) > -#define _HIDDEN_FALIAS(x,y) \ > - _HIDDEN_ALIAS(x,y); \ > - .type _HIDDEN(x),#function > - > -/* > - * For functions implemented in ASM that aren't syscalls. > - * END_STRONG(x) Like DEF_STRONG() in C; for standard/reserved C names > - * END_WEAK(x) Like DEF_WEAK() in C; for non-ISO C names > - */ > -#define END_STRONG(x) END(x); _HIDDEN_FALIAS(x,x); END(_HIDDEN(x)) > -#define END_WEAK(x) END_STRONG(x); .weak x > - > - > #define SYSENTRY(x) \ > .weak _C_LABEL(x); \ > _C_LABEL(x) = _C_LABEL(_thread_sys_ ## x); \ > @@ -90,10 +67,10 @@ > > #define _SYSCALL(x, y) > \ > _SYSCALL_NOERROR(x,y); \ > - bcs PIC_SYM(CERROR, PLT) > + bcs CERROR > #define _SYSCALL_HIDDEN(x, y) > \ > _SYSCALL_HIDDEN_NOERROR(x,y); \ > - bcs PIC_SYM(CERROR, PLT) > + bcs CERROR > > #define SYSCALL_NOERROR(x) \ > _SYSCALL_NOERROR(x,x) > Index: lib/libc/arch/arm/gen/_setjmp.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/gen/_setjmp.S,v > retrieving revision 1.3 > diff -u -p -r1.3 _setjmp.S > --- lib/libc/arch/arm/gen/_setjmp.S 23 May 2016 00:18:57 -0000 1.3 > +++ lib/libc/arch/arm/gen/_setjmp.S 21 Jul 2016 02:00:08 -0000 > @@ -33,9 +33,18 @@ > * SUCH DAMAGE. > */ > > -#include <machine/asm.h> > +#include "DEFS.h" > #include <machine/setjmp.h> > > + .section .openbsd.randomdata,"aw",%progbits > + .align 4 > + .globl __jmpxor > +__jmpxor: > + .zero 4*2 /* (sp, lr) */ > + END(__jmpxor) > + .type __jmpxor,%object > + > + > /* > * C library -- _setjmp, _longjmp > * > @@ -52,6 +61,13 @@ > ENTRY(_setjmp) > ldr r1, .L_setjmp_magic > str r1, [r0], #4 > + ldr r2, .L_jmpxor_setjmp > +1: add r2, pc, r2 /* r2 = &__jmpxor */ > + ldr r3, [r2], #4 /* r3 = __jmpxor[1] */ > + ldr r2, [r2] /* r2 = __jmpxor[0] */ > + eor r2, r13, r2 /* r2 = sp ^ __jmpxor[0] */ > + eor r3, lr, r3 /* r3 = lr ^ __jmpxor[1] */ > + > #ifdef SOFTFLOAT > add r0, r0, #52 > #else > @@ -62,13 +78,18 @@ ENTRY(_setjmp) > str r1, [r0], #0x0004 > #endif /* SOFTFLOAT */ > /* Store integer registers */ > - stmia r0, {r4-r14} > + stmia r0, {r2-r11} > > - mov r0, #0x00000000 > - mov r15, r14 > + mov r0, #0x00000000 > + mov r2, r0 /* overwrite __jmpxor copies */ > + mov r3, r0 > + mov pc, lr > > .L_setjmp_magic: > .word _JB_MAGIC__SETJMP > +.L_jmpxor_setjmp: > + .word __jmpxor - 1b > +END_STRONG(_setjmp) > > ENTRY(_longjmp) > ldr r2, .L_setjmp_magic > @@ -85,21 +106,34 @@ ENTRY(_longjmp) > ldr r4, [r0], #0x0004 > wfs r4 > #endif /* SOFTFLOAT */ > - /* Restore integer registers */ > - ldmia r0, {r4-r14} > + /* Restore integer registers */ > + ldmia r0, {r2-r11} > > - /* Validate sp and r14 */ > + ldr r0, .L_jmpxor_longjmp > +1: add r0, pc, r0 /* r0 = &__jmpxor */ > + ldr lr, [r0], #4 /* lr = __jmpxor[1] */ > + eor lr, r3, lr /* lr ^= jmpbuf[LR] */ > + ldr r0, [r0] /* r0 = __jmpxor[0] */ > + eor r13, r0, r2 /* sp = __jmpxor[0] ^ jmpbuf[SP] */ > + mov r2, r1 /* overwrite __jmpxor copies */ > + mov r3, r1 > + > + /* Validate sp and lr */ > teq sp, #0 > - teqne r14, #0 > + teqne lr, #0 > beq botch > > /* Set return value */ > mov r0, r1 > teq r0, #0x00000000 > moveq r0, #0x00000001 > - mov r15, r14 > + mov pc, lr > + > +.L_jmpxor_longjmp: > + .word __jmpxor - 1b > > /* validation failed, die die die. */ > botch: > - bl PIC_SYM(_libc_abort, PLT) > + bl _HIDDEN(abort) > b . - 8 /* Cannot get here */ > +END_STRONG(_longjmp) > Index: lib/libc/arch/arm/gen/divsi3.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/gen/divsi3.S,v > retrieving revision 1.2 > diff -u -p -r1.2 divsi3.S > --- lib/libc/arch/arm/gen/divsi3.S 1 Feb 2004 05:40:52 -0000 1.2 > +++ lib/libc/arch/arm/gen/divsi3.S 18 Jul 2016 13:34:56 -0000 > @@ -15,7 +15,7 @@ > * SUCH DAMAGE. > */ > > -#include <machine/asm.h> > +#include "DEFS.h" > > /* > * stack is aligned as there's a possibility of branching to .L_overflow > @@ -41,7 +41,7 @@ ENTRY(__modsi3) > .L_overflow: > #if !defined(_KERNEL) && !defined(_STANDALONE) > mov r0, #8 /* SIGFPE */ > - bl PIC_SYM(_C_LABEL(raise), PLT) /* raise it */ > + bl _HIDDEN(raise) /* raise it */ > mov r0, #0 > #else > /* XXX should cause a fatal error */ > Index: lib/libc/arch/arm/gen/setjmp.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/gen/setjmp.S,v > retrieving revision 1.4 > diff -u -p -r1.4 setjmp.S > --- lib/libc/arch/arm/gen/setjmp.S 23 May 2016 00:18:57 -0000 1.4 > +++ lib/libc/arch/arm/gen/setjmp.S 21 Jul 2016 03:48:41 -0000 > @@ -33,9 +33,11 @@ > * SUCH DAMAGE. > */ > > -#include <machine/asm.h> > +#include "SYS.h" > #include <machine/setjmp.h> > > + .hidden __jmpxor > + > /* > * C library -- setjmp, longjmp > * > @@ -48,36 +50,46 @@ > > ENTRY(setjmp) > /* Block all signals and retrieve the old signal mask */ > - stmfd sp!, {r0, r14} > - mov r0, #0x00000000 > - > - bl PIC_SYM(_C_LABEL(_libc_sigblock), PLT) > - mov r1, r0 > - > - ldmfd sp!, {r0, r14} > + mov r2, r0 > + mov r1, #0x00000000 > + mov r0, #0x00000001 /* SIG_BLOCK */ > + SYSTRAP(sigprocmask) > > /* Store signal mask */ > - str r1, [r0, #(25 * 4)] > + str r0, [r2, #(25 * 4)] > > ldr r1, .Lsetjmp_magic > - str r1, [r0], #4 > + str r1, [r2], #4 > + > + ldr r12, .L_jmpxor_setjmp > +1: add r12, pc, r12 /* r12 = &__jmpxor */ > + ldr r3, [r12], #4 /* r3 = __jmpxor[1] */ > + ldr r12, [r12] /* r12 = __jmpxor[0] */ > + eor r12, r13, r12 /* r12 = sp ^ __jmpxor[0] */ > + eor r3, lr, r3 /* r3 = lr ^ __jmpxor[1] */ > > #ifdef SOFTFLOAT > - add r0, r0, #52 > + add r2, r2, #52 > #else > /* Store fp registers */ > - sfm f4, 4, [r0], #48 > + sfm f4, 4, [r2], #48 > /* Store fpsr */ > rfs r1 > - str r1, [r0], #0x0004 > + str r1, [r2], #0x0004 > #endif /*SOFTFLOAT*/ > /* Store integer registers */ > - stmia r0, {r4-r14} > - mov r0, #0x00000000 > - mov r15, r14 > + stmia r2, {r3-r12} > + > + mov r0, #0x00000000 > + mov r12, r0 /* overwrite __jmpxor copies */ > + mov r3, r0 > + mov pc, lr > > .Lsetjmp_magic: > .word _JB_MAGIC_SETJMP > +.L_jmpxor_setjmp: > + .word __jmpxor - 1b > +END_STRONG(setjmp) > > > ENTRY(longjmp) > @@ -86,49 +98,51 @@ ENTRY(longjmp) > teq r2, r3 > bne botch > > - /* Fetch signal mask */ > - ldr r2, [r0, #(25 * 4)] > + /* Fetch signal mask and call sigprocmask */ > + mov r3, r0 /* r3 = jmpbuf */ > + mov r2, r1 /* r2 = retvalue */ > + ldr r1, [r0, #(25 * 4)] > + mov r0, #0x00000003 /* SIG_SETMASK */ > + SYSTRAP(sigprocmask) > > - /* Set signal mask */ > - stmfd sp!, {r0, r1, r14} > - sub sp, sp, #4 /* align the stack */ > - > - mov r0, r2 > - bl PIC_SYM(_C_LABEL(_libc_sigsetmask), PLT) > - > - add sp, sp, #4 /* unalign the stack */ > - ldmfd sp!, {r0, r1, r14} > - > - add r0, r0, #4 > + add r3, r3, #4 > #ifdef SOFTFLOAT > - add r0, r0, #52 > + add r3, r3, #52 > #else > /* Restore fp registers */ > - lfm f4, 4, [r0], #48 > + lfm f4, 4, [r3], #48 > /* Restore FPSR */ > - ldr r4, [r0], #0x0004 > + ldr r4, [r3], #0x0004 > wfs r4 > #endif /* SOFTFLOAT */ > /* Restore integer registers */ > - ldmia r0, {r4-r14} > + ldmia r3, {r3-r12} > + > + ldr r0, .L_jmpxor_longjmp > +1: add r0, pc, r0 /* r0 = &__jmpxor */ > + ldr lr, [r0], #4 /* lr = __jmpxor[1] */ > + eor lr, r3, lr /* lr ^= jmpbuf[LR] */ > + ldr r0, [r0] /* r0 = __jmpxor[0] */ > + eor r13, r0, r12 /* sp = __jmpxor[0] ^ jmpbuf[SP] */ > + mov r12, r2 /* overwrite __jmpxor copies */ > + mov r3, r2 > > - /* Validate sp and r14 */ > + /* Validate sp and lr */ > teq sp, #0 > - teqne r14, #0 > + teqne lr, #0 > beq botch > > /* Set return value */ > - > - mov r0, r1 > + mov r0, r12 > teq r0, #0x00000000 > moveq r0, #0x00000001 > -#ifdef __ARM_26__ > - mov r15, r14 > -#else > - mov r15, r14 > -#endif > + mov pc, lr > + > +.L_jmpxor_longjmp: > + .word __jmpxor - 1b > > /* validation failed, die die die. */ > botch: > - bl PIC_SYM(_libc_abort, PLT) > + bl _HIDDEN(abort) > b . - 8 /* Cannot get here */ > +END_STRONG(longjmp) > Index: lib/libc/arch/arm/gen/sigsetjmp.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/gen/sigsetjmp.S,v > retrieving revision 1.2 > diff -u -p -r1.2 sigsetjmp.S > --- lib/libc/arch/arm/gen/sigsetjmp.S 1 Feb 2004 05:40:52 -0000 1.2 > +++ lib/libc/arch/arm/gen/sigsetjmp.S 18 Jul 2016 13:34:19 -0000 > @@ -33,7 +33,7 @@ > * SUCH DAMAGE. > */ > > -#include <machine/asm.h> > +#include "DEFS.h" > #include <machine/setjmp.h> > > /* > @@ -48,8 +48,8 @@ > > ENTRY(sigsetjmp) > teq r1, #0 > - beq PIC_SYM(_C_LABEL(_setjmp), PLT) > - b PIC_SYM(_C_LABEL(setjmp), PLT) > + beq _HIDDEN(_setjmp) > + b _HIDDEN(setjmp) > > .L_setjmp_magic: > .word _JB_MAGIC__SETJMP > @@ -58,5 +58,5 @@ ENTRY(siglongjmp) > ldr r2, .L_setjmp_magic > ldr r3, [r0] > teq r2, r3 > - beq PIC_SYM(_C_LABEL(_longjmp), PLT) > - b PIC_SYM(_C_LABEL(longjmp), PLT) > + beq _HIDDEN(_longjmp) > + b _HIDDEN(longjmp) > Index: lib/libc/arch/arm/string/_memcpy.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/string/_memcpy.S,v > retrieving revision 1.5 > diff -u -p -r1.5 _memcpy.S > --- lib/libc/arch/arm/string/_memcpy.S 31 Aug 2015 02:53:56 -0000 > 1.5 > +++ lib/libc/arch/arm/string/_memcpy.S 18 Jul 2016 13:37:23 -0000 > @@ -30,7 +30,7 @@ > * POSSIBILITY OF SUCH DAMAGE. > */ > > -#include "SYS.h" > +#include "DEFS.h" > > /* > * This is one fun bit of code ... > @@ -462,4 +462,4 @@ ENTRY(_memcpy) > .Lmemcpy_bsrcul1l4: > add r1, r1, #1 > b .Lmemcpy_bl4 > -END(_memcpy) > +END_STRONG(_memcpy) > Index: lib/libc/arch/arm/string/bcopy.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/string/bcopy.S,v > retrieving revision 1.4 > diff -u -p -r1.4 bcopy.S > --- lib/libc/arch/arm/string/bcopy.S 31 Aug 2015 02:53:56 -0000 1.4 > +++ lib/libc/arch/arm/string/bcopy.S 18 Jul 2016 13:36:20 -0000 > @@ -30,7 +30,7 @@ > * POSSIBILITY OF SUCH DAMAGE. > */ > > -#include "SYS.h" > +#include "DEFS.h" > > /* bcopy = memcpy/memmove with arguments reversed. */ > > @@ -39,5 +39,5 @@ ENTRY(bcopy) > eor r0, r1, r0 > eor r1, r0, r1 > eor r0, r1, r0 > - b PIC_SYM(_C_LABEL(_memcpy), PLT) > + b _HIDDEN(_memcpy) > END_WEAK(bcopy) > Index: lib/libc/arch/arm/string/bzero.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/string/bzero.S,v > retrieving revision 1.4 > diff -u -p -r1.4 bzero.S > --- lib/libc/arch/arm/string/bzero.S 31 Aug 2015 02:53:56 -0000 1.4 > +++ lib/libc/arch/arm/string/bzero.S 18 Jul 2016 13:36:28 -0000 > @@ -30,10 +30,10 @@ > * POSSIBILITY OF SUCH DAMAGE. > */ > > -#include "SYS.h" > +#include "DEFS.h" > > ENTRY(bzero) > mov r2, r1 > mov r1, #0 > - b PIC_SYM(_C_LABEL(memset), PLT) > + b _HIDDEN(memset) > END_WEAK(bzero) > Index: lib/libc/arch/arm/string/ffs.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/string/ffs.S,v > retrieving revision 1.4 > diff -u -p -r1.4 ffs.S > --- lib/libc/arch/arm/string/ffs.S 31 Aug 2015 02:53:56 -0000 1.4 > +++ lib/libc/arch/arm/string/ffs.S 18 Jul 2016 13:37:24 -0000 > @@ -29,7 +29,7 @@ > * SUCH DAMAGE. > */ > > -#include "SYS.h" > +#include "DEFS.h" > > /* > * ffs - find first set bit, this algorithm isolates the first set > Index: lib/libc/arch/arm/string/memcmp.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/string/memcmp.S,v > retrieving revision 1.5 > diff -u -p -r1.5 memcmp.S > --- lib/libc/arch/arm/string/memcmp.S 31 Aug 2015 02:53:56 -0000 1.5 > +++ lib/libc/arch/arm/string/memcmp.S 18 Jul 2016 13:37:27 -0000 > @@ -29,7 +29,7 @@ > * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > */ > > -#include "SYS.h" > +#include "DEFS.h" > > ENTRY(memcmp) > /* if (len == 0) return 0 */ > Index: lib/libc/arch/arm/string/memcpy.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/string/memcpy.S,v > retrieving revision 1.5 > diff -u -p -r1.5 memcpy.S > --- lib/libc/arch/arm/string/memcpy.S 31 Aug 2015 02:53:56 -0000 1.5 > +++ lib/libc/arch/arm/string/memcpy.S 18 Jul 2016 13:36:42 -0000 > @@ -30,7 +30,7 @@ > * POSSIBILITY OF SUCH DAMAGE. > */ > > -#include "SYS.h" > +#include "DEFS.h" > > /* > * XXX > @@ -40,6 +40,6 @@ > > ENTRY(memcpy) > stmfd sp!, {r0, lr} > - bl PIC_SYM(_C_LABEL(_memcpy), PLT) > + bl _HIDDEN(_memcpy) > ldmfd sp!, {r0, pc} > END_STRONG(memcpy) > Index: lib/libc/arch/arm/string/memmove.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/string/memmove.S,v > retrieving revision 1.4 > diff -u -p -r1.4 memmove.S > --- lib/libc/arch/arm/string/memmove.S 31 Aug 2015 02:53:56 -0000 > 1.4 > +++ lib/libc/arch/arm/string/memmove.S 18 Jul 2016 13:37:00 -0000 > @@ -30,10 +30,10 @@ > * POSSIBILITY OF SUCH DAMAGE. > */ > > -#include "SYS.h" > +#include "DEFS.h" > > ENTRY(memmove) > stmfd sp!, {r0, lr} > - bl PIC_SYM(_C_LABEL(_memcpy), PLT) > + bl _HIDDEN(_memcpy) > ldmfd sp!, {r0, pc} > END_STRONG(memmove) > Index: lib/libc/arch/arm/string/memset.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/string/memset.S,v > retrieving revision 1.4 > diff -u -p -r1.4 memset.S > --- lib/libc/arch/arm/string/memset.S 31 Aug 2015 02:53:56 -0000 1.4 > +++ lib/libc/arch/arm/string/memset.S 18 Jul 2016 13:37:29 -0000 > @@ -33,7 +33,7 @@ > * SUCH DAMAGE. > */ > > -#include "SYS.h" > +#include "DEFS.h" > > /* > * Sets a block of memory to the specified value > Index: lib/libc/arch/arm/string/strcmp.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/string/strcmp.S,v > retrieving revision 1.4 > diff -u -p -r1.4 strcmp.S > --- lib/libc/arch/arm/string/strcmp.S 31 Aug 2015 02:53:56 -0000 1.4 > +++ lib/libc/arch/arm/string/strcmp.S 18 Jul 2016 13:37:30 -0000 > @@ -29,7 +29,7 @@ > * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > */ > > -#include "SYS.h" > +#include "DEFS.h" > > ENTRY(strcmp) > 1: > Index: lib/libc/arch/arm/string/strncmp.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/string/strncmp.S,v > retrieving revision 1.5 > diff -u -p -r1.5 strncmp.S > --- lib/libc/arch/arm/string/strncmp.S 31 Aug 2015 02:53:56 -0000 > 1.5 > +++ lib/libc/arch/arm/string/strncmp.S 18 Jul 2016 13:37:32 -0000 > @@ -29,7 +29,7 @@ > * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > */ > > -#include "SYS.h" > +#include "DEFS.h" > > ENTRY(strncmp) > /* if (len == 0) return 0 */ > Index: lib/libc/arch/arm/sys/Ovfork.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/sys/Ovfork.S,v > retrieving revision 1.6 > diff -u -p -r1.6 Ovfork.S > --- lib/libc/arch/arm/sys/Ovfork.S 7 May 2016 19:05:21 -0000 1.6 > +++ lib/libc/arch/arm/sys/Ovfork.S 19 Jul 2016 16:32:02 -0000 > @@ -40,6 +40,6 @@ > SYSENTRY_HIDDEN(vfork) > mov r2, r14 > SYSTRAP(vfork) > - bcs PIC_SYM(CERROR, PLT) > + bcs CERROR > mov r15, r2 > SYSCALL_END_HIDDEN(vfork) > Index: lib/libc/arch/arm/sys/brk.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/sys/brk.S,v > retrieving revision 1.8 > diff -u -p -r1.8 brk.S > --- lib/libc/arch/arm/sys/brk.S 30 May 2016 05:18:52 -0000 1.8 > +++ lib/libc/arch/arm/sys/brk.S 19 Jul 2016 16:32:22 -0000 > @@ -71,7 +71,7 @@ ENTRY(brk) > movcc r0, r1 > mov r2, r0 > SYSTRAP(break) > - bcs PIC_SYM(CERROR, PLT) > + bcs CERROR > > #ifdef __PIC__ > ldr r1, .Lcurbrk > Index: lib/libc/arch/arm/sys/cerror.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/sys/cerror.S,v > retrieving revision 1.8 > diff -u -p -r1.8 cerror.S > --- lib/libc/arch/arm/sys/cerror.S 7 May 2016 19:05:21 -0000 1.8 > +++ lib/libc/arch/arm/sys/cerror.S 18 Jul 2016 13:47:26 -0000 > @@ -37,7 +37,7 @@ > _ENTRY(CERROR) > stmfd sp!, {r4, lr} > mov r4, r0 > - bl PIC_SYM(_C_LABEL(__errno), PLT) > + bl _HIDDEN(__errno) > str r4, [r0] > mvn r0, #0x00000000 > mvn r1, #0x00000000 > Index: lib/libc/arch/arm/sys/sbrk.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/sys/sbrk.S,v > retrieving revision 1.8 > diff -u -p -r1.8 sbrk.S > --- lib/libc/arch/arm/sys/sbrk.S 30 May 2016 05:18:52 -0000 1.8 > +++ lib/libc/arch/arm/sys/sbrk.S 19 Jul 2016 16:32:29 -0000 > @@ -67,7 +67,7 @@ ENTRY(sbrk) > mov r3, r0 > add r0, r0, r1 > SYSTRAP(break) > - bcs PIC_SYM(CERROR, PLT) > + bcs CERROR > > /* Store new curbrk value */ > ldr r0, [r2] > Index: lib/libc/arch/arm/sys/sigpending.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/sys/sigpending.S,v > retrieving revision 1.4 > diff -u -p -r1.4 sigpending.S > --- lib/libc/arch/arm/sys/sigpending.S 10 Sep 2015 13:29:09 -0000 > 1.4 > +++ lib/libc/arch/arm/sys/sigpending.S 19 Jul 2016 16:32:39 -0000 > @@ -37,7 +37,7 @@ > SYSENTRY(sigpending) > mov r2, r0 > SYSTRAP(sigpending) > - bcs PIC_SYM(CERROR, PLT) > + bcs CERROR > str r0, [r2] > mov r0, #0x00000000 > mov r15, r14 > Index: lib/libc/arch/arm/sys/sigprocmask.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/sys/sigprocmask.S,v > retrieving revision 1.4 > diff -u -p -r1.4 sigprocmask.S > --- lib/libc/arch/arm/sys/sigprocmask.S 23 Oct 2015 04:39:24 -0000 > 1.4 > +++ lib/libc/arch/arm/sys/sigprocmask.S 19 Jul 2016 16:32:43 -0000 > @@ -40,7 +40,7 @@ SYSENTRY_HIDDEN(sigprocmask) > moveq r1, #0x00000000 > ldrne r1, [r1] > SYSTRAP(sigprocmask) > - bcs PIC_SYM(CERROR, PLT) > + bcs CERROR > teq r2, #0x00000000 > strne r0, [r2] > mov r0, #0x00000000 > Index: lib/libc/arch/arm/sys/sigsuspend.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/sys/sigsuspend.S,v > retrieving revision 1.5 > diff -u -p -r1.5 sigsuspend.S > --- lib/libc/arch/arm/sys/sigsuspend.S 7 May 2016 19:05:21 -0000 > 1.5 > +++ lib/libc/arch/arm/sys/sigsuspend.S 19 Jul 2016 16:32:46 -0000 > @@ -37,7 +37,7 @@ > SYSENTRY_HIDDEN(sigsuspend) > ldr r0, [r0] > SYSTRAP(sigsuspend) > - bcs PIC_SYM(CERROR, PLT) > + bcs CERROR > mov r0, #0x00000000 > mov r15, r14 > SYSCALL_END_HIDDEN(sigsuspend) > Index: lib/libc/arch/arm/sys/tfork_thread.S > =================================================================== > RCS file: /data/src/openbsd/src/lib/libc/arch/arm/sys/tfork_thread.S,v > retrieving revision 1.3 > diff -u -p -r1.3 tfork_thread.S > --- lib/libc/arch/arm/sys/tfork_thread.S 10 Sep 2015 13:29:09 -0000 > 1.3 > +++ lib/libc/arch/arm/sys/tfork_thread.S 19 Jul 2016 16:33:04 -0000 > @@ -25,7 +25,7 @@ > > ENTRY(__tfork_thread) > SYSTRAP(__tfork) > - bcs 1f /* XXX can this be PIC_SYM(CERROR, PLT) ? */ > + bcs CERROR > > /* check if we are parent or child */ > cmp r0, #0 > @@ -37,6 +37,4 @@ ENTRY(__tfork_thread) > mov pc, r2 > nop > SYSTRAP(__threxit) > -1: > - b PIC_SYM(CERROR, PLT) > END(__tfork_thread) > >
