[git commit] make use of jmpbuf-offsets.h and jmpbuf-unwind.h

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Fri Jun 15 12:00:23 UTC 2012


commit: http://git.uclibc.org/uClibc/commit/?id=14647468df0b45ecf15223ee6a14ae50304b1f11
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master

Signed-off-by: Peter S. Mazinger <ps.m at gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
---
 libc/sysdeps/linux/alpha/__longjmp.S      |    5 +---
 libc/sysdeps/linux/alpha/setjmp.S         |   35 +++++++++++++++--------------
 libc/sysdeps/linux/arm/__longjmp.S        |    4 ---
 libc/sysdeps/linux/cris/__longjmp.S       |    4 ---
 libc/sysdeps/linux/cris/setjmp.S          |    3 --
 libc/sysdeps/linux/frv/__longjmp.S        |    4 ---
 libc/sysdeps/linux/h8300/bsd-_setjmp.S    |    4 +--
 libc/sysdeps/linux/h8300/bsd-setjmp.S     |    4 +--
 libc/sysdeps/linux/h8300/setjmp.S         |    4 +--
 libc/sysdeps/linux/hppa/__longjmp.S       |    5 ----
 libc/sysdeps/linux/i386/__longjmp.S       |    5 +---
 libc/sysdeps/linux/i386/bsd-_setjmp.S     |    4 +--
 libc/sysdeps/linux/i386/bsd-setjmp.S      |    4 ---
 libc/sysdeps/linux/i386/setjmp.S          |    5 ----
 libc/sysdeps/linux/m68k/__longjmp.S       |    4 +--
 libc/sysdeps/linux/m68k/bsd-_setjmp.S     |    4 +--
 libc/sysdeps/linux/m68k/bsd-setjmp.S      |    4 +--
 libc/sysdeps/linux/m68k/setjmp.S          |    4 +--
 libc/sysdeps/linux/microblaze/__longjmp.S |    4 ---
 libc/sysdeps/linux/microblaze/setjmp.S    |    4 ---
 libc/sysdeps/linux/nios/__longjmp.S       |    6 +----
 libc/sysdeps/linux/nios/setjmp.S          |    5 +---
 libc/sysdeps/linux/nios2/__longjmp.S      |    4 +--
 libc/sysdeps/linux/nios2/bsd-_setjmp.S    |    4 +--
 libc/sysdeps/linux/nios2/bsd-setjmp.S     |    4 +--
 libc/sysdeps/linux/nios2/setjmp.S         |    4 +--
 libc/sysdeps/linux/powerpc/__longjmp.S    |    4 +--
 libc/sysdeps/linux/powerpc/setjmp.S       |    4 +--
 libc/sysdeps/linux/sh/__longjmp.S         |    3 --
 libc/sysdeps/linux/sh/setjmp.S            |    4 +--
 libc/sysdeps/linux/sparc/__longjmp.S      |    6 +----
 libc/sysdeps/linux/sparc/setjmp.S         |    5 +---
 libc/sysdeps/linux/v850/__longjmp.S       |    5 ----
 libc/sysdeps/linux/v850/setjmp.S          |    4 ---
 libc/sysdeps/linux/x86_64/__longjmp.S     |    5 +---
 libc/sysdeps/linux/x86_64/bsd-setjmp.S    |    5 ----
 libc/sysdeps/linux/x86_64/setjmp.S        |    5 +---
 libpthread/linuxthreads.old/ptlongjmp.c   |    1 +
 libpthread/linuxthreads/ptcleanup.c       |    2 +-
 39 files changed, 43 insertions(+), 151 deletions(-)

diff --git a/libc/sysdeps/linux/alpha/__longjmp.S b/libc/sysdeps/linux/alpha/__longjmp.S
index 910ec07..6871715 100644
--- a/libc/sysdeps/linux/alpha/__longjmp.S
+++ b/libc/sysdeps/linux/alpha/__longjmp.S
@@ -16,10 +16,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <features.h>
-#define _SETJMP_H
-#define __ASSEMBLY__
-#include <bits/setjmp.h>
+#include <setjmp-offsets.h>
 
 #define a0  $16
 
diff --git a/libc/sysdeps/linux/alpha/setjmp.S b/libc/sysdeps/linux/alpha/setjmp.S
index 105cc82..f037f7a 100644
--- a/libc/sysdeps/linux/alpha/setjmp.S
+++ b/libc/sysdeps/linux/alpha/setjmp.S
@@ -16,11 +16,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <features.h>
-#define _ASM
-#define _SETJMP_H
-#define __ASSEMBLY__
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 #define a0  $16
 
@@ -30,10 +26,16 @@ __sigsetjmp:
        ldgp    $29, 0($27)
 
 $sigsetjmp_local:
-       subq    $30, 16, $30
-       .frame  $26, 16, $26, 0
-       stq     $26, 0($30)
-       .mask   0x04000000, -16
+#ifndef __PIC__
+# define FRAME 16
+	subq    $30, FRAME, $30
+	.frame  $30, FRAME, $26, 0
+	stq     $26, 0($30)
+	.mask   0x04000000, -FRAME
+#else
+# define FRAME 0
+	.frame	$30, FRAME, $26, 0
+#endif
 	.prologue 1
 
 	stq	$9, JB_S0*8(a0)
@@ -43,9 +45,9 @@ $sigsetjmp_local:
 	stq	$13, JB_S4*8(a0)
 	stq	$14, JB_S5*8(a0)
 	stq	$26, JB_PC*8(a0)
-	addq	$30, 16, $1
-	stq	$15, JB_FP*8(a0)
+	addq	$30, FRAME, $1
 	stq	$1, JB_SP*8(a0)
+	stq	$15, JB_FP*8(a0)
 	stt	$f2, JB_F2*8(a0)
 	stt	$f3, JB_F3*8(a0)
 	stt	$f4, JB_F4*8(a0)
@@ -55,12 +57,16 @@ $sigsetjmp_local:
 	stt	$f8, JB_F8*8(a0)
 	stt	$f9, JB_F9*8(a0)
 
+#ifndef __PIC__
 	/* Call to C to (potentially) save our signal mask.  */
 	jsr	$26, __sigjmp_save
-
 	ldq	$26, 0($30)
 	addq	$30, 16, $30
 	ret
+#else
+	/* Tailcall to save the signal mask.  */
+	br	$31, __sigjmp_save	!samegp
+#endif
 
 .end __sigsetjmp
 
@@ -71,7 +77,6 @@ $sigsetjmp_local:
 .align 3;
 .ent  _setjmp , 0;
 _setjmp:
-	.frame $30 , 0, $26
 	ldgp	$29, 0($27)
 	mov	0, $17
 	br	$sigsetjmp_local
@@ -81,11 +86,7 @@ _setjmp:
 .align 3;
 .ent  setjmp , 0;
 setjmp:
-	.frame $30 , 0, $26
 	ldgp	$29, 0($27)
 	mov	1, $17
 	br	$sigsetjmp_local
 .end setjmp
-
-.weak   _setjmp
-.weak   setjmp
diff --git a/libc/sysdeps/linux/arm/__longjmp.S b/libc/sysdeps/linux/arm/__longjmp.S
index 5faf4ec..a3cb44c 100644
--- a/libc/sysdeps/linux/arm/__longjmp.S
+++ b/libc/sysdeps/linux/arm/__longjmp.S
@@ -19,10 +19,6 @@
 
 #include <features.h>
 #include <bits/arm_asm.h>
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
 
 .global __longjmp
 .type __longjmp,%function
diff --git a/libc/sysdeps/linux/cris/__longjmp.S b/libc/sysdeps/linux/cris/__longjmp.S
index 52a986f..8763c27 100644
--- a/libc/sysdeps/linux/cris/__longjmp.S
+++ b/libc/sysdeps/linux/cris/__longjmp.S
@@ -17,11 +17,7 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#include <features.h>
 #include "sysdep.h"
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
 
 	.syntax no_register_prefix
 
diff --git a/libc/sysdeps/linux/cris/setjmp.S b/libc/sysdeps/linux/cris/setjmp.S
index e7bb635..84fcbda 100644
--- a/libc/sysdeps/linux/cris/setjmp.S
+++ b/libc/sysdeps/linux/cris/setjmp.S
@@ -18,9 +18,6 @@
    Boston, MA 02111-1307, USA.  */
 
 #include "sysdep.h"
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
 
         .syntax no_register_prefix
 
diff --git a/libc/sysdeps/linux/frv/__longjmp.S b/libc/sysdeps/linux/frv/__longjmp.S
index c3145c8..d186ab1 100644
--- a/libc/sysdeps/linux/frv/__longjmp.S
+++ b/libc/sysdeps/linux/frv/__longjmp.S
@@ -4,10 +4,6 @@
  * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  */
 
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
 # setjmp/longjmp for Frv.  The jmpbuf looks like this:
 #	
 # Register	jmpbuf offset
diff --git a/libc/sysdeps/linux/h8300/bsd-_setjmp.S b/libc/sysdeps/linux/h8300/bsd-_setjmp.S
index e315058..fbe7025 100644
--- a/libc/sysdeps/linux/h8300/bsd-_setjmp.S
+++ b/libc/sysdeps/linux/h8300/bsd-_setjmp.S
@@ -1,8 +1,6 @@
 /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.  H8/300 version. */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 #ifdef __H8300S__
 	.h8300s
diff --git a/libc/sysdeps/linux/h8300/bsd-setjmp.S b/libc/sysdeps/linux/h8300/bsd-setjmp.S
index 9c35355..74ebb8f 100644
--- a/libc/sysdeps/linux/h8300/bsd-setjmp.S
+++ b/libc/sysdeps/linux/h8300/bsd-setjmp.S
@@ -1,8 +1,6 @@
 /* BSD `_setjmp' entry point to `sigsetjmp (..., 1)'.  H8/300 version. */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 #ifdef __H8300S__
 	.h8300s
diff --git a/libc/sysdeps/linux/h8300/setjmp.S b/libc/sysdeps/linux/h8300/setjmp.S
index 5e48767..f2795fa 100644
--- a/libc/sysdeps/linux/h8300/setjmp.S
+++ b/libc/sysdeps/linux/h8300/setjmp.S
@@ -1,6 +1,4 @@
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 #ifdef __H8300S__
 	.h8300s
diff --git a/libc/sysdeps/linux/hppa/__longjmp.S b/libc/sysdeps/linux/hppa/__longjmp.S
index 750863e..7534711 100644
--- a/libc/sysdeps/linux/hppa/__longjmp.S
+++ b/libc/sysdeps/linux/hppa/__longjmp.S
@@ -17,11 +17,6 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <features.h>
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
 /* __longjmp(jmpbuf, val) */
 
 	.text
diff --git a/libc/sysdeps/linux/i386/__longjmp.S b/libc/sysdeps/linux/i386/__longjmp.S
index e2809c0..cc333ea 100644
--- a/libc/sysdeps/linux/i386/__longjmp.S
+++ b/libc/sysdeps/linux/i386/__longjmp.S
@@ -17,10 +17,7 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#include <features.h>
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 .global __longjmp
 .type   __longjmp,%function
diff --git a/libc/sysdeps/linux/i386/bsd-_setjmp.S b/libc/sysdeps/linux/i386/bsd-_setjmp.S
index f3cd6cb..e794732 100644
--- a/libc/sysdeps/linux/i386/bsd-_setjmp.S
+++ b/libc/sysdeps/linux/i386/bsd-_setjmp.S
@@ -21,9 +21,7 @@
    We cannot do it in C because it must be a tail-call, so frame-unwinding
    in setjmp doesn't clobber the state restored by longjmp.  */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 .global _setjmp
 .type   _setjmp,%function
diff --git a/libc/sysdeps/linux/i386/bsd-setjmp.S b/libc/sysdeps/linux/i386/bsd-setjmp.S
index df46997..950b1f4 100644
--- a/libc/sysdeps/linux/i386/bsd-setjmp.S
+++ b/libc/sysdeps/linux/i386/bsd-setjmp.S
@@ -17,10 +17,6 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
-
 .global setjmp
 .type   setjmp,%function
 setjmp:
diff --git a/libc/sysdeps/linux/i386/setjmp.S b/libc/sysdeps/linux/i386/setjmp.S
index 20a6a0b..64b1503 100644
--- a/libc/sysdeps/linux/i386/setjmp.S
+++ b/libc/sysdeps/linux/i386/setjmp.S
@@ -17,11 +17,6 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
-
-
 .global __sigsetjmp
 .type   __sigsetjmp,%function
 
diff --git a/libc/sysdeps/linux/m68k/__longjmp.S b/libc/sysdeps/linux/m68k/__longjmp.S
index 5db9e43..f80c087 100644
--- a/libc/sysdeps/linux/m68k/__longjmp.S
+++ b/libc/sysdeps/linux/m68k/__longjmp.S
@@ -2,10 +2,8 @@
 /* Copyright (C) 2002, David McCullough <davidm at snapgear.com> */
 /* This file is released under the LGPL, any version you like */
 
-#define _ASM
-#define _SETJMP_H
 #include <features.h>
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 .globl __longjmp
 .type  __longjmp, at function
diff --git a/libc/sysdeps/linux/m68k/bsd-_setjmp.S b/libc/sysdeps/linux/m68k/bsd-_setjmp.S
index 0380c3d..cc472f7 100644
--- a/libc/sysdeps/linux/m68k/bsd-_setjmp.S
+++ b/libc/sysdeps/linux/m68k/bsd-_setjmp.S
@@ -2,9 +2,7 @@
 /* Copyright (C) 2002, David McCullough <davidm at snapgear.com> */
 /* This file is released under the LGPL, any version you like */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 .globl _setjmp;
 .type  _setjmp, at function
diff --git a/libc/sysdeps/linux/m68k/bsd-setjmp.S b/libc/sysdeps/linux/m68k/bsd-setjmp.S
index fdd7540..b41b4c1 100644
--- a/libc/sysdeps/linux/m68k/bsd-setjmp.S
+++ b/libc/sysdeps/linux/m68k/bsd-setjmp.S
@@ -2,9 +2,7 @@
 /* Copyright (C) 2002, David McCullough <davidm at snapgear.com> */
 /* This file is released under the LGPL, any version you like */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 #include "m68k_pic.S"
 
 .globl setjmp;
diff --git a/libc/sysdeps/linux/m68k/setjmp.S b/libc/sysdeps/linux/m68k/setjmp.S
index 4adda0a..b5bc6e0 100644
--- a/libc/sysdeps/linux/m68k/setjmp.S
+++ b/libc/sysdeps/linux/m68k/setjmp.S
@@ -2,9 +2,7 @@
 /* Copyright (C) 2002, David McCullough <davidm at snapgear.com> */
 /* This file is released under the LGPL, any version you like */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 #include "m68k_pic.S"
 
 .globl __sigsetjmp;
diff --git a/libc/sysdeps/linux/microblaze/__longjmp.S b/libc/sysdeps/linux/microblaze/__longjmp.S
index c4423be..c7fce34 100644
--- a/libc/sysdeps/linux/microblaze/__longjmp.S
+++ b/libc/sysdeps/linux/microblaze/__longjmp.S
@@ -12,10 +12,6 @@
  * Written by Miles Bader <miles at gnu.org>
  */
 
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
 #include <libc-symbols.h>
 
 	.text
diff --git a/libc/sysdeps/linux/microblaze/setjmp.S b/libc/sysdeps/linux/microblaze/setjmp.S
index d01c745..2e1e0d7 100644
--- a/libc/sysdeps/linux/microblaze/setjmp.S
+++ b/libc/sysdeps/linux/microblaze/setjmp.S
@@ -29,10 +29,6 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
 #include <libc-symbols.h>
 
 	.text
diff --git a/libc/sysdeps/linux/nios/__longjmp.S b/libc/sysdeps/linux/nios/__longjmp.S
index d7d1cdd..2340ecf 100644
--- a/libc/sysdeps/linux/nios/__longjmp.S
+++ b/libc/sysdeps/linux/nios/__longjmp.S
@@ -16,11 +16,7 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#include <features.h>
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
-
+#include <jmpbuf-offsets.h>
 
 ;----------------------------------------
 ;         Name: __longjmp
diff --git a/libc/sysdeps/linux/nios/setjmp.S b/libc/sysdeps/linux/nios/setjmp.S
index c285146..4731bb4 100644
--- a/libc/sysdeps/linux/nios/setjmp.S
+++ b/libc/sysdeps/linux/nios/setjmp.S
@@ -16,10 +16,7 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#include <features.h>
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 #include "NM_Macros.S"
 
 ;----------------------------------------
diff --git a/libc/sysdeps/linux/nios2/__longjmp.S b/libc/sysdeps/linux/nios2/__longjmp.S
index 4b6508e..7769773 100644
--- a/libc/sysdeps/linux/nios2/__longjmp.S
+++ b/libc/sysdeps/linux/nios2/__longjmp.S
@@ -12,9 +12,7 @@
  */
 
 #include <features.h>
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 .globl __longjmp
 .type  __longjmp, at function
diff --git a/libc/sysdeps/linux/nios2/bsd-_setjmp.S b/libc/sysdeps/linux/nios2/bsd-_setjmp.S
index ed4061c..ac101bd 100644
--- a/libc/sysdeps/linux/nios2/bsd-_setjmp.S
+++ b/libc/sysdeps/linux/nios2/bsd-_setjmp.S
@@ -11,9 +11,7 @@
  * 
  */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
    .globl _setjmp
    .type  _setjmp, at function
diff --git a/libc/sysdeps/linux/nios2/bsd-setjmp.S b/libc/sysdeps/linux/nios2/bsd-setjmp.S
index ac99bfe..aa2e64f 100644
--- a/libc/sysdeps/linux/nios2/bsd-setjmp.S
+++ b/libc/sysdeps/linux/nios2/bsd-setjmp.S
@@ -12,9 +12,7 @@
  */
 
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
    .globl setjmp
    .type  setjmp, at function
diff --git a/libc/sysdeps/linux/nios2/setjmp.S b/libc/sysdeps/linux/nios2/setjmp.S
index 8acd220..22b52d1 100644
--- a/libc/sysdeps/linux/nios2/setjmp.S
+++ b/libc/sysdeps/linux/nios2/setjmp.S
@@ -12,9 +12,7 @@
  */
 
 #include <features.h>
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 .globl __sigsetjmp
 .type  __sigsetjmp, at function
diff --git a/libc/sysdeps/linux/powerpc/__longjmp.S b/libc/sysdeps/linux/powerpc/__longjmp.S
index 765a873..846eca5 100644
--- a/libc/sysdeps/linux/powerpc/__longjmp.S
+++ b/libc/sysdeps/linux/powerpc/__longjmp.S
@@ -21,9 +21,7 @@
 
 #include <features.h>
 #include "ppc_asm.h"
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 
 #if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
diff --git a/libc/sysdeps/linux/powerpc/setjmp.S b/libc/sysdeps/linux/powerpc/setjmp.S
index 04b06d6..2c53744 100644
--- a/libc/sysdeps/linux/powerpc/setjmp.S
+++ b/libc/sysdeps/linux/powerpc/setjmp.S
@@ -21,9 +21,7 @@
 
 #include <features.h>
 #include "ppc_asm.h"
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 #if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
 #define FP(x...) x
diff --git a/libc/sysdeps/linux/sh/__longjmp.S b/libc/sysdeps/linux/sh/__longjmp.S
index eb56991..b4f2af8 100644
--- a/libc/sysdeps/linux/sh/__longjmp.S
+++ b/libc/sysdeps/linux/sh/__longjmp.S
@@ -17,9 +17,6 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
 #include <features.h>
 
 /* __longjmp(jmpbuf, val) */
diff --git a/libc/sysdeps/linux/sh/setjmp.S b/libc/sysdeps/linux/sh/setjmp.S
index 0a81424..31d1a35 100644
--- a/libc/sysdeps/linux/sh/setjmp.S
+++ b/libc/sysdeps/linux/sh/setjmp.S
@@ -18,9 +18,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <features.h>
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 	.text
 
diff --git a/libc/sysdeps/linux/sparc/__longjmp.S b/libc/sysdeps/linux/sparc/__longjmp.S
index c7d4f07..46619d1 100644
--- a/libc/sysdeps/linux/sparc/__longjmp.S
+++ b/libc/sysdeps/linux/sparc/__longjmp.S
@@ -16,12 +16,8 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <features.h>
-#include <sys/syscall.h>
+#include <jmpbuf-offsets.h>
 
-#define _ASM 1
-#define _SETJMP_H
-#include <bits/setjmp.h>
 #define ENV(base,reg) [%base + (reg * 4)]
 #define ST_FLUSH_WINDOWS 3
 #define RW_FP [%fp + 0x48]
diff --git a/libc/sysdeps/linux/sparc/setjmp.S b/libc/sysdeps/linux/sparc/setjmp.S
index 796abc7..7b9e4c8 100644
--- a/libc/sysdeps/linux/sparc/setjmp.S
+++ b/libc/sysdeps/linux/sparc/setjmp.S
@@ -16,11 +16,8 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <sys/syscall.h>
+#include <jmpbuf-offsets.h>
 
-#define _ASM 1
-#define _SETJMP_H
-#include <bits/setjmp.h>
 #define ST_FLUSH_WINDOWS 3
 
 .global _setjmp
diff --git a/libc/sysdeps/linux/v850/__longjmp.S b/libc/sysdeps/linux/v850/__longjmp.S
index fa29e0f..0996099 100644
--- a/libc/sysdeps/linux/v850/__longjmp.S
+++ b/libc/sysdeps/linux/v850/__longjmp.S
@@ -11,11 +11,6 @@
  * Written by Miles Bader <miles at gnu.org>
  */
 
-#include <features.h>
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
 #include <clinkage.h>
 
 	.text
diff --git a/libc/sysdeps/linux/v850/setjmp.S b/libc/sysdeps/linux/v850/setjmp.S
index 87a5e38..8bb3649 100644
--- a/libc/sysdeps/linux/v850/setjmp.S
+++ b/libc/sysdeps/linux/v850/setjmp.S
@@ -11,10 +11,6 @@
  * Written by Miles Bader <miles at gnu.org>
  */
 
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
 #include <clinkage.h>
 
 	.text
diff --git a/libc/sysdeps/linux/x86_64/__longjmp.S b/libc/sysdeps/linux/x86_64/__longjmp.S
index db2928b..4dc329b 100644
--- a/libc/sysdeps/linux/x86_64/__longjmp.S
+++ b/libc/sysdeps/linux/x86_64/__longjmp.S
@@ -16,10 +16,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <features.h>
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
+#include <jmpbuf-offsets.h>
 
 /* Jump to the position specified by ENV, causing the
    setjmp call there to return VAL, or 1 if VAL is 0.
diff --git a/libc/sysdeps/linux/x86_64/bsd-setjmp.S b/libc/sysdeps/linux/x86_64/bsd-setjmp.S
index 889efa6..8f68f5c 100644
--- a/libc/sysdeps/linux/x86_64/bsd-setjmp.S
+++ b/libc/sysdeps/linux/x86_64/bsd-setjmp.S
@@ -17,11 +17,6 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
-#include <sysdep.h>
-
 .global setjmp
 .type   setjmp,%function
 setjmp:
diff --git a/libc/sysdeps/linux/x86_64/setjmp.S b/libc/sysdeps/linux/x86_64/setjmp.S
index 3a0f30b..68c3e4d 100644
--- a/libc/sysdeps/linux/x86_64/setjmp.S
+++ b/libc/sysdeps/linux/x86_64/setjmp.S
@@ -17,10 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
-#include <sysdep.h>
+#include <jmpbuf-offsets.h>
 
 .global __sigsetjmp
 .type   __sigsetjmp,%function
diff --git a/libpthread/linuxthreads.old/ptlongjmp.c b/libpthread/linuxthreads.old/ptlongjmp.c
index c01b919..5cb7089 100644
--- a/libpthread/linuxthreads.old/ptlongjmp.c
+++ b/libpthread/linuxthreads.old/ptlongjmp.c
@@ -19,6 +19,7 @@
 #include "pthread.h"
 #include "internals.h"
 #include <bits/stackinfo.h>
+#include <jmpbuf-unwind.h>
 
 static void pthread_cleanup_upto(__jmp_buf target)
 {
diff --git a/libpthread/linuxthreads/ptcleanup.c b/libpthread/linuxthreads/ptcleanup.c
index 75bb7d5..88b9453 100644
--- a/libpthread/linuxthreads/ptcleanup.c
+++ b/libpthread/linuxthreads/ptcleanup.c
@@ -20,8 +20,8 @@
 #include <setjmp.h>
 #include "pthread.h"
 #include "internals.h"
-#ifndef NO_PTR_DEMANGLE
 #include <jmpbuf-unwind.h>
+#ifndef NO_PTR_DEMANGLE
 #define __JMPBUF_UNWINDS(a,b,c) _JMPBUF_UNWINDS(a,b,c)
 #else
 #define __JMPBUF_UNWINDS(a,b,c) _JMPBUF_UNWINDS(a,b)


More information about the uClibc-cvs mailing list