1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-09-05 14:24:06 +03:00
2003-10-03  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/i386/elf/bsd-setjmp.S: Use linkonce section for PIC stub.
	* sysdeps/i386/elf/setjmp.S: Likewise.
This commit is contained in:
Ulrich Drepper
2003-10-03 20:29:57 +00:00
parent e9a7bbab6b
commit c70a86b618
4 changed files with 32 additions and 10 deletions

View File

@@ -1,3 +1,8 @@
2003-10-03 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/elf/bsd-setjmp.S: Use linkonce section for PIC stub.
* sysdeps/i386/elf/setjmp.S: Likewise.
2003-10-02 Roland McGrath <roland@redhat.com> 2003-10-02 Roland McGrath <roland@redhat.com>
* argp/argp-help.c (__argp_short_program_name): Move inside [! _LIBC]. * argp/argp-help.c (__argp_short_program_name): Move inside [! _LIBC].

View File

@@ -1,3 +1,8 @@
2003-10-03 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
2003-10-02 Ulrich Drepper <drepper@redhat.com> 2003-10-02 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use

View File

@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. i386 version. /* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. i386 version.
Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc. Copyright (C) 1995-1997,2000,2001,2002,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@@ -56,7 +56,7 @@ ENTRY (BP_SYM (setjmp))
we can't save and restore our caller's value. Instead, we do an we can't save and restore our caller's value. Instead, we do an
indirect jump through the GOT, using for the temporary register indirect jump through the GOT, using for the temporary register
%ecx, which is call-clobbered. */ %ecx, which is call-clobbered. */
call 1f call __i686.get_pc_thunk.cx
addl $_GLOBAL_OFFSET_TABLE_, %ecx addl $_GLOBAL_OFFSET_TABLE_, %ecx
leal C_SYMBOL_NAME (BP_SYM (__sigjmp_save)@GOTOFF)(%ecx), %ecx leal C_SYMBOL_NAME (BP_SYM (__sigjmp_save)@GOTOFF)(%ecx), %ecx
call *%ecx call *%ecx
@@ -66,8 +66,13 @@ ENTRY (BP_SYM (setjmp))
popl %ecx popl %ecx
popl %edx popl %edx
ret ret
#ifdef PIC
1: movl (%esp), %ecx
ret
#endif
END (BP_SYM (setjmp)) END (BP_SYM (setjmp))
.section .gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits
.globl __i686.get_pc_thunk.cx
.hidden __i686.get_pc_thunk.cx
.type __i686.get_pc_thunk.cx,@function
__i686.get_pc_thunk.cx:
movl (%esp), %ecx
ret
.size __i686.get_pc_thunk.cx, . - __i686.get_pc_thunk.cx

View File

@@ -1,5 +1,5 @@
/* setjmp for i386, ELF version. /* setjmp for i386, ELF version.
Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc. Copyright (C) 1995-1997,2000,2001,2002,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@@ -51,13 +51,20 @@ ENTRY (BP_SYM (__sigsetjmp))
we can't save and restore our caller's value. Instead, we do an we can't save and restore our caller's value. Instead, we do an
indirect jump through the GOT, using for the temporary register indirect jump through the GOT, using for the temporary register
%ecx, which is call-clobbered. */ %ecx, which is call-clobbered. */
call 1f call __i686.get_pc_thunk.cx
addl $_GLOBAL_OFFSET_TABLE_, %ecx addl $_GLOBAL_OFFSET_TABLE_, %ecx
leal C_SYMBOL_NAME (BP_SYM (__sigjmp_save)@GOTOFF)(%ecx), %ecx leal C_SYMBOL_NAME (BP_SYM (__sigjmp_save)@GOTOFF)(%ecx), %ecx
jmp *%ecx jmp *%ecx
1: movl (%esp), %ecx
ret
#else #else
jmp BP_SYM (__sigjmp_save) jmp BP_SYM (__sigjmp_save)
#endif #endif
END (BP_SYM (__sigsetjmp)) END (BP_SYM (__sigsetjmp))
.section .gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits
.globl __i686.get_pc_thunk.cx
.hidden __i686.get_pc_thunk.cx
.type __i686.get_pc_thunk.cx,@function
__i686.get_pc_thunk.cx:
movl (%esp), %ecx
ret
.size __i686.get_pc_thunk.cx, . - __i686.get_pc_thunk.cx