This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: __setjmp


Ulrich Drepper <drepper@redhat.com> writes:

|> Andreas Schwab <schwab@suse.de> writes:
|> 
|> > Many setjmp implementations define __setjmp as some kind of binary
|> > compatibility entry point, but this is never exported.  Should this be
|> > removed?
|> 
|> Probably.  It's not usable and therefore not needed.

OK, here is a patch.  OK to commit?

Andreas.

2000-11-21  Andreas Schwab  <schwab@suse.de>

	* sysdeps/alpha/setjmp.S: Remove __setjmp entry point.
	* sysdeps/arm/setjmp.S: Likewise.
	* sysdeps/arm/fpu/setjmp.S: Likewise.
	* sysdeps/i386/setjmp.S: Likewise.
	* sysdeps/i386/elf/setjmp.S: Likewise.
	* sysdeps/s390/setjmp.S: Likewise.
	* sysdeps/s390/elf/setjmp.S: Likewise.
	* sysdeps/sh/sh3/setjmp.S: Likewise.
	* sysdeps/sh/sh4/setjmp.S: Likewise.
	* sysdeps/sparc/sparc32/setjmp.S: Likewise.
	* sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setjmp.c: Removed.

Index: sysdeps/alpha/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/alpha/setjmp.S,v
retrieving revision 1.14
diff -u -a -r1.14 sysdeps/alpha/setjmp.S
--- sysdeps/alpha/setjmp.S	1997/12/01 17:09:25	1.14
+++ sysdeps/alpha/setjmp.S	2000/11/21 15:04:01
@@ -72,11 +72,11 @@
 /* Put these traditional entry points in the same file so that we can
    elide much of the nonsense in trying to jmp to the real function.  */
 
-ENTRY(__setjmp)
+ENTRY(_setjmp)
 	ldgp	gp, 0(pv)
 	mov	0, a1
 	br	$sigsetjmp_local
-END(__setjmp)
+END(_setjmp)
 
 ENTRY(setjmp)
 	ldgp	gp, 0(pv)
@@ -84,5 +84,5 @@
 	br	$sigsetjmp_local
 END(setjmp)
 
-weak_alias(__setjmp, _setjmp)
+weak_extern(_setjmp)
 weak_extern(setjmp)
Index: sysdeps/arm/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/arm/setjmp.S,v
retrieving revision 1.4
diff -u -a -r1.4 sysdeps/arm/setjmp.S
--- sysdeps/arm/setjmp.S	1998/03/18 14:29:20	1.4
+++ sysdeps/arm/setjmp.S	2000/11/21 15:04:01
@@ -22,13 +22,10 @@
 #define _ASM
 #include <bits/setjmp.h>
 
-	/* Binary compatibility entry point.  */
-ENTRY (__setjmp)
-	mov	r1, #0
 ENTRY (__sigsetjmp)
 	/* Save registers */
 	stmia	r0, {v1-v6, sl, fp, sp, lr}
 
 	/* Make a tail call to __sigjmp_save; it takes the same args.  */
 	B	PLTJMP(C_SYMBOL_NAME(__sigjmp_save))
-END (__setjmp)
+END (__sigsetjmp)
Index: sysdeps/arm/fpu/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/arm/fpu/setjmp.S,v
retrieving revision 1.2
diff -u -a -r1.2 sysdeps/arm/fpu/setjmp.S
--- sysdeps/arm/fpu/setjmp.S	1998/08/15 02:39:03	1.2
+++ sysdeps/arm/fpu/setjmp.S	2000/11/21 15:04:01
@@ -22,9 +22,6 @@
 #define _ASM
 #include <bits/setjmp.h>
 
-	/* Binary compatibility entry point.  */
-ENTRY (__setjmp)
-	mov	r1, #0
 ENTRY (__sigsetjmp)
 	/* Save registers */
 	sfmea	f4, 4, [r0]!
@@ -35,4 +32,4 @@
 
 	/* Make a tail call to __sigjmp_save; it takes the same args.  */
 	B	PLTJMP(C_SYMBOL_NAME(__sigjmp_save))
-END (__setjmp)
+END (__sigsetjmp)
Index: sysdeps/i386/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/i386/setjmp.S,v
retrieving revision 1.12
diff -u -a -r1.12 sysdeps/i386/setjmp.S
--- sysdeps/i386/setjmp.S	2000/08/03 21:39:16	1.12
+++ sysdeps/i386/setjmp.S	2000/11/21 15:04:01
@@ -25,11 +25,6 @@
 #include "bp-sym.h"
 #include "bp-asm.h"
 
-	/* Binary compatibility entry point.  */
-ENTRY (BP_SYM (__setjmp))
-	PUSH_SIGNAL_MASK (0)
-	/* FALL THROUGH */
-
 #define PARMS	LINKAGE		/* no space for saved regs */
 #define JMPBUF	PARMS
 #define SIGMSK	JMPBUF+PTR_SIZE
Index: sysdeps/i386/elf/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/i386/elf/setjmp.S,v
retrieving revision 1.6
diff -u -a -r1.6 sysdeps/i386/elf/setjmp.S
--- sysdeps/i386/elf/setjmp.S	2000/08/03 21:39:16	1.6
+++ sysdeps/i386/elf/setjmp.S	2000/11/21 15:04:01
@@ -35,10 +35,8 @@
 	jmp .Linternal_sigsetjmp
 END (BP_SYM (setjmp))
 
-	/* Binary compatibility entry point.  */
 ENTRY (BP_SYM (_setjmp))
 	.weak C_SYMBOL_NAME (BP_SYM (_setjmp))
-ENTRY (BP_SYM (__setjmp))
 	PUSH_SIGNAL_MASK (0)
 	/* FALL THROUGH */
 
Index: sysdeps/s390/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/s390/setjmp.S,v
retrieving revision 1.1
diff -u -a -r1.1 sysdeps/s390/setjmp.S
--- sysdeps/s390/setjmp.S	2000/08/02 14:26:00	1.1
+++ sysdeps/s390/setjmp.S	2000/11/21 15:04:01
@@ -28,12 +28,6 @@
 /* Save the current program position in ENV and return 0.  */
 /* R2 = pointer to jmp_buf, R3 = savemask */
 
-/* Binary compatibility entry point. */
-
-ENTRY(__setjmp)
-	sr     %r3,%r3              /* set savemask to zero */
-END (__setjmp)
-
 ENTRY(__sigsetjmp)
 	stm    %r6,%r15,0(%r2)      /* store registers in jmp_buf */
 #ifdef PIC
Index: sysdeps/s390/elf/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/s390/elf/setjmp.S,v
retrieving revision 1.1
diff -u -a -r1.1 sysdeps/s390/elf/setjmp.S
--- sysdeps/s390/elf/setjmp.S	2000/08/02 14:17:30	1.1
+++ sysdeps/s390/elf/setjmp.S	2000/11/21 15:04:01
@@ -31,10 +31,8 @@
 	j      __sigsetjmp          /* branch relativ to __sigsetjmp */
 END (setjmp)
 
-	/* Binary compatibility entry point.  */
 ENTRY(_setjmp)
 	.weak  C_SYMBOL_NAME (_setjmp)
-ENTRY(__setjmp)
 	lhi    %r3,0                /* second argument of zero */
 
 ENTRY(__sigsetjmp)
Index: sysdeps/sh/sh3/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/sh/sh3/setjmp.S,v
retrieving revision 1.2
diff -u -a -r1.2 sysdeps/sh/sh3/setjmp.S
--- sysdeps/sh/sh3/setjmp.S	2000/11/08 06:56:24	1.2
+++ sysdeps/sh/sh3/setjmp.S	2000/11/21 15:04:01
@@ -22,9 +22,6 @@
 #define _ASM
 #include <bits/setjmp.h>
 
-	/* Binary compatibility entry point.  */
-ENTRY (__setjmp)
-	mov	#0, r5
 ENTRY (__sigsetjmp)
 	/* Save registers */
 	add	#(JB_SIZE - 4 * 5), r4
Index: sysdeps/sh/sh4/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/sh/sh4/setjmp.S,v
retrieving revision 1.1
diff -u -a -r1.1 sysdeps/sh/sh4/setjmp.S
--- sysdeps/sh/sh4/setjmp.S	2000/06/12 20:17:59	1.1
+++ sysdeps/sh/sh4/setjmp.S	2000/11/21 15:04:01
@@ -22,9 +22,6 @@
 #define _ASM
 #include <bits/setjmp.h>
 
-	/* Binary compatibility entry point.  */
-ENTRY (__setjmp)
-	mov	#0, r5
 ENTRY (__sigsetjmp)
 	/* Save registers */
 	add	#JB_SIZE, r4
@@ -69,4 +66,4 @@
 .L1:
 	.long	C_SYMBOL_NAME(__sigjmp_save)
 #endif
-END (__setjmp)
+END (__sigsetjmp)
Index: sysdeps/sparc/sparc32/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/sparc/sparc32/setjmp.S,v
retrieving revision 1.4
diff -u -a -r1.4 sysdeps/sparc/sparc32/setjmp.S
--- sysdeps/sparc/sparc32/setjmp.S	1998/01/30 12:31:09	1.4
+++ sysdeps/sparc/sparc32/setjmp.S	2000/11/21 15:04:01
@@ -23,10 +23,10 @@
 #define _SETJMP_H
 #include <bits/setjmp.h>
 
-ENTRY(__setjmp)
+ENTRY(_setjmp)
 	b	1f
 	 set	0, %o1
-END(__setjmp)
+END(_setjmp)
 
 ENTRY(setjmp)
 	set	1, %o1
@@ -47,5 +47,5 @@
 	 mov	%g1, %o7
 END(__sigsetjmp)
 
-weak_alias(__setjmp, _setjmp)
+weak_extern(_setjmp)
 weak_extern(setjmp)
Index: sysdeps/unix/sysv/linux/ia64/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/ia64/setjmp.S,v
retrieving revision 1.2
diff -u -a -r1.2 sysdeps/unix/sysv/linux/ia64/setjmp.S
--- sysdeps/unix/sysv/linux/ia64/setjmp.S	2000/09/29 16:38:13	1.2
+++ sysdeps/unix/sysv/linux/ia64/setjmp.S	2000/11/21 15:04:01
@@ -81,13 +81,13 @@
 	br.cond.sptk.many __sigsetjmp
 	.endp setjmp
 
-	.global __setjmp
-	.proc __setjmp
-__setjmp:
+	.global _setjmp
+	.proc _setjmp
+_setjmp:
 	alloc r8=ar.pfs,2,0,0,0
 	mov in1=0
 	br.cond.sptk.many __sigsetjmp
-	.endp __setjmp
+	.endp _setjmp
 
 	/* __sigsetjmp(__jmp_buf buf, int savemask) */
 	.align 32
@@ -183,5 +183,5 @@
 	ret
 	.endp __sigsetjmp
 
-weak_alias(__setjmp, _setjmp)
+weak_extern(_setjmp)
 weak_extern(setjmp)
Index: sysdeps/unix/sysv/linux/m68k/setjmp.c
===================================================================
RCS file: setjmp.c
diff -N sysdeps/unix/sysv/linux/m68k/setjmp.c
--- /sourceware/cvs-tmp/cvsgWdEG5	Tue Nov 21 07:04:03 2000
+++ /dev/null	Tue May  5 13:32:27 1998
@@ -1,81 +0,0 @@
-/* Copyright (C) 1991, 1992, 1994, 1996 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#include <setjmp.h>
-
-/* Save the current program position in ENV and return 0.  */
-int
-__sigsetjmp (jmp_buf env, int savemask)
-{
-  /* Save data registers D1 through D7.  */
-  asm volatile ("movem%.l %/d1-%/d7, %0"
-		: : "m" (env[0].__jmpbuf[0].__dregs[0]));
-
-  /* Save return address in place of register A0.  */
-  env[0].__jmpbuf[0].__aregs[0] = ((void **) &env)[-1];
-
-  /* Save address registers A1 through A5.  */
-  asm volatile ("movem%.l %/a1-%/a5, %0"
-		: : "m" (env[0].__jmpbuf[0].__aregs[1]));
-
-  /* Save caller's FP, not our own.  */
-  env[0].__jmpbuf[0].__fp = ((void **) &env)[-2];
-
-  /* Save caller's SP, not our own.  */
-  env[0].__jmpbuf[0].__sp = (void *) &env;
-
-#if defined (__HAVE_68881__) || defined (__HAVE_FPU__)
-  /* Save floating-point (68881) registers FP0 through FP7.  */
-  asm volatile ("fmovem%.x %/fp0-%/fp7, %0"
-		: : "m" (env[0].__jmpbuf[0].__fpregs[0]));
-#endif
-
-  /* Save the signal mask if requested.  */
-  return __sigjmp_save (env, savemask);
-}
-
-/* Binary compatibility entry point.  */
-int
-__setjmp (jmp_buf env)
-{
-  /* Save data registers D1 through D7.  */
-  asm volatile ("movem%.l %/d1-%/d7, %0"
-		: : "m" (env[0].__jmpbuf[0].__dregs[0]));
-
-  /* Save return address in place of register A0.  */
-  env[0].__jmpbuf[0].__aregs[0] = ((void **) &env)[-1];
-
-  /* Save address registers A1 through A5.  */
-  asm volatile ("movem%.l %/a1-%/a5, %0"
-		: : "m" (env[0].__jmpbuf[0].__aregs[1]));
-
-  /* Save caller's FP, not our own.  */
-  env[0].__jmpbuf[0].__fp = ((void **) &env)[-2];
-
-  /* Save caller's SP, not our own.  */
-  env[0].__jmpbuf[0].__sp = (void *) &env;
-
-#if defined (__HAVE_68881__) || defined (__HAVE_FPU__)
-  /* Save floating-point (68881) registers FP0 through FP7.  */
-  asm volatile ("fmovem%.x %/fp0-%/fp7, %0"
-		: : "m" (env[0].__jmpbuf[0].__fpregs[0]));
-#endif
-
-  /* The signal mask has already been dealt with.  */
-  return 0;
-}
Index: sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S,v
retrieving revision 1.2
diff -u -a -r1.2 sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
--- sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S	1997/10/12 03:43:46	1.2
+++ sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S	2000/11/21 15:04:02
@@ -29,10 +29,10 @@
 
 /* int _setjmp(jmp_buf) */
 
-ENTRY(__setjmp)
+ENTRY(_setjmp)
 	ba	__sigsetjmp_local
 	 set	0, %o1
-END(__setjmp)
+END(_setjmp)
 
 /* int setjmp(jmp_buf) */
 
@@ -60,5 +60,5 @@
 
 END(__sigsetjmp)
 
-weak_alias(__setjmp, _setjmp)
+weak_extern(_setjmp)
 weak_extern(setjmp)

-- 
Andreas Schwab                                  "And now for something
SuSE Labs                                        completely different."
Andreas.Schwab@suse.de
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]