summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/signal/arm/sigsetjmp.s3
-rw-r--r--src/signal/i386/sigsetjmp.s3
-rw-r--r--src/signal/microblaze/sigsetjmp.s3
-rw-r--r--src/signal/mips/sigsetjmp.s3
-rw-r--r--src/signal/powerpc/sigsetjmp.s3
-rw-r--r--src/signal/sh/sigsetjmp.s5
-rw-r--r--src/signal/sigsetjmp.c3
-rw-r--r--src/signal/x32/sigsetjmp.s3
-rw-r--r--src/signal/x86_64/sigsetjmp.s3
9 files changed, 28 insertions, 1 deletions
diff --git a/src/signal/arm/sigsetjmp.s b/src/signal/arm/sigsetjmp.s
index acb0301e..0e7bcd49 100644
--- a/src/signal/arm/sigsetjmp.s
+++ b/src/signal/arm/sigsetjmp.s
@@ -1,6 +1,9 @@
.global sigsetjmp
+.global __sigsetjmp
.type sigsetjmp,%function
+.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 06e0a614..91c8c048 100644
--- a/src/signal/i386/sigsetjmp.s
+++ b/src/signal/i386/sigsetjmp.s
@@ -1,6 +1,9 @@
.global sigsetjmp
+.global __sigsetjmp
.type sigsetjmp,@function
+.type __sigsetjmp,@function
sigsetjmp:
+__sigsetjmp:
mov 4(%esp),%eax
mov 8(%esp),%ecx
mov %ecx,24(%eax)
diff --git a/src/signal/microblaze/sigsetjmp.s b/src/signal/microblaze/sigsetjmp.s
index be869d68..2a23d147 100644
--- a/src/signal/microblaze/sigsetjmp.s
+++ b/src/signal/microblaze/sigsetjmp.s
@@ -1,6 +1,9 @@
.global sigsetjmp
+.global __sigsetjmp
.type sigsetjmp,@function
+.type __sigsetjmp,@function
sigsetjmp:
+__sigsetjmp:
swi r6, r5, 72
beqi r6, setjmp@PLT
diff --git a/src/signal/mips/sigsetjmp.s b/src/signal/mips/sigsetjmp.s
index 502e0794..133ca777 100644
--- a/src/signal/mips/sigsetjmp.s
+++ b/src/signal/mips/sigsetjmp.s
@@ -1,8 +1,11 @@
.set noreorder
.global sigsetjmp
+.global __sigsetjmp
.type sigsetjmp,@function
+.type __sigsetjmp,@function
sigsetjmp:
+__sigsetjmp:
lui $gp, %hi(_gp_disp)
addiu $gp, %lo(_gp_disp)
beq $5, $0, 1f
diff --git a/src/signal/powerpc/sigsetjmp.s b/src/signal/powerpc/sigsetjmp.s
index d7d1af3b..461b7372 100644
--- a/src/signal/powerpc/sigsetjmp.s
+++ b/src/signal/powerpc/sigsetjmp.s
@@ -1,6 +1,9 @@
.global sigsetjmp
+ .global __sigsetjmp
.type sigsetjmp,%function
+ .type __sigsetjmp,%function
sigsetjmp:
+__sigsetjmp:
#int sigsetjmp(sigjmp_buf buf, int save)
# r3 r4
#0) store save into buf->__fl
diff --git a/src/signal/sh/sigsetjmp.s b/src/signal/sh/sigsetjmp.s
index f6cae801..7951f07e 100644
--- a/src/signal/sh/sigsetjmp.s
+++ b/src/signal/sh/sigsetjmp.s
@@ -1,6 +1,9 @@
.global sigsetjmp
-.type sigsetjmp, @function
+.global __sigsetjmp
+.type sigsetjmp,@function
+.type __sigsetjmp,@function
sigsetjmp:
+__sigsetjmp:
mov.l r5, @(36,r4)
tst r5, r5
bf 2f
diff --git a/src/signal/sigsetjmp.c b/src/signal/sigsetjmp.c
index cb2257f0..1bbe1a0b 100644
--- a/src/signal/sigsetjmp.c
+++ b/src/signal/sigsetjmp.c
@@ -1,5 +1,6 @@
#include <setjmp.h>
#include <signal.h>
+#include "libc.h"
/* !!! This function will not work unless the compiler performs
* tail call optimization. Machine-specific asm versions should
@@ -12,3 +13,5 @@ int sigsetjmp(sigjmp_buf buf, int save)
pthread_sigmask(SIG_SETMASK, 0, (sigset_t *)buf->__ss);
return setjmp(buf);
}
+
+weak_alias(sigsetjmp, __sigsetjmp);
diff --git a/src/signal/x32/sigsetjmp.s b/src/signal/x32/sigsetjmp.s
index dc38f032..17436f02 100644
--- a/src/signal/x32/sigsetjmp.s
+++ b/src/signal/x32/sigsetjmp.s
@@ -1,7 +1,10 @@
/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */
.global sigsetjmp
+.global __sigsetjmp
.type sigsetjmp,@function
+.type __sigsetjmp,@function
sigsetjmp:
+__sigsetjmp:
andl %esi,%esi
movq %rsi,64(%rdi)
jz 1f
diff --git a/src/signal/x86_64/sigsetjmp.s b/src/signal/x86_64/sigsetjmp.s
index dc38f032..17436f02 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
+.global __sigsetjmp
.type sigsetjmp,@function
+.type __sigsetjmp,@function
sigsetjmp:
+__sigsetjmp:
andl %esi,%esi
movq %rsi,64(%rdi)
jz 1f