diff options
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/ChangeLog | 15 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S | 20 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S | 11 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S | 11 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S | 28 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h | 37 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sh/sem_post.S | 17 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S | 27 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S | 13 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S | 27 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S | 16 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S | 20 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S | 7 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S | 8 |
14 files changed, 64 insertions, 193 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 3b94006eef..56f4d1dccc 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,20 @@ 2011-09-10 Ulrich Drepper <drepper@gmail.com> + * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Don't handle + !USE___THREAD. + * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise. + * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise. + * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise. + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise. + * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. + * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise. + * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise. + * tst-tls1.c: Support for __thread is now mandatory. * tst-tls2.c: Likewise. * tst-tls3.c: Likewise. diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S index 86992c877e..9f3e63520f 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2005, 2007, 2008 Free Software Foundation, Inc. +/* Copyright (C) 2002,2003,2005,2007,2008,2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -81,18 +81,13 @@ __new_sem_post: 4: #endif addl $_GLOBAL_OFFSET_TABLE_, %ebx -#if USE___THREAD -# ifdef NO_TLS_DIRECT_SEG_REFS +#ifdef NO_TLS_DIRECT_SEG_REFS movl errno@gotntpoff(%ebx), %edx addl %gs:0, %edx movl $EINVAL, (%edx) -# else +#else movl errno@gotntpoff(%ebx), %edx movl $EINVAL, %gs:(%edx) -# endif -#else - call __errno_location@plt - movl $EINVAL, (%eax) #endif orl $-1, %eax @@ -107,18 +102,13 @@ __new_sem_post: 5: #endif addl $_GLOBAL_OFFSET_TABLE_, %ebx -#if USE___THREAD -# ifdef NO_TLS_DIRECT_SEG_REFS +#ifdef NO_TLS_DIRECT_SEG_REFS movl errno@gotntpoff(%ebx), %edx addl %gs:0, %edx movl $EOVERFLOW, (%edx) -# else +#else movl errno@gotntpoff(%ebx), %edx movl $EOVERFLOW, %gs:(%edx) -# endif -#else - call __errno_location@plt - movl $EOVERFLOW, (%eax) #endif orl $-1, %eax diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S index 18013a8df4..ee46ab9363 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2002-2005, 2007, 2009, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -154,18 +154,13 @@ sem_timedwait: 4: #endif addl $_GLOBAL_OFFSET_TABLE_, %ebx -#if USE___THREAD -# ifdef NO_TLS_DIRECT_SEG_REFS +#ifdef NO_TLS_DIRECT_SEG_REFS movl errno@gotntpoff(%ebx), %edx addl %gs:0, %edx movl %esi, (%edx) -# else +#else movl errno@gotntpoff(%ebx), %edx movl %esi, %gs:(%edx) -# endif -#else - call __errno_location@plt - movl %esi, (%eax) #endif movl 28(%esp), %ebx /* Load semaphore address. */ diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S index 2d49934f02..18adb9a092 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2005, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2005, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -49,18 +49,13 @@ __new_sem_trywait: 3: #endif addl $_GLOBAL_OFFSET_TABLE_, %ecx -#if USE___THREAD -# ifdef NO_TLS_DIRECT_SEG_REFS +#ifdef NO_TLS_DIRECT_SEG_REFS movl errno@gotntpoff(%ecx), %edx addl %gs:0, %edx movl $EAGAIN, (%edx) -# else +#else movl errno@gotntpoff(%ecx), %edx movl $EAGAIN, %gs:(%edx) -# endif -#else - call __errno_location@plt - movl $EAGAIN, (%eax) #endif orl $-1, %eax ret diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S index 93c0a64a9e..fb8a398430 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2005, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2005, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -114,18 +114,13 @@ __new_sem_wait: 8: #endif addl $_GLOBAL_OFFSET_TABLE_, %ebx -#if USE___THREAD -# ifdef NO_TLS_DIRECT_SEG_REFS +#ifdef NO_TLS_DIRECT_SEG_REFS movl errno@gotntpoff(%ebx), %edx addl %gs:0, %edx movl %esi, (%edx) -# else +#else movl errno@gotntpoff(%ebx), %edx movl %esi, %gs:(%edx) -# endif -#else - call __errno_location@plt - movl %esi, (%eax) #endif orl $-1, %eax @@ -228,13 +223,13 @@ sem_wait_cleanup: .byte 14 # DW_CFA_def_cfa_offset .uleb128 8 .byte 0x83 # DW_CFA_offset %ebx - .uleb128 2 + .uleb128 2 .byte 4 # DW_CFA_advance_loc4 .long .Lpush_esi-.Lpush_ebx .byte 14 # DW_CFA_def_cfa_offset .uleb128 12 .byte 0x86 # DW_CFA_offset %esi - .uleb128 3 + .uleb128 3 .byte 4 # DW_CFA_advance_loc4 .long .Lsub_esp-.Lpush_esi .byte 14 # DW_CFA_def_cfa_offset @@ -250,9 +245,9 @@ sem_wait_cleanup: .byte 14 # DW_CFA_def_cfa_offset .uleb128 16 .byte 0x83 # DW_CFA_offset %ebx - .uleb128 2 + .uleb128 2 .byte 0x86 # DW_CFA_offset %esi - .uleb128 3 + .uleb128 3 .align 4 .LENDFDE: @@ -333,18 +328,13 @@ __old_sem_wait: 4: #endif addl $_GLOBAL_OFFSET_TABLE_, %ebx -#if USE___THREAD -# ifdef NO_TLS_DIRECT_SEG_REFS +#ifdef NO_TLS_DIRECT_SEG_REFS movl errno@gotntpoff(%ebx), %edx addl %gs:0, %edx movl %esi, (%edx) -# else +#else movl errno@gotntpoff(%ebx), %edx movl %esi, %gs:(%edx) -# endif -#else - call __errno_location@plt - movl %esi, (%eax) #endif orl $-1, %eax jmp 5b diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h index c4d52860dd..8687ba46ab 100644 --- a/nptl/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h +++ b/nptl/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2006, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>, 2002. @@ -27,13 +27,12 @@ # undef PSEUDO -# if USE___THREAD -# ifndef NOT_IN_libc -# define SYSDEP_CANCEL_ERRNO __libc_errno -# else -# define SYSDEP_CANCEL_ERRNO errno -# endif -# define SYSDEP_CANCEL_ERROR(args) \ +# ifndef NOT_IN_libc +# define SYSDEP_CANCEL_ERRNO __libc_errno +# else +# define SYSDEP_CANCEL_ERRNO errno +# endif +# define SYSDEP_CANCEL_ERROR(args) \ .section .gnu.linkonce.t.__syscall_error_##args, "ax"; \ .align 32; \ .proc __syscall_error_##args; \ @@ -53,28 +52,6 @@ __syscall_error_##args: \ add loc4 = loc4, r13;; \ st4 [loc4] = loc3; \ mov ar.pfs = loc0 -# else -# define SYSDEP_CANCEL_ERROR(args) \ -.section .gnu.linkonce.t.__syscall_error_##args, "ax"; \ - .align 32; \ - .proc __syscall_error_##args; \ - .global __syscall_error_##args; \ - .hidden __syscall_error_##args; \ - .size __syscall_error_##args, 64; \ -__syscall_error_##args: \ - .prologue; \ - .regstk args, 5, args, 0; \ - .save ar.pfs, loc0; \ - .save rp, loc1; \ - .body; \ - mov loc4 = r1;; \ - br.call.sptk.many b0 = __errno_location;; \ - st4 [r8] = loc3; \ - mov r1 = loc4; \ - mov rp = loc1; \ - mov r8 = -1; \ - mov ar.pfs = loc0 -# endif # ifndef USE_DL_SYSINFO diff --git a/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S b/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S index 4a154fc649..c3dd6825f0 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2007, 2008, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -65,7 +65,7 @@ __new_sem_post: 3: mov #EOVERFLOW, r2 -4: +4: mov.l r12, @-r15 mov.l r8, @-r15 sts.l pr, @-r15 @@ -73,7 +73,6 @@ __new_sem_post: mov.l .Lgot3, r12 add r0, r12 -#if USE___THREAD mov.l .Lerrno3, r0 stc gbr, r1 mov.l @(r0, r12), r0 @@ -84,14 +83,6 @@ __new_sem_post: .long errno@GOTTPOFF .Lexit: mov.l r2, @r0 -#else - mov r2, r8 - mov.l .Lerrloc3, r1 - bsrf r1 - nop -.Lerrloc3b: - mov r8, @r0 -#endif lds.l @r15+, pr mov.l @r15+, r8 mov.l @r15+, r12 @@ -103,9 +94,5 @@ __new_sem_post: .long SEM_VALUE_MAX .Lgot3: .long _GLOBAL_OFFSET_TABLE_ -#if !USE___THREAD -.Lerrloc3: - .long __errno_location@PLT-(.Lerrloc3b-.) -#endif .size __new_sem_post,.-__new_sem_post versioned_symbol(libpthread, __new_sem_post, sem_post, GLIBC_2_1) diff --git a/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S index 7924e87594..d57986150c 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -131,7 +131,7 @@ sem_timedwait: mov r10, r4 bsrf r1 mov r0, r10 -.Ldisable0b: +.Ldisable0b: mov r10, r0 .LcleanupEND: @@ -173,7 +173,6 @@ sem_timedwait: mov.l .Lgot2, r12 add r0, r12 -#if USE___THREAD mov.l .Lerrno2, r0 stc gbr, r1 mov.l @(r0, r12), r0 @@ -181,14 +180,8 @@ sem_timedwait: add r1, r0 .align 2 .Lerrno2: - .long errno@GOTTPOFF + .long errno@GOTTPOFF .Lexit: -#else - mov.l .Lerrloc2, r1 - bsrf r1 - nop -.Lerrloc2b: -#endif mov.l r10, @r0 DEC (@(NWAITERS,r8), r2) bra 10b @@ -201,10 +194,6 @@ sem_timedwait: .long 1000000000 .Lgot2: .long _GLOBAL_OFFSET_TABLE_ -#if !USE___THREAD -.Lerrloc2: - .long __errno_location@PLT-(.Lerrloc2b-.) -#endif .Lenable0: .long __pthread_enable_asynccancel-.Lenable0b .Ldisable0: @@ -213,7 +202,7 @@ sem_timedwait: .type sem_wait_cleanup,@function sem_wait_cleanup: - DEC (@(NWAITERS,r8), r2) + DEC (@(NWAITERS,r8), r2) .LcallUR: mov.l .Lresume, r1 #ifdef PIC @@ -314,25 +303,25 @@ sem_wait_cleanup: .byte 14 ! DW_CFA_def_cfa_offset .uleb128 4 .byte 0x88 ! DW_CFA_offset r8 - .uleb128 1 + .uleb128 1 .byte 4 ! DW_CFA_advance_loc4 .ualong .Lpush_r9-.Lpush_r8 .byte 14 ! DW_CFA_def_cfa_offset .uleb128 8 .byte 0x89 ! DW_CFA_offset r9 - .uleb128 2 + .uleb128 2 .byte 4 ! DW_CFA_advance_loc4 .ualong .Lpush_r10-.Lpush_r9 .byte 14 ! DW_CFA_def_cfa_offset .uleb128 12 .byte 0x8a ! DW_CFA_offset r10 - .uleb128 3 + .uleb128 3 .byte 4 ! DW_CFA_advance_loc4 .ualong .Lpush_r12-.Lpush_r10 .byte 14 ! DW_CFA_def_cfa_offset .uleb128 16 .byte 0x8c ! DW_CFA_offset r12 - .uleb128 4 + .uleb128 4 .byte 4 ! DW_CFA_advance_loc4 .ualong .Lpush_pr-.Lpush_r12 .byte 14 ! DW_CFA_def_cfa_offset diff --git a/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S b/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S index 835e37db9f..183aac6bc3 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -57,7 +57,6 @@ __new_sem_trywait: mov.l .Lgot1, r12 add r0, r12 -#if USE___THREAD mov.l .Lerrno1, r0 stc gbr, r1 mov.l @(r0, r12), r0 @@ -67,12 +66,6 @@ __new_sem_trywait: .Lerrno1: .long errno@GOTTPOFF .Lexit: -#else - mov.l .Lerrloc1, r1 - bsrf r1 - nop -.Lerrloc1b: -#endif mov.l r8, @r0 lds.l @r15+, pr mov.l @r15+, r8 @@ -83,9 +76,5 @@ __new_sem_trywait: .align 2 .Lgot1: .long _GLOBAL_OFFSET_TABLE_ -#if !USE___THREAD -.Lerrloc1: - .long __errno_location@PLT-(.Lerrloc1b-.) -#endif .size __new_sem_trywait,.-__new_sem_trywait versioned_symbol(libpthread, __new_sem_trywait, sem_trywait, GLIBC_2_1) diff --git a/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S b/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S index 6ef7fcf0cb..aed8609fd0 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -68,7 +68,7 @@ __new_sem_wait: .Lafter_ret: 1: INC (@(NWAITERS,r8),r2) - + .LcleanupSTART: 6: mov.l .Lenable0, r1 @@ -96,7 +96,7 @@ __new_sem_wait: mov r10, r4 bsrf r1 mov r0, r10 -.Ldisable0b: +.Ldisable0b: mov r10, r0 .LcleanupEND: @@ -131,7 +131,6 @@ __new_sem_wait: mov.l .Lgot0, r12 add r0, r12 -#if USE___THREAD mov.l .Lerrno0, r0 stc gbr, r1 mov.l @(r0, r12), r0 @@ -141,12 +140,6 @@ __new_sem_wait: .Lerrno0: .long errno@GOTTPOFF .Lexit: -#else - mov.l .Lerrloc0, r1 - bsrf r1 - nop -.Lerrloc0b: -#endif mov.l r8, @r0 bra 9b mov #-1, r0 @@ -154,10 +147,6 @@ __new_sem_wait: .align 2 .Lgot0: .long _GLOBAL_OFFSET_TABLE_ -#if !USE___THREAD -.Lerrloc0: - .long __errno_location@PLT-(.Lerrloc0b-.) -#endif .Lenable0: .long __pthread_enable_asynccancel-.Lenable0b .Ldisable0: @@ -168,7 +157,7 @@ __new_sem_wait: .type sem_wait_cleanup,@function sem_wait_cleanup: - DEC (@(NWAITERS,r8), r2) + DEC (@(NWAITERS,r8), r2) .LcallUR: mov.l .Lresume, r1 #ifdef PIC @@ -269,25 +258,25 @@ sem_wait_cleanup: .byte 14 ! DW_CFA_def_cfa_offset .uleb128 4 .byte 0x88 ! DW_CFA_offset r8 - .uleb128 1 + .uleb128 1 .byte 4 ! DW_CFA_advance_loc4 .ualong .Lpush_r10-.Lpush_r8 .byte 14 ! DW_CFA_def_cfa_offset .uleb128 8 .byte 0x8a ! DW_CFA_offset r10 - .uleb128 2 + .uleb128 2 .byte 4 ! DW_CFA_advance_loc4 .ualong .Lpush_r12-.Lpush_r10 .byte 14 ! DW_CFA_def_cfa_offset .uleb128 12 .byte 0x8c ! DW_CFA_offset r12 - .uleb128 3 + .uleb128 3 .byte 4 ! DW_CFA_advance_loc4 .ualong .Lpush_pr-.Lpush_r12 .byte 14 ! DW_CFA_def_cfa_offset .uleb128 16 .byte 0x91 ! DW_CFA_offset pr - .uleb128 4 + .uleb128 4 .align 4 .LENDFDE: diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S index 979b1bf1d6..4691e4d683 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2005, 2007, 2008 Free Software Foundation, Inc. +/* Copyright (C) 2002,2003,2005,2007,2008,2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -62,29 +62,15 @@ sem_post: retq 1: -#if USE___THREAD movl $EINVAL, %eax -#else - callq __errno_location@plt - movl $EINVAL, %edx -#endif jmp 4f 3: -#if USE___THREAD movl $EOVERFLOW, %eax -#else - callq __errno_location@plt - movl $EOVERFLOW, %edx -#endif 4: -#if USE___THREAD movq errno@gottpoff(%rip), %rdx movl %eax, %fs:(%rdx) -#else - movl %edx, (%rax) -#endif orl $-1, %eax retq .size sem_post,.-sem_post diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S index 2926b36e7b..576a494966 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S @@ -143,39 +143,24 @@ sem_timedwait: cfi_adjust_cfa_offset(8) 3: negq %r9 -#if USE___THREAD movq errno@gottpoff(%rip), %rdx movl %r9d, %fs:(%rdx) -#else - callq __errno_location@plt - movl %r9d, (%rax) -#endif orl $-1, %eax jmp 15b cfi_adjust_cfa_offset(-8) 6: -#if USE___THREAD movq errno@gottpoff(%rip), %rdx movl $EINVAL, %fs:(%rdx) -#else - callq __errno_location@plt - movl $EINVAL, (%rax) -#endif orl $-1, %eax retq 16: -#if USE___THREAD movq errno@gottpoff(%rip), %rdx movl $ETIMEDOUT, %fs:(%rdx) -#else - callq __errno_location@plt - movl $ETIMEDOUT, (%rax) -#endif orl $-1, %eax @@ -303,13 +288,8 @@ sem_timedwait: cfi_rel_offset(%r14, STACKFRAME) 33: negq %r14 36: -#if USE___THREAD movq errno@gottpoff(%rip), %rdx movl %r14d, %fs:(%rdx) -#else - callq __errno_location@plt - movl %r14d, (%rax) -#endif orl $-1, %eax jmp 45b diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S index a5719cadda..64652c46f8 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2005, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2005, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -41,13 +41,8 @@ sem_trywait: retq 1: -#if USE___THREAD movq errno@gottpoff(%rip), %rdx movl $EAGAIN, %fs:(%rdx) -#else - callq __errno_location@plt - movl $EAGAIN, (%rax) -#endif orl $-1, %eax retq .size sem_trywait,.-sem_trywait diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S index 2cf6ec10a4..3ea714a754 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2005, 2007, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2005, 2007, 2009, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -125,14 +125,8 @@ sem_wait: cfi_adjust_cfa_offset(8) 4: negq %rcx -#if USE___THREAD movq errno@gottpoff(%rip), %rdx movl %ecx, %fs:(%rdx) -#else -# error "not supported. %rcx and %rdi must be preserved" - callq __errno_location@plt - movl %ecx, (%rax) -#endif orl $-1, %eax jmp 9b |