Browse Source

restore use of .type in asm, but use modern @function (vs %function)

this seems to be necessary to make the linker accept the functions in
a shared library (perhaps to generate PLT entries?)

strictly speaking libc-internal asm should not need it. i might clean
that up later.
Rich Felker 13 years ago
parent
commit
c7d19f9923

+ 1 - 0
src/internal/i386/syscall.s

@@ -1,4 +1,5 @@
 .global __syscall
+.type __syscall,@function
 __syscall:
 	pushl %ebx
 	pushl %esi

+ 1 - 0
src/internal/x86_64/syscall.s

@@ -1,4 +1,5 @@
 .global __syscall
+.type __syscall,@function
 __syscall:
 	movq %rdi,%rax
 	movq %rsi,%rdi

+ 2 - 0
src/setjmp/i386/longjmp.s

@@ -1,5 +1,7 @@
 .global _longjmp
 .global longjmp
+.type _longjmp,@function
+.type longjmp,@function
 _longjmp:
 longjmp:
 	mov  4(%esp),%edx

+ 3 - 0
src/setjmp/i386/setjmp.s

@@ -1,6 +1,9 @@
 .global __setjmp
 .global _setjmp
 .global setjmp
+.type __setjmp,@function
+.type _setjmp,@function
+.type setjmp,@function
 __setjmp:
 _setjmp:
 setjmp:

+ 2 - 0
src/setjmp/x86_64/longjmp.s

@@ -1,6 +1,8 @@
 /* Copyright 2011 Nicholas J. Kain, licensed GNU LGPL 2.1 or later */
 .global _longjmp
 .global longjmp
+.type _longjmp,@function
+.type longjmp,@function
 _longjmp:
 longjmp:
 	mov %rsi,%rax           /* val will be longjmp return */

+ 3 - 0
src/setjmp/x86_64/setjmp.s

@@ -2,6 +2,9 @@
 .global __setjmp
 .global _setjmp
 .global setjmp
+.type __setjmp,@function
+.type _setjmp,@function
+.type setjmp,@function
 __setjmp:
 _setjmp:
 setjmp:

+ 2 - 0
src/signal/i386/restore.s

@@ -1,10 +1,12 @@
 .global __restore
+.type __restore,@function
 __restore:
 	popl %eax
 	movl $119, %eax
 	int $0x80
 
 .global __restore_rt
+.type __restore_rt,@function
 __restore_rt:
 	movl $173, %eax
 	int $0x80

+ 1 - 0
src/signal/i386/sigsetjmp.s

@@ -1,4 +1,5 @@
 .global sigsetjmp
+.type sigsetjmp,@function
 sigsetjmp:
 	mov 4(%esp),%eax
 	mov 8(%esp),%ecx

+ 2 - 0
src/signal/x86_64/restore.s

@@ -1,5 +1,7 @@
 .global __restore_rt
 .global __restore
+.type __restore_rt,@function
+.type __restore,@function
 __restore_rt:
 __restore:
 	movl $15, %eax

+ 1 - 0
src/signal/x86_64/sigsetjmp.s

@@ -1,5 +1,6 @@
 /* Copyright 2011 Nicholas J. Kain, licensed GNU LGPL 2.1 or later */
 .global sigsetjmp
+.type sigsetjmp,@function
 sigsetjmp:
 	andl %esi,%esi
 	movq %rsi,64(%rdi)

+ 1 - 0
src/thread/i386/__set_thread_area.s

@@ -1,5 +1,6 @@
 .text
 .global __set_thread_area
+.type   __set_thread_area,@function
 __set_thread_area:
 	pushl %ebx
 	movl 8(%esp),%ecx

+ 1 - 0
src/thread/i386/__unmapself.s

@@ -1,5 +1,6 @@
 .text
 .global __unmapself
+.type   __unmapself,@function
 __unmapself:
 	movl $91,%eax
 	movl 4(%esp),%ebx

+ 2 - 0
src/thread/i386/cancellation2.s

@@ -1,5 +1,6 @@
 .text
 .global __pthread_register_cancel
+.type   __pthread_register_cancel,@function
 __pthread_register_cancel:
 	pushl %eax
 	call __pthread_register_cancel_3
@@ -7,6 +8,7 @@ __pthread_register_cancel:
 	ret
 
 .global __pthread_unregister_cancel
+.type   __pthread_unregister_cancel,@function
 __pthread_unregister_cancel:
 	pushl %eax
 	call __pthread_unregister_cancel_3

+ 1 - 0
src/thread/i386/cancellation3.s

@@ -1,5 +1,6 @@
 .text
 .global __pthread_unwind_next
+.type   __pthread_unwind_next,@function
 __pthread_unwind_next:
 	pushl %eax
 	call __pthread_unwind_next_3

+ 1 - 0
src/thread/i386/clone.s

@@ -1,5 +1,6 @@
 .text
 .global __uniclone
+.type   __uniclone,@function
 __uniclone:
 	movl	4(%esp),%ecx
 	subl	$24,%ecx

+ 1 - 0
src/thread/i386/syscall_cp.s

@@ -1,5 +1,6 @@
 .text
 .global __syscall_cp_asm
+.type   __syscall_cp_asm,@function
 __syscall_cp_asm:
 	pushl %ebx
 	pushl %esi

+ 1 - 0
src/thread/x86_64/__set_thread_area.s

@@ -1,6 +1,7 @@
 /* Copyright 2011 Nicholas J. Kain, licensed GNU LGPL 2.1 or later */
 .text
 .global __set_thread_area
+.type __set_thread_area,@function
 __set_thread_area:
         mov %rdi,%rsi           /* shift for syscall */
         movl $0x1002,%edi       /* SET_FS register */

+ 1 - 0
src/thread/x86_64/__unmapself.s

@@ -1,6 +1,7 @@
 /* Copyright 2011 Nicholas J. Kain, licensed GNU LGPL 2.1 or later */
 .text
 .global __unmapself
+.type   __unmapself,@function
 __unmapself:
 	movl $11,%eax   /* SYS_munmap */
 	syscall         /* munmap(arg2,arg3) */

+ 1 - 0
src/thread/x86_64/clone.s

@@ -1,6 +1,7 @@
 /* Copyright 2011 Nicholas J. Kain, licensed GNU LGPL 2.1 or later */
 .text
 .global __uniclone
+.type   __uniclone,@function
 /* rdi = child_stack, rsi = start, rdx = pthread_struct */
 __uniclone:
         subq    $8,%rsp         /* pad parent stack to prevent branch later */

+ 1 - 0
src/thread/x86_64/syscall_cp.s

@@ -1,5 +1,6 @@
 .text
 .global __syscall_cp_asm
+.type   __syscall_cp_asm,@function
 __syscall_cp_asm:
 	lea 1f(%rip),%rax
 	mov %rax,8(%rdi)