From b9b2db2f374bce907fa5015c9cf63205054f2356 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 2 Apr 2014 19:32:57 -0400 Subject: [PATCH] add __sigsetjmp ABI-compat alias for sigsetjmp --- src/signal/arm/sigsetjmp.s | 3 +++ src/signal/i386/sigsetjmp.s | 3 +++ src/signal/microblaze/sigsetjmp.s | 3 +++ src/signal/mips/sigsetjmp.s | 3 +++ src/signal/powerpc/sigsetjmp.s | 3 +++ src/signal/sh/sigsetjmp.s | 5 ++++- src/signal/sigsetjmp.c | 3 +++ src/signal/x32/sigsetjmp.s | 3 +++ src/signal/x86_64/sigsetjmp.s | 3 +++ 9 files changed, 28 insertions(+), 1 deletion(-) 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 #include +#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 -- 2.25.1