This is the mail archive of the 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]

An ia32 PIC patch for glibc 2.1

We cannot jmp to a global symbol with PIC. The old asm works by
accident where the old assembler optimizes the jump to a symbol
defined in the same file. The new assembler uses relocation for
global jumps. BTW, glibc 2.2 is ok.

H.J. Lu (
2000-06-03  H.J. Lu  <>

	* sysdeps/i386/elf/setjmp.S (setjmp): Use local symbol entry
	for jmp to support PIC.

Index: sysdeps/i386/elf/setjmp.S
RCS file: /work/cvs/gnu/glibc-2.1/sysdeps/i386/elf/setjmp.S,v
retrieving revision
diff -u -p -r1.1.1.2 setjmp.S
--- sysdeps/i386/elf/setjmp.S	1997/12/05 00:28:47
+++ sysdeps/i386/elf/setjmp.S	2000/06/04 04:48:21
@@ -31,7 +31,7 @@ ENTRY (setjmp)
 	pushl $1		/* Push second argument of zero.  */
 	pushl %ecx		/* Push back first argument.  */
 	pushl %eax		/* Push back return PC.  */
-	jmp __sigsetjmp
+	jmp sigsetjmp
 END (setjmp)
 	/* Binary compatibility entry point.  */
@@ -45,6 +45,7 @@ ENTRY (__setjmp)
 	pushl %eax		/* Push back return address.  */
 ENTRY (__sigsetjmp)
 	movl 4(%esp), %eax	/* User's jmp_buf in %eax.  */
      	/* Save registers.  */
 	movl %ebx, (JB_BX*4)(%eax)

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