From c7d19f9923c66a2ddb47272f1e8fec8b804f54c4 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Tue, 14 Jun 2011 23:15:08 -0400 Subject: 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. --- src/thread/i386/__set_thread_area.s | 1 + src/thread/i386/__unmapself.s | 1 + src/thread/i386/cancellation2.s | 2 ++ src/thread/i386/cancellation3.s | 1 + src/thread/i386/clone.s | 1 + src/thread/i386/syscall_cp.s | 1 + src/thread/x86_64/__set_thread_area.s | 1 + src/thread/x86_64/__unmapself.s | 1 + src/thread/x86_64/clone.s | 1 + src/thread/x86_64/syscall_cp.s | 1 + 10 files changed, 11 insertions(+) (limited to 'src/thread') diff --git a/src/thread/i386/__set_thread_area.s b/src/thread/i386/__set_thread_area.s index 2a2e31a4..a43525ec 100644 --- a/src/thread/i386/__set_thread_area.s +++ b/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 diff --git a/src/thread/i386/__unmapself.s b/src/thread/i386/__unmapself.s index b5e9c713..d6569594 100644 --- a/src/thread/i386/__unmapself.s +++ b/src/thread/i386/__unmapself.s @@ -1,5 +1,6 @@ .text .global __unmapself +.type __unmapself,@function __unmapself: movl $91,%eax movl 4(%esp),%ebx diff --git a/src/thread/i386/cancellation2.s b/src/thread/i386/cancellation2.s index 6f3f6940..4e4438b5 100644 --- a/src/thread/i386/cancellation2.s +++ b/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 diff --git a/src/thread/i386/cancellation3.s b/src/thread/i386/cancellation3.s index 6096b8ce..88340224 100644 --- a/src/thread/i386/cancellation3.s +++ b/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 diff --git a/src/thread/i386/clone.s b/src/thread/i386/clone.s index 4133915b..7af5f5db 100644 --- a/src/thread/i386/clone.s +++ b/src/thread/i386/clone.s @@ -1,5 +1,6 @@ .text .global __uniclone +.type __uniclone,@function __uniclone: movl 4(%esp),%ecx subl $24,%ecx diff --git a/src/thread/i386/syscall_cp.s b/src/thread/i386/syscall_cp.s index fa435f32..05e867a1 100644 --- a/src/thread/i386/syscall_cp.s +++ b/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 diff --git a/src/thread/x86_64/__set_thread_area.s b/src/thread/x86_64/__set_thread_area.s index 75f19a86..99c5356a 100644 --- a/src/thread/x86_64/__set_thread_area.s +++ b/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 */ diff --git a/src/thread/x86_64/__unmapself.s b/src/thread/x86_64/__unmapself.s index 438f5eb8..99c1b7c1 100644 --- a/src/thread/x86_64/__unmapself.s +++ b/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) */ diff --git a/src/thread/x86_64/clone.s b/src/thread/x86_64/clone.s index ce67cc62..bf128a47 100644 --- a/src/thread/x86_64/clone.s +++ b/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 */ diff --git a/src/thread/x86_64/syscall_cp.s b/src/thread/x86_64/syscall_cp.s index 20819288..b0363547 100644 --- a/src/thread/x86_64/syscall_cp.s +++ b/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) -- cgit v1.2.1