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.
rs-1.0
Rich Felker 15 years ago
parent
commit
c7d19f9923
  1. 1
      src/internal/i386/syscall.s
  2. 1
      src/internal/x86_64/syscall.s
  3. 2
      src/setjmp/i386/longjmp.s
  4. 3
      src/setjmp/i386/setjmp.s
  5. 2
      src/setjmp/x86_64/longjmp.s
  6. 3
      src/setjmp/x86_64/setjmp.s
  7. 2
      src/signal/i386/restore.s
  8. 1
      src/signal/i386/sigsetjmp.s
  9. 2
      src/signal/x86_64/restore.s
  10. 1
      src/signal/x86_64/sigsetjmp.s
  11. 1
      src/thread/i386/__set_thread_area.s
  12. 1
      src/thread/i386/__unmapself.s
  13. 2
      src/thread/i386/cancellation2.s
  14. 1
      src/thread/i386/cancellation3.s
  15. 1
      src/thread/i386/clone.s
  16. 1
      src/thread/i386/syscall_cp.s
  17. 1
      src/thread/x86_64/__set_thread_area.s
  18. 1
      src/thread/x86_64/__unmapself.s
  19. 1
      src/thread/x86_64/clone.s
  20. 1
      src/thread/x86_64/syscall_cp.s

1
src/internal/i386/syscall.s

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

1
src/internal/x86_64/syscall.s

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

2
src/setjmp/i386/longjmp.s

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

3
src/setjmp/i386/setjmp.s

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

2
src/setjmp/x86_64/longjmp.s

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

3
src/setjmp/x86_64/setjmp.s

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

2
src/signal/i386/restore.s

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

1
src/signal/i386/sigsetjmp.s

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

2
src/signal/x86_64/restore.s

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

1
src/signal/x86_64/sigsetjmp.s

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

1
src/thread/i386/__set_thread_area.s

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

1
src/thread/i386/__unmapself.s

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

2
src/thread/i386/cancellation2.s

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

1
src/thread/i386/cancellation3.s

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

1
src/thread/i386/clone.s

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

1
src/thread/i386/syscall_cp.s

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

1
src/thread/x86_64/__set_thread_area.s

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

1
src/thread/x86_64/__unmapself.s

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

1
src/thread/x86_64/clone.s

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

1
src/thread/x86_64/syscall_cp.s

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

Loading…
Cancel
Save