diff --git a/src/signal/arm/sigsetjmp.s b/src/signal/arm/sigsetjmp.s index acb0301..654b6c6 100644 --- a/src/signal/arm/sigsetjmp.s +++ b/src/signal/arm/sigsetjmp.s @@ -1,6 +1,9 @@ .global sigsetjmp .type sigsetjmp,%function +.weak __sigsetjmp +.type __sigsetjmp,%function sigsetjmp: +__sigsetjmp: str a2,[a1,#256] tst a2,a2 beq setjmp diff --git a/src/signal/i386/sigsetjmp.s b/src/signal/i386/sigsetjmp.s index 06e0a61..7a53e19 100644 --- a/src/signal/i386/sigsetjmp.s +++ b/src/signal/i386/sigsetjmp.s @@ -1,6 +1,9 @@ .global sigsetjmp .type sigsetjmp,@function +.weak __sigsetjmp +.type __sigsetjmp,@function sigsetjmp: +__sigsetjmp: mov 4(%esp),%eax mov 8(%esp),%ecx mov %ecx,24(%eax) diff --git a/src/signal/mips/sigsetjmp.s b/src/signal/mips/sigsetjmp.s index ae9c542..de7328c 100644 --- a/src/signal/mips/sigsetjmp.s +++ b/src/signal/mips/sigsetjmp.s @@ -2,7 +2,10 @@ .global sigsetjmp .type sigsetjmp,@function +.weak __sigsetjmp +.type __sigsetjmp,@function sigsetjmp: +__sigsetjmp: lui $gp, %hi(_gp_disp) addiu $gp, %lo(_gp_disp) beq $5, $0, 1f diff --git a/src/signal/x86_64/sigsetjmp.s b/src/signal/x86_64/sigsetjmp.s index 94d7148..da0028b 100644 --- a/src/signal/x86_64/sigsetjmp.s +++ b/src/signal/x86_64/sigsetjmp.s @@ -1,7 +1,10 @@ /* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ .global sigsetjmp .type sigsetjmp,@function +.weak __sigsetjmp +.type __sigsetjmp,@function sigsetjmp: +__sigsetjmp: andl %esi,%esi movq %rsi,64(%rdi) jz 1f