diff options
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/sysdeps/linux/i386/clone.S | 1 | ||||
| -rw-r--r-- | libc/sysdeps/linux/i386/setjmp.S | 10 | 
2 files changed, 7 insertions, 4 deletions
| diff --git a/libc/sysdeps/linux/i386/clone.S b/libc/sysdeps/linux/i386/clone.S index 173b5c1f7..e15116152 100644 --- a/libc/sysdeps/linux/i386/clone.S +++ b/libc/sysdeps/linux/i386/clone.S @@ -27,6 +27,7 @@          .text  .globl __clone; +.type	 __clone,@function  .align 4;                                                               \  __clone:  	/* Sanity check arguments.  */ diff --git a/libc/sysdeps/linux/i386/setjmp.S b/libc/sysdeps/linux/i386/setjmp.S index b96796eca..13c640bfd 100644 --- a/libc/sysdeps/linux/i386/setjmp.S +++ b/libc/sysdeps/linux/i386/setjmp.S @@ -22,6 +22,7 @@  #include <bits/setjmp.h>  .globl __setjmp; +.type	 __setjmp,@function  .align 4;                                                               \  __setjmp:  	popl %eax		/* Pop return address.  */ @@ -31,6 +32,7 @@ __setjmp:  	pushl %eax		/* Push back return address.  */  .globl __sigsetjmp; +.type	 __sigsetjmp,@function  .align 4;                                                               \  __sigsetjmp:  	movl 4(%esp), %eax	/* User's jmp_buf in %eax.  */ @@ -45,15 +47,15 @@ __sigsetjmp:       	movl %ecx, (JB_PC*4)(%eax)  	/* Make a tail call to __sigjmp_save; it takes the same args.  */ -#ifdef	PIC +#if defined(PIC)  	/* We cannot use the PLT, because it requires that %ebx be set, but             we can't save and restore our caller's value.  Instead, we do an             indirect jump through the GOT, using for the temporary register             %ecx, which is call-clobbered.  */ -	call L(here) -L(here): +	call Lhere +Lhere:  	popl %ecx -	addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ecx +	addl $_GLOBAL_OFFSET_TABLE_+[.-Lhere], %ecx  	movl (__sigjmp_save)(%ecx), %ecx  	jmp *%ecx  #else | 
