Remove support for !USE___THREAD
authorUlrich Drepper <drepper@gmail.com>
Sat, 10 Sep 2011 20:50:28 +0000 (16:50 -0400)
committerUlrich Drepper <drepper@gmail.com>
Sat, 10 Sep 2011 20:50:28 +0000 (16:50 -0400)
54 files changed:
ChangeLog
bits/libc-tsd.h
csu/errno-loc.c
csu/errno.c
elf/dl-libc.c
elf/dl-tsd.c
include/errno.h
include/netdb.h
include/resolv.h
include/tls.h [deleted file]
inet/herrno-loc.c
inet/herrno.c
malloc/arena.c
malloc/hooks.c
malloc/malloc.c
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S
nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S
nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S
nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S
nptl/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
nptl/sysdeps/unix/sysv/linux/sh/sem_post.S
nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S
nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S
nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S
nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S
nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S
nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S
resolv/res-state.c
resolv/res_libc.c
sysdeps/i386/dl-machine.h
sysdeps/ia64/dl-machine.h
sysdeps/powerpc/powerpc32/dl-machine.h
sysdeps/powerpc/powerpc64/dl-machine.h
sysdeps/s390/s390-32/dl-machine.h
sysdeps/s390/s390-64/dl-machine.h
sysdeps/sh/dl-machine.h
sysdeps/sparc/sparc32/dl-machine.h
sysdeps/sparc/sparc64/dl-machine.h
sysdeps/unix/i386/sysdep.S
sysdeps/unix/sysv/linux/i386/sysdep.h
sysdeps/unix/sysv/linux/ia64/sysdep.S
sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
sysdeps/unix/sysv/linux/sh/sysdep.h
sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
sysdeps/unix/sysv/linux/x86_64/sysdep.h
sysdeps/unix/x86_64/sysdep.S
sysdeps/x86_64/dl-machine.h
tls.make.c

index 4654e17..17c9dcd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,43 @@
 2011-09-10  Ulrich Drepper  <drepper@gmail.com>
 
+       * include/tls.h: Removed.  USE___THREAD must always be defined.
+       * bits/libc-tsd.h: Don't handle !USE___THREAD.
+       * elf/dl-libc.c: Likewise.
+       * elf/dl-tsd.c: Likewise.
+       * include/errno.h: Likewise.
+       * include/netdb.h: Likewise.
+       * include/resolv.h: Likewise.
+       * inet/herrno-loc.c: Likewise.
+       * inet/herrno.c: Likewise.
+       * malloc/arena.c: Likewise.
+       * malloc/hooks.c: Likewise.
+       * malloc/malloc.c: Likewise.
+       * resolv/res-state.c: Likewise.
+       * resolv/res_libc.c: Likewise.
+       * sysdeps/i386/dl-machine.h: Likewise.
+       * sysdeps/ia64/dl-machine.h: Likewise.
+       * sysdeps/powerpc/powerpc32/dl-machine.h: Likewise.
+       * sysdeps/powerpc/powerpc64/dl-machine.h: Likewise.
+       * sysdeps/s390/s390-32/dl-machine.h: Likewise.
+       * sysdeps/s390/s390-64/dl-machine.h: Likewise.
+       * sysdeps/sh/dl-machine.h: Likewise.
+       * sysdeps/sparc/sparc32/dl-machine.h: Likewise.
+       * sysdeps/sparc/sparc64/dl-machine.h: Likewise.
+       * sysdeps/unix/i386/sysdep.S: Likewise.
+       * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
+       * sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
+       * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
+       * sysdeps/unix/x86_64/sysdep.S: Likewise.
+       * sysdeps/x86_64/dl-machine.h: Likewise.
+       * tls.make.c: Likewise.
+
        * configure.in: Remove --with-__thread option.  Make tests for
        --no-whole-archive, __builtin_expect, symbol redirection, __thread,
        tls_model attribute fail if no support is available.  Remove
index 1a24b70..d1118a5 100644 (file)
@@ -1,5 +1,5 @@
 /* libc-internal interface for thread-specific data.  Stub or TLS version.
-   Copyright (C) 1998,2001,2002,2008 Free Software Foundation, Inc.
+   Copyright (C) 1998,2001,2002,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
    set of thread-specific `void *' data used only internally by libc.
 
    __libc_tsd_define(CLASS, TYPE, KEY) -- Define or declare a datum with TYPE
-                                          for KEY.  CLASS can be `static' for
+                                          for KEY.  CLASS can be `static' for
                                           keys used in only one source file,
                                           empty for global definitions, or
                                           `extern' for global declarations.
    __libc_tsd_address(TYPE, KEY)       -- Return the `TYPE *' pointing to
-                                          the current thread's datum for KEY.
+                                          the current thread's datum for KEY.
    __libc_tsd_get(TYPE, KEY)           -- Return the `TYPE' datum for KEY.
    __libc_tsd_set(TYPE, KEY, VALUE)    -- Set the datum for KEY to VALUE.
 
    We don't define an enum for the possible key values, because the KEYs
    translate directly into variables by macro magic.  */
 
-#if USE___THREAD
-# define __libc_tsd_define(CLASS, TYPE, KEY)   \
+#define __libc_tsd_define(CLASS, TYPE, KEY)    \
   CLASS __thread TYPE __libc_tsd_##KEY attribute_tls_model_ie;
 
-# define __libc_tsd_address(TYPE, KEY)         (&__libc_tsd_##KEY)
-# define __libc_tsd_get(TYPE, KEY)             (__libc_tsd_##KEY)
-# define __libc_tsd_set(TYPE, KEY, VALUE)      (__libc_tsd_##KEY = (VALUE))
-#else
-# define __libc_tsd_define(CLASS, TYPE, KEY)   \
-  CLASS TYPE __libc_tsd_##KEY##_data;
-
-# define __libc_tsd_address(TYPE, KEY)         (&__libc_tsd_##KEY##_data)
-# define __libc_tsd_get(TYPE, KEY)             (__libc_tsd_##KEY##_data)
-# define __libc_tsd_set(TYPE, KEY, VALUE)      (__libc_tsd_##KEY##_data = (VALUE))
-#endif
+#define __libc_tsd_address(TYPE, KEY)          (&__libc_tsd_##KEY)
+#define __libc_tsd_get(TYPE, KEY)              (__libc_tsd_##KEY)
+#define __libc_tsd_set(TYPE, KEY, VALUE)       (__libc_tsd_##KEY = (VALUE))
 
 #endif /* bits/libc-tsd.h */
index 633590f..f7de2b7 100644 (file)
@@ -1,6 +1,6 @@
 /* MT support function to get address of `errno' variable, non-threaded
    version.
-   Copyright (C) 1996, 1998, 2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1998, 2002, 2004, 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
 #include <errno.h>
 #include <tls.h>
 
-#if ! USE___THREAD && !RTLD_PRIVATE_ERRNO
-#undef errno
-extern int errno;
-#endif
-
 int *
-#if ! USE___THREAD
-weak_const_function
-#endif
 __errno_location (void)
 {
   return &errno;
index 03d661b..d5d2c98 100644 (file)
@@ -1,5 +1,5 @@
 /* Definition of `errno' variable.  Canonical version.
-   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 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
 /* Code compiled for rtld refers only to this name.  */
 int rtld_errno attribute_hidden;
 
-#elif USE___THREAD
+#else
 
 __thread int errno;
 extern __thread int __libc_errno __attribute__ ((alias ("errno")))
   attribute_hidden;
 
-#else
-
-/* This differs from plain `int errno;' in that it doesn't create
-   a common definition, but a plain symbol that resides in .bss,
-   which can have an alias.  */
-int errno __attribute__ ((nocommon));
-strong_alias (errno, _errno)
-
-/* We declare these with compat_symbol so that they are not visible at
-   link time.  Programs must use the accessor functions.  RTLD is special,
-   since it's not exported from there at any time.  */
-# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
-#  include <shlib-compat.h>
-compat_symbol (libc, errno, errno, GLIBC_2_0);
-compat_symbol (libc, _errno, _errno, GLIBC_2_0);
-# endif
-
 #endif
index 828588a..f44fa10 100644 (file)
@@ -307,22 +307,19 @@ libc_freeres_fn (free_mem)
        }
     }
 
-  if (USE___THREAD || GL(dl_tls_dtv_slotinfo_list) != NULL)
-    {
-      /* Free the memory allocated for the dtv slotinfo array.  We can do
-        this only if all modules which used this memory are unloaded.  */
+  /* Free the memory allocated for the dtv slotinfo array.  We can do
+     this only if all modules which used this memory are unloaded.  */
 #ifdef SHARED
-      if (GL(dl_initial_dtv) == NULL)
-       /* There was no initial TLS setup, it was set up later when
-          it used the normal malloc.  */
-       free_slotinfo (&GL(dl_tls_dtv_slotinfo_list));
-      else
+  if (GL(dl_initial_dtv) == NULL)
+    /* There was no initial TLS setup, it was set up later when
+       it used the normal malloc.  */
+    free_slotinfo (&GL(dl_tls_dtv_slotinfo_list));
+  else
 #endif
-       /* The first element of the list does not have to be deallocated.
-          It was allocated in the dynamic linker (i.e., with a different
-          malloc), and in the static library it's in .bss space.  */
-       free_slotinfo (&GL(dl_tls_dtv_slotinfo_list)->next);
-    }
+    /* The first element of the list does not have to be deallocated.
+       It was allocated in the dynamic linker (i.e., with a different
+       malloc), and in the static library it's in .bss space.  */
+    free_slotinfo (&GL(dl_tls_dtv_slotinfo_list)->next);
 
   void *scope_free_list = GL(dl_scope_free_list);
   GL(dl_scope_free_list) = NULL;
index f01f8d6..ea0fccd 100644 (file)
@@ -1,5 +1,5 @@
 /* Thread-local data used by error handling for runtime dynamic linker.
-   Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005, 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
 void ** __attribute__ ((const))
 _dl_initial_error_catch_tsd (void)
 {
-#  if USE___THREAD
   static __thread void *data;
-#  else
-  static void *data;
-#  endif
   return &data;
 }
 void **(*_dl_error_catch_tsd) (void) __attribute__ ((const))
      = &_dl_initial_error_catch_tsd;
 
-# elif USE___THREAD
+# else
 
 /* libpthread sets _dl_error_catch_tsd to point to this function.
    We define it here instead of in libpthread so that it doesn't
index 80c7b6e..98c6080 100644 (file)
@@ -21,15 +21,13 @@ extern int rtld_errno attribute_hidden;
 
 #  include <tls.h>
 
-#  if USE___THREAD
-#   undef  errno
-#   ifndef NOT_IN_libc
-#    define errno __libc_errno
-#   else
-#    define errno errno                /* For #ifndef errno tests.  */
-#   endif
-extern __thread int errno attribute_tls_model_ie;
+#  undef  errno
+#  ifndef NOT_IN_libc
+#   define errno __libc_errno
+#  else
+#   define errno errno         /* For #ifndef errno tests.  */
 #  endif
+extern __thread int errno attribute_tls_model_ie;
 
 # endif        /* RTLD_PRIVATE_ERRNO */
 
index 9bbe31b..d5154c5 100644 (file)
@@ -2,29 +2,19 @@
 #include <resolv/netdb.h>
 
 /* Macros for accessing h_errno from inside libc.  */
+# undef  h_errno
 # ifdef _LIBC_REENTRANT
 #  include <tls.h>
-#  if USE___THREAD
-#   undef  h_errno
-#   ifndef NOT_IN_libc
-#    define h_errno __libc_h_errno
-#   else
-#    define h_errno h_errno    /* For #ifndef h_errno tests.  */
-#   endif
-extern __thread int h_errno attribute_tls_model_ie;
-#   define __set_h_errno(x)    (h_errno = (x))
+#  ifndef NOT_IN_libc
+#   define h_errno __libc_h_errno
 #  else
-static inline int
-__set_h_errno (int __err)
-{
-  return *__h_errno_location () = __err;
-}
+#   define h_errno h_errno     /* For #ifndef h_errno tests.  */
 #  endif
+extern __thread int h_errno attribute_tls_model_ie;
 # else
-#  undef  h_errno
-#  define __set_h_errno(x) (h_errno = (x))
 extern int h_errno;
 # endif        /* _LIBC_REENTRANT */
+# define __set_h_errno(x) (h_errno = (x))
 
 libc_hidden_proto (hstrerror)
 libc_hidden_proto (innetgr)
index 7ab7f87..30ea877 100644 (file)
 
 # ifdef _LIBC_REENTRANT
 #  include <tls.h>
-#  if USE___THREAD
-#   undef _res
-#   ifndef NOT_IN_libc
-#    define __resp __libc_resp
-#   endif
-#   define _res (*__resp)
-extern __thread struct __res_state *__resp attribute_tls_model_ie;
+#  undef _res
+#  ifndef NOT_IN_libc
+#   define __resp __libc_resp
 #  endif
+#  define _res (*__resp)
+extern __thread struct __res_state *__resp attribute_tls_model_ie;
 # else
 #  ifndef __BIND_NOSTATIC
 #   undef _res
diff --git a/include/tls.h b/include/tls.h
deleted file mode 100644 (file)
index 8ee2b94..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* This file defines USE___THREAD to 1 or 0 to cut down on the #if mess.  */
-
-#ifndef _include_tls_h
-#define _include_tls_h 1
-
-#include_next <tls.h>
-
-#if !defined NOT_IN_libc || defined IS_IN_libpthread
-
-# define USE___THREAD 1
-
-#else
-
-# define USE___THREAD 0
-
-#endif
-
-#endif
index fd6deeb..1c2002b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 97, 98, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 97, 98, 2002, 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
 #include <netdb.h>
 #include <tls.h>
 
-#if ! USE___THREAD
-# undef h_errno
-extern int h_errno;
-#endif
 
 /* When threaded, h_errno may be a per-thread variable.  */
 int *
index 9ff30a1..59706cd 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996,97,98,2002,2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996,97,98,2002,2003,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
 /* We need to have the error status variable of the resolver
    accessible in the libc.  */
 
-#if USE___THREAD
 __thread int h_errno;
 extern __thread int __libc_h_errno __attribute__ ((alias ("h_errno")))
   attribute_hidden;
-# define h_errno __libc_h_errno
-#else
-/* This differs from plain `int h_errno;' in that it doesn't create
-   a common definition, but a plain symbol that resides in .bss,
-   which can have an alias.  */
-int h_errno __attribute__((section (".bss")));
-weak_alias (h_errno, _h_errno)
-
-/* We declare these with compat_symbol so that they are not
-   visible at link time.  Programs must use the accessor functions.  */
-# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
-#  include <shlib-compat.h>
-compat_symbol (libc, h_errno, h_errno, GLIBC_2_0);
-compat_symbol (libc, _h_errno, _h_errno, GLIBC_2_0);
-# endif
-#endif
+#define h_errno __libc_h_errno
index 29d8b2d..aab5535 100644 (file)
@@ -173,10 +173,6 @@ int __malloc_initialized = -1;
 
 static __malloc_ptr_t (*save_malloc_hook) (size_t __size,
                                           __const __malloc_ptr_t);
-# if !defined _LIBC || (defined SHARED && !USE___THREAD)
-static __malloc_ptr_t (*save_memalign_hook) (size_t __align, size_t __size,
-                                            __const __malloc_ptr_t);
-# endif
 static void           (*save_free_hook) (__malloc_ptr_t __ptr,
                                         __const __malloc_ptr_t);
 static Void_t*        save_arena;
@@ -432,34 +428,6 @@ __failing_morecore (ptrdiff_t d)
 extern struct dl_open_hook *_dl_open_hook;
 libc_hidden_proto (_dl_open_hook);
 # endif
-
-# if defined SHARED && !USE___THREAD
-/* This is called by __pthread_initialize_minimal when it needs to use
-   malloc to set up the TLS state.  We cannot do the full work of
-   ptmalloc_init (below) until __pthread_initialize_minimal has finished,
-   so it has to switch to using the special startup-time hooks while doing
-   those allocations.  */
-void
-__libc_malloc_pthread_startup (bool first_time)
-{
-  if (first_time)
-    {
-      ptmalloc_init_minimal ();
-      save_malloc_hook = __malloc_hook;
-      save_memalign_hook = __memalign_hook;
-      save_free_hook = __free_hook;
-      __malloc_hook = malloc_starter;
-      __memalign_hook = memalign_starter;
-      __free_hook = free_starter;
-    }
-  else
-    {
-      __malloc_hook = save_malloc_hook;
-      __memalign_hook = save_memalign_hook;
-      __free_hook = save_free_hook;
-    }
-}
-# endif
 #endif
 
 static void
@@ -475,14 +443,7 @@ ptmalloc_init (void)
   if(__malloc_initialized >= 0) return;
   __malloc_initialized = 0;
 
-#ifdef _LIBC
-# if defined SHARED && !USE___THREAD
-  /* ptmalloc_init_minimal may already have been called via
-     __libc_malloc_pthread_startup, above.  */
-  if (mp_.pagesize == 0)
-# endif
-#endif
-    ptmalloc_init_minimal();
+  ptmalloc_init_minimal();
 
   mutex_init(&main_arena.mutex);
   main_arena.next = &main_arena;
index 4b1a996..403024c 100644 (file)
@@ -417,7 +417,7 @@ memalign_check(alignment, bytes, caller)
 #ifndef NO_THREADS
 
 # ifdef _LIBC
-#  if USE___THREAD || !defined SHARED
+#  ifndef SHARED
     /* These routines are never needed in this configuration.  */
 #   define NO_STARTER
 #  endif
index dccb6cc..d7af63d 100644 (file)
@@ -1649,19 +1649,7 @@ static Void_t*   realloc_check(Void_t* oldmem, size_t bytes,
 static Void_t*   memalign_check(size_t alignment, size_t bytes,
                                const Void_t *caller);
 #ifndef NO_THREADS
-# ifdef _LIBC
-#  if USE___THREAD || !defined SHARED
-    /* These routines are never needed in this configuration.  */
-#   define NO_STARTER
-#  endif
-# endif
-# ifdef NO_STARTER
-#  undef NO_STARTER
-# else
-static Void_t*   malloc_starter(size_t sz, const Void_t *caller);
-static Void_t*   memalign_starter(size_t aln, size_t sz, const Void_t *caller);
-static void      free_starter(Void_t* mem, const Void_t *caller);
-# endif
+/* These routines are never needed in this configuration.  */
 static Void_t*   malloc_atfork(size_t sz, const Void_t *caller);
 static void      free_atfork(Void_t* mem, const Void_t *caller);
 #endif
index 3b94006..56f4d1d 100644 (file)
@@ -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.
index 86992c8..9f3e635 100644 (file)
@@ -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
index 18013a8..ee46ab9 100644 (file)
@@ -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.  */
index 2d49934..18adb9a 100644 (file)
@@ -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
index 93c0a64..fb8a398 100644 (file)
@@ -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
index c4d5286..8687ba4 100644 (file)
@@ -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.
 
 
 # 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
 
index 4a154fc..c3dd682 100644 (file)
@@ -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)
index 7924e87..d579861 100644 (file)
@@ -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
index 835e37d..183aac6 100644 (file)
@@ -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)
index 6ef7fcf..aed8609 100644 (file)
@@ -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:
 
index 979b1bf..4691e4d 100644 (file)
@@ -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
index 2926b36..576a494 100644 (file)
@@ -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
index a5719ca..64652c4 100644 (file)
@@ -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
index 2cf6ec1..3ea714a 100644 (file)
@@ -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
index e327e34..b0aa22c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 97, 98, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 97, 98, 2002, 2003, 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
 #include <resolv.h>
 #include <tls.h>
 
-#if ! USE___THREAD
-
-# undef _res
-extern struct __res_state _res;
-
-/* When threaded, _res may be a per-thread variable.  */
-struct __res_state *
-weak_const_function
-__res_state (void)
-{
-  return &_res;
-}
-
-#else
 
 struct __res_state *
 __res_state (void)
 {
   return __resp;
 }
-
-#endif
-
 libc_hidden_def (__res_state)
index 810fbc8..1f6b3a1 100644 (file)
@@ -126,12 +126,10 @@ struct __res_state _res __attribute__((section (".bss")));
 
 #include <tls.h>
 
-#if USE___THREAD
 #undef __resp
 __thread struct __res_state *__resp = &_res;
 extern __thread struct __res_state *__libc_resp
   __attribute__ ((alias ("__resp"))) attribute_hidden;
-#endif
 
 /* We declare this with compat_symbol so that it's not
    visible at link time.  Programs must use the accessor functions.  */
index a093d2b..d1a83ee 100644 (file)
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  i386 version.
-   Copyright (C) 1995-2005, 2006, 2009 Free Software Foundation, Inc.
+   Copyright (C) 1995-2005, 2006, 2009, 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
@@ -243,18 +243,12 @@ _dl_start_user:\n\
    define the value.
    ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
    of the main executable's symbols, as for a COPY reloc.  */
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
 # define elf_machine_type_class(type) \
   ((((type) == R_386_JMP_SLOT || (type) == R_386_TLS_DTPMOD32                \
      || (type) == R_386_TLS_DTPOFF32 || (type) == R_386_TLS_TPOFF32          \
      || (type) == R_386_TLS_TPOFF || (type) == R_386_TLS_DESC)               \
     * ELF_RTYPE_CLASS_PLT)                                                   \
    | (((type) == R_386_COPY) * ELF_RTYPE_CLASS_COPY))
-#else
-# define elf_machine_type_class(type) \
-  ((((type) == R_386_JMP_SLOT) * ELF_RTYPE_CLASS_PLT)                        \
-   | (((type) == R_386_COPY) * ELF_RTYPE_CLASS_COPY))
-#endif
 
 /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
 #define ELF_MACHINE_JMP_SLOT   R_386_JMP_SLOT
@@ -357,44 +351,43 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
          *reloc_addr = value;
          break;
 
-# if !defined RTLD_BOOTSTRAP || USE___THREAD
        case R_386_TLS_DTPMOD32:
-#  ifdef RTLD_BOOTSTRAP
+# ifdef RTLD_BOOTSTRAP
          /* During startup the dynamic linker is always the module
             with index 1.
             XXX If this relocation is necessary move before RESOLVE
             call.  */
          *reloc_addr = 1;
-#  else
+# else
          /* Get the information from the link map returned by the
             resolv function.  */
          if (sym_map != NULL)
            *reloc_addr = sym_map->l_tls_modid;
-#  endif
+# endif
          break;
        case R_386_TLS_DTPOFF32:
-#  ifndef RTLD_BOOTSTRAP
+# ifndef RTLD_BOOTSTRAP
          /* During relocation all TLS symbols are defined and used.
             Therefore the offset is already correct.  */
          if (sym != NULL)
            *reloc_addr = sym->st_value;
-#  endif
+# endif
          break;
        case R_386_TLS_DESC:
          {
            struct tlsdesc volatile *td =
              (struct tlsdesc volatile *)reloc_addr;
 
-#  ifndef RTLD_BOOTSTRAP
+# ifndef RTLD_BOOTSTRAP
            if (! sym)
              td->entry = _dl_tlsdesc_undefweak;
            else
-#  endif
+# endif
              {
-#  ifndef RTLD_BOOTSTRAP
-#   ifndef SHARED
+# ifndef RTLD_BOOTSTRAP
+#  ifndef SHARED
                CHECK_STATIC_TLS (map, sym_map);
-#   else
+#  else
                if (!TRY_STATIC_TLS (map, sym_map))
                  {
                    td->arg = _dl_make_tlsdesc_dynamic
@@ -402,8 +395,8 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
                    td->entry = _dl_tlsdesc_dynamic;
                  }
                else
-#   endif
 #  endif
+# endif
                  {
                    td->arg = (void*)(sym->st_value - sym_map->l_tls_offset
                                      + (ElfW(Word))td->arg);
@@ -426,13 +419,13 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
              CHECK_STATIC_TLS (map, sym_map);
              *reloc_addr += sym_map->l_tls_offset - sym->st_value;
            }
-#  endif
+# endif
          break;
        case R_386_TLS_TPOFF:
          /* The offset is negative, forward from the thread pointer.  */
-#  ifdef RTLD_BOOTSTRAP
+# ifdef RTLD_BOOTSTRAP
          *reloc_addr += sym->st_value - map->l_tls_offset;
-#  else
+# else
          /* We know the offset of object the symbol is contained in.
             It is a negative value which will be added to the
             thread pointer.  */
@@ -441,9 +434,8 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
              CHECK_STATIC_TLS (map, sym_map);
              *reloc_addr += sym->st_value - sym_map->l_tls_offset;
            }
-#  endif
+# endif
          break;
-# endif        /* use TLS */
 
 # ifndef RTLD_BOOTSTRAP
        case R_386_32:
index 61b4ea9..6f88005 100644 (file)
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  IA-64 version.
-   Copyright (C) 1995-1997, 2000-2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997, 2000-2006, 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
@@ -311,15 +311,10 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
    of the main executable's symbols, as for a COPY reloc, which we don't
    use.  */
 /* ??? Ignore *MSB for now.  */
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
 #define elf_machine_type_class(type) \
   (((type) == R_IA64_IPLTLSB || (type) == R_IA64_DTPMOD64LSB                 \
     || (type) == R_IA64_DTPREL64LSB || (type) == R_IA64_TPREL64LSB)          \
    * ELF_RTYPE_CLASS_PLT)
-#else
-#define elf_machine_type_class(type) \
-  (((type) == R_IA64_IPLTLSB) * ELF_RTYPE_CLASS_PLT)
-#endif
 
 /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
 #define ELF_MACHINE_JMP_SLOT    R_IA64_IPLTLSB
@@ -405,7 +400,7 @@ elf_machine_rela (struct link_map *map,
       /* Already done in dynamic linker.  */
       if (map != &GL(dl_rtld_map))
 # endif
-        value += map->l_addr;
+       value += map->l_addr;
     }
   else
 #endif
@@ -417,7 +412,7 @@ elf_machine_rela (struct link_map *map,
 
       /* RESOLVE_MAP() will return NULL if it fail to locate the symbol.  */
       if ((sym_map = RESOLVE_MAP (&sym, version, r_type)))
-        {
+       {
          value = sym_map->l_addr + sym->st_value + reloc->r_addend;
 
          if (R_IA64_TYPE (r_type) == R_IA64_TYPE (R_IA64_DIR64LSB))
@@ -432,26 +427,24 @@ elf_machine_rela (struct link_map *map,
            value = _dl_make_fptr (sym_map, sym, value);
          else if (R_IA64_TYPE (r_type) == R_IA64_TYPE (R_IA64_PCREL64LSB))
            value -= (Elf64_Addr) reloc_addr & -16;
-#if !defined RTLD_BOOTSTRAP || defined USE___THREAD
          else if (R_IA64_TYPE (r_type) == R_IA64_TYPE (R_IA64_DTPMOD64LSB))
-# ifdef RTLD_BOOTSTRAP
+#ifdef RTLD_BOOTSTRAP
            /* During startup the dynamic linker is always index 1.  */
            value = 1;
-# else
+#else
            /* Get the information from the link map returned by the
               resolv function.  */
            value = sym_map->l_tls_modid;
          else if (R_IA64_TYPE (r_type) == R_IA64_TYPE (R_IA64_DTPREL64LSB))
            value -= sym_map->l_addr;
-# endif
+#endif
          else if (R_IA64_TYPE (r_type) == R_IA64_TYPE (R_IA64_TPREL64LSB))
            {
-# ifndef RTLD_BOOTSTRAP
+#ifndef RTLD_BOOTSTRAP
              CHECK_STATIC_TLS (map, sym_map);
-# endif
+#endif
              value += sym_map->l_tls_offset - sym_map->l_addr;
            }
-#endif
          else
            _dl_reloc_bad_type (map, r_type, 0);
        }
index 5351d96..e7052b6 100644 (file)
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  PowerPC version.
-   Copyright (C) 1995-2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1995-2003, 2005, 2006, 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
@@ -135,7 +135,6 @@ __elf_preferred_address(struct link_map *loader, size_t maplength,
 /* We never want to use a PLT entry as the destination of a
    reloc, when what is being relocated is a branch. This is
    partly for efficiency, but mostly so we avoid loops.  */
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
 #define elf_machine_type_class(type)                   \
   ((((type) == R_PPC_JMP_SLOT                          \
     || (type) == R_PPC_REL24                           \
@@ -143,13 +142,6 @@ __elf_preferred_address(struct link_map *loader, size_t maplength,
        && (type) <= R_PPC_DTPREL32)                    \
     || (type) == R_PPC_ADDR24) * ELF_RTYPE_CLASS_PLT)  \
    | (((type) == R_PPC_COPY) * ELF_RTYPE_CLASS_COPY))
-#else
-#define elf_machine_type_class(type) \
-  ((((type) == R_PPC_JMP_SLOT                          \
-    || (type) == R_PPC_REL24                           \
-    || (type) == R_PPC_ADDR24) * ELF_RTYPE_CLASS_PLT)  \
-   | (((type) == R_PPC_COPY) * ELF_RTYPE_CLASS_COPY))
-#endif
 
 /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
 #define ELF_MACHINE_JMP_SLOT   R_PPC_JMP_SLOT
@@ -331,8 +323,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
       *reloc_addr = value;
       break;
 
-#if (!defined RTLD_BOOTSTRAP || USE___THREAD) \
-    && !defined RESOLVE_CONFLICT_FIND_MAP
+#ifndef RESOLVE_CONFLICT_FIND_MAP
 # ifdef RTLD_BOOTSTRAP
 #  define NOT_BOOTSTRAP 0
 # else
index 901a44e..2defc44 100644 (file)
@@ -1,6 +1,6 @@
 /* Machine-dependent ELF dynamic relocation inline functions.
    PowerPC64 version.
-   Copyright 1995-2005, 2006, 2008, 2010 Free Software Foundation, Inc.
+   Copyright 1995-2005, 2006, 2008, 2010, 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
@@ -376,9 +376,9 @@ elf_machine_runtime_setup (struct link_map *map, int lazy, int profile)
                 branch using two instructions;  Past that point,
                 glink uses three instructions.  */
              if (i < 0x8000)
-               glink_offset += 2;
+               glink_offset += 2;
              else
-               glink_offset += 3;
+               glink_offset += 3;
            }
 
          /* Now, we've modified data.  We need to write the changes from
@@ -492,10 +492,10 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
 #define dont_expect(X) __builtin_expect ((X), 0)
 
 extern void _dl_reloc_overflow (struct link_map *map,
-                                const char *name,
-                                Elf64_Addr *const reloc_addr,
-                                const Elf64_Sym *refsym)
-                                attribute_hidden;
+                               const char *name,
+                               Elf64_Addr *const reloc_addr,
+                               const Elf64_Sym *refsym)
+                               attribute_hidden;
 
 auto inline void __attribute__ ((always_inline))
 elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
@@ -505,7 +505,6 @@ elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
   *reloc_addr = l_addr + reloc->r_addend;
 }
 
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
 /* This computes the value used by TPREL* relocs.  */
 auto inline Elf64_Addr __attribute__ ((always_inline, const))
 elf_machine_tprel (struct link_map *map,
@@ -513,18 +512,17 @@ elf_machine_tprel (struct link_map *map,
                   const Elf64_Sym *sym,
                   const Elf64_Rela *reloc)
 {
-# ifndef RTLD_BOOTSTRAP
+#ifndef RTLD_BOOTSTRAP
   if (sym_map)
     {
       CHECK_STATIC_TLS (map, sym_map);
-# endif
+#endif
       return TLS_TPREL_VALUE (sym_map, sym, reloc);
-# ifndef RTLD_BOOTSTRAP
+#ifndef RTLD_BOOTSTRAP
     }
-# endif
+#endif
   return 0;
 }
-#endif
 
 /* Call function at address VALUE (an OPD entry) to resolve ifunc relocs.  */
 auto inline Elf64_Addr __attribute__ ((always_inline))
@@ -611,26 +609,25 @@ elf_machine_rela (struct link_map *map,
 #endif
       return;
 
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
     case R_PPC64_DTPMOD64:
-# ifdef RTLD_BOOTSTRAP
+#ifdef RTLD_BOOTSTRAP
       /* During startup the dynamic linker is always index 1.  */
       *reloc_addr = 1;
-# else
+#else
       /* Get the information from the link map returned by the
         resolve function.  */
       if (sym_map != NULL)
-        *reloc_addr = sym_map->l_tls_modid;
-# endif
+       *reloc_addr = sym_map->l_tls_modid;
+#endif
       return;
 
     case R_PPC64_DTPREL64:
       /* During relocation all TLS symbols are defined and used.
-         Therefore the offset is already correct.  */
-# ifndef RTLD_BOOTSTRAP
+        Therefore the offset is already correct.  */
+#ifndef RTLD_BOOTSTRAP
       if (sym_map != NULL)
        *reloc_addr = TLS_DTPREL_VALUE (sym, reloc);
-# endif
+#endif
       return;
 
     case R_PPC64_TPREL64:
@@ -640,21 +637,21 @@ elf_machine_rela (struct link_map *map,
     case R_PPC64_TPREL16_LO_DS:
       value = elf_machine_tprel (map, sym_map, sym, reloc);
       if (dont_expect ((value & 3) != 0))
-        _dl_reloc_overflow (map, "R_PPC64_TPREL16_LO_DS", reloc_addr, refsym);
+       _dl_reloc_overflow (map, "R_PPC64_TPREL16_LO_DS", reloc_addr, refsym);
       BIT_INSERT (*(Elf64_Half *) reloc_addr, value, 0xfffc);
       break;
 
     case R_PPC64_TPREL16_DS:
       value = elf_machine_tprel (map, sym_map, sym, reloc);
       if (dont_expect ((value + 0x8000) >= 0x10000 || (value & 3) != 0))
-        _dl_reloc_overflow (map, "R_PPC64_TPREL16_DS", reloc_addr, refsym);
+       _dl_reloc_overflow (map, "R_PPC64_TPREL16_DS", reloc_addr, refsym);
       BIT_INSERT (*(Elf64_Half *) reloc_addr, value, 0xfffc);
       break;
 
     case R_PPC64_TPREL16:
       value = elf_machine_tprel (map, sym_map, sym, reloc);
       if (dont_expect ((value + 0x8000) >= 0x10000))
-        _dl_reloc_overflow (map, "R_PPC64_TPREL16", reloc_addr, refsym);
+       _dl_reloc_overflow (map, "R_PPC64_TPREL16", reloc_addr, refsym);
       *(Elf64_Half *) reloc_addr = PPC_LO (value);
       break;
 
@@ -692,12 +689,11 @@ elf_machine_rela (struct link_map *map,
       value = elf_machine_tprel (map, sym_map, sym, reloc);
       *(Elf64_Half *) reloc_addr = PPC_HIGHESTA (value);
       break;
-#endif
 
 #ifndef RTLD_BOOTSTRAP /* None of the following appear in ld.so */
     case R_PPC64_ADDR16_LO_DS:
       if (dont_expect ((value & 3) != 0))
-        _dl_reloc_overflow (map, "R_PPC64_ADDR16_LO_DS", reloc_addr, refsym);
+       _dl_reloc_overflow (map, "R_PPC64_ADDR16_LO_DS", reloc_addr, refsym);
       BIT_INSERT (*(Elf64_Half *) reloc_addr, value, 0xfffc);
       break;
 
@@ -715,29 +711,29 @@ elf_machine_rela (struct link_map *map,
 
     case R_PPC64_ADDR30:
       {
-        Elf64_Addr delta = value - (Elf64_Xword) reloc_addr;
-        if (dont_expect ((delta + 0x80000000) >= 0x10000000
+       Elf64_Addr delta = value - (Elf64_Xword) reloc_addr;
+       if (dont_expect ((delta + 0x80000000) >= 0x10000000
                         || (delta & 3) != 0))
-          _dl_reloc_overflow (map, "R_PPC64_ADDR30", reloc_addr, refsym);
-        BIT_INSERT (*(Elf64_Word *) reloc_addr, delta, 0xfffffffc);
+         _dl_reloc_overflow (map, "R_PPC64_ADDR30", reloc_addr, refsym);
+       BIT_INSERT (*(Elf64_Word *) reloc_addr, delta, 0xfffffffc);
       }
       break;
 
     case R_PPC64_COPY:
       if (dont_expect (sym == NULL))
        /* This can happen in trace mode when an object could not be found. */
-        return;
+       return;
       if (dont_expect (sym->st_size > refsym->st_size
                       || (GLRO(dl_verbose)
                           && sym->st_size < refsym->st_size)))
        {
-          const char *strtab;
+         const char *strtab;
 
-          strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
-          _dl_error_printf ("%s: Symbol `%s' has different size" \
-                            " in shared object," \
-                            " consider re-linking\n",
-                            _dl_argv[0] ?: "<program name unknown>",
+         strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
+         _dl_error_printf ("%s: Symbol `%s' has different size" \
+                           " in shared object," \
+                           " consider re-linking\n",
+                           _dl_argv[0] ?: "<program name unknown>",
                            strtab + refsym->st_name);
        }
       memcpy (reloc_addr_arg, (char *) value,
@@ -766,25 +762,25 @@ elf_machine_rela (struct link_map *map,
 
     case R_PPC64_ADDR32:
       if (dont_expect ((value + 0x80000000) >= 0x10000000))
-        _dl_reloc_overflow (map, "R_PPC64_ADDR32", reloc_addr, refsym);
+       _dl_reloc_overflow (map, "R_PPC64_ADDR32", reloc_addr, refsym);
       *(Elf64_Word *) reloc_addr = value;
       return;
 
     case R_PPC64_ADDR24:
       if (dont_expect ((value + 0x2000000) >= 0x4000000 || (value & 3) != 0))
-        _dl_reloc_overflow (map, "R_PPC64_ADDR24", reloc_addr, refsym);
+       _dl_reloc_overflow (map, "R_PPC64_ADDR24", reloc_addr, refsym);
       BIT_INSERT (*(Elf64_Word *) reloc_addr, value, 0x3fffffc);
       break;
 
     case R_PPC64_ADDR16:
       if (dont_expect ((value + 0x8000) >= 0x10000))
-        _dl_reloc_overflow (map, "R_PPC64_ADDR16", reloc_addr, refsym);
+       _dl_reloc_overflow (map, "R_PPC64_ADDR16", reloc_addr, refsym);
       *(Elf64_Half *) reloc_addr = value;
       break;
 
     case R_PPC64_UADDR16:
       if (dont_expect ((value + 0x8000) >= 0x10000))
-        _dl_reloc_overflow (map, "R_PPC64_UADDR16", reloc_addr, refsym);
+       _dl_reloc_overflow (map, "R_PPC64_UADDR16", reloc_addr, refsym);
       /* We are big-endian.  */
       ((char *) reloc_addr_arg)[0] = (value >> 8) & 0xff;
       ((char *) reloc_addr_arg)[1] = (value >> 0) & 0xff;
@@ -792,7 +788,7 @@ elf_machine_rela (struct link_map *map,
 
     case R_PPC64_ADDR16_DS:
       if (dont_expect ((value + 0x8000) >= 0x10000 || (value & 3) != 0))
-        _dl_reloc_overflow (map, "R_PPC64_ADDR16_DS", reloc_addr, refsym);
+       _dl_reloc_overflow (map, "R_PPC64_ADDR16_DS", reloc_addr, refsym);
       BIT_INSERT (*(Elf64_Half *) reloc_addr, value, 0xfffc);
       break;
 
@@ -816,11 +812,11 @@ elf_machine_rela (struct link_map *map,
     case R_PPC64_ADDR14_BRTAKEN:
     case R_PPC64_ADDR14_BRNTAKEN:
       {
-        if (dont_expect ((value + 0x8000) >= 0x10000 || (value & 3) != 0))
+       if (dont_expect ((value + 0x8000) >= 0x10000 || (value & 3) != 0))
          _dl_reloc_overflow (map, "R_PPC64_ADDR14", reloc_addr, refsym);
-        Elf64_Word insn = *(Elf64_Word *) reloc_addr;
-        BIT_INSERT (insn, value, 0xfffc);
-        if (r_type != R_PPC64_ADDR14)
+       Elf64_Word insn = *(Elf64_Word *) reloc_addr;
+       BIT_INSERT (insn, value, 0xfffc);
+       if (r_type != R_PPC64_ADDR14)
          {
            insn &= ~(1 << 21);
            if (r_type == R_PPC64_ADDR14_BRTAKEN)
@@ -830,7 +826,7 @@ elf_machine_rela (struct link_map *map,
            else if ((insn & (0x14 << 21)) == (0x10 << 21))
              insn |= 0x08 << 21;
          }
-        *(Elf64_Word *) reloc_addr = insn;
+       *(Elf64_Word *) reloc_addr = insn;
       }
       break;
 
index 415b388..b1f6f41 100644 (file)
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  S390 Version.
-   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2011
    Free Software Foundation, Inc.
    Contributed by Carl Pederson & Martin Schwidefsky.
    This file is part of the GNU C Library.
@@ -43,7 +43,7 @@ elf_machine_matches_host (const Elf32_Ehdr *ehdr)
     return 0;
 
   return (ehdr->e_machine == EM_S390 || ehdr->e_machine == EM_S390_OLD)
-         && ehdr->e_ident[EI_CLASS] == ELFCLASS32;
+        && ehdr->e_ident[EI_CLASS] == ELFCLASS32;
 }
 
 
@@ -316,8 +316,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
          *reloc_addr = value + reloc->r_addend;
          break;
 
-#if (!defined RTLD_BOOTSTRAP || USE___THREAD) \
-    && !defined RESOLVE_CONFLICT_FIND_MAP
+#ifndef RESOLVE_CONFLICT_FIND_MAP
        case R_390_TLS_DTPMOD:
 # ifdef RTLD_BOOTSTRAP
          /* During startup the dynamic linker is always the module
index c4df274..913ea08 100644 (file)
@@ -1,6 +1,6 @@
 /* Machine-dependent ELF dynamic relocation inline functions.
    64 bit S/390 Version.
-   Copyright (C) 2001-2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2001-2005, 2006, 2011 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
@@ -288,8 +288,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
          *reloc_addr = value + reloc->r_addend;
          break;
 
-#if (!defined RTLD_BOOTSTRAP || USE___THREAD) \
-    && !defined RESOLVE_CONFLICT_FIND_MAP
+#ifndef RESOLVE_CONFLICT_FIND_MAP
        case R_390_TLS_DTPMOD:
 # ifdef RTLD_BOOTSTRAP
          /* During startup the dynamic linker is always the module
index 78f70e3..4e09ea4 100644 (file)
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  SH version.
-   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -208,17 +208,11 @@ __fpscr_values:\n\
    define the value.
    ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
    of the main executable's symbols, as for a COPY reloc.  */
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
-# define elf_machine_type_class(type) \
+#define elf_machine_type_class(type) \
   ((((type) == R_SH_JMP_SLOT || (type) == R_SH_TLS_DTPMOD32                  \
      || (type) == R_SH_TLS_DTPOFF32 || (type) == R_SH_TLS_TPOFF32)           \
     * ELF_RTYPE_CLASS_PLT)                                                   \
    | (((type) == R_SH_COPY) * ELF_RTYPE_CLASS_COPY))
-#else
-#define elf_machine_type_class(type) \
-  ((((type) == R_SH_JMP_SLOT) * ELF_RTYPE_CLASS_PLT)   \
-   | (((type) == R_SH_COPY) * ELF_RTYPE_CLASS_COPY))
-#endif
 
 /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
 #define ELF_MACHINE_JMP_SLOT   R_SH_JMP_SLOT
@@ -354,35 +348,34 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
          /* These addresses are always aligned.  */
          *reloc_addr = value;
          break;
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
          /* XXX Remove TLS relocations which are not needed.  */
        case R_SH_TLS_DTPMOD32:
-# ifdef RTLD_BOOTSTRAP
+#ifdef RTLD_BOOTSTRAP
          /* During startup the dynamic linker is always the module
             with index 1.
             XXX If this relocation is necessary move before RESOLVE
             call.  */
          *reloc_addr = 1;
-# else
+#else
          /* Get the information from the link map returned by the
             resolv function.  */
          if (sym_map != NULL)
            *reloc_addr = sym_map->l_tls_modid;
-# endif
+#endif
          break;
        case R_SH_TLS_DTPOFF32:
-# ifndef RTLD_BOOTSTRAP
+#ifndef RTLD_BOOTSTRAP
          /* During relocation all TLS symbols are defined and used.
             Therefore the offset is already correct.  */
          if (sym != NULL)
            *reloc_addr = sym->st_value;
-# endif
+#endif
          break;
        case R_SH_TLS_TPOFF32:
          /* The offset is positive, afterward from the thread pointer.  */
-# ifdef RTLD_BOOTSTRAP
+#ifdef RTLD_BOOTSTRAP
          *reloc_addr = map->l_tls_offset + sym->st_value + reloc->r_addend;
-# else
+#else
          /* We know the offset of object the symbol is contained in.
             It is a positive value which will be added to the thread
             pointer.  To get the variable position in the TLS block
@@ -393,9 +386,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
              *reloc_addr = sym_map->l_tls_offset + sym->st_value
                            + reloc->r_addend;
            }
-# endif
+#endif
          break;
-#endif /* use TLS */
        case R_SH_DIR32:
          {
 #ifndef RTLD_BOOTSTRAP
index f2bc94a..8f54f7e 100644 (file)
@@ -139,7 +139,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
                 nop
                .word MAP
 
-         The PC value (pltpc) saved in %g2 by the jmpl points near the
+        The PC value (pltpc) saved in %g2 by the jmpl points near the
         location where we store the link_map pointer for this object.  */
 
       plt[0] = 0x05000000 | ((rfunc >> 10) & 0x003fffff);
@@ -193,17 +193,11 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
    PLT entries should not be allowed to define the value.
    ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
    of the main executable's symbols, as for a COPY reloc.  */
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
-# define elf_machine_type_class(type) \
+#define elf_machine_type_class(type) \
   ((((type) == R_SPARC_JMP_SLOT                                                      \
      || ((type) >= R_SPARC_TLS_GD_HI22 && (type) <= R_SPARC_TLS_TPOFF64))     \
     * ELF_RTYPE_CLASS_PLT)                                                   \
    | (((type) == R_SPARC_COPY) * ELF_RTYPE_CLASS_COPY))
-#else
-# define elf_machine_type_class(type) \
-  ((((type) == R_SPARC_JMP_SLOT) * ELF_RTYPE_CLASS_PLT)                              \
-   | (((type) == R_SPARC_COPY) * ELF_RTYPE_CLASS_COPY))
-#endif
 
 /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
 #define ELF_MACHINE_JMP_SLOT   R_SPARC_JMP_SLOT
@@ -454,8 +448,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
        sparc_fixup_plt (reloc, reloc_addr, value, 0, do_flush);
       }
       break;
-#if (!defined RTLD_BOOTSTRAP || USE___THREAD) \
-    && !defined RESOLVE_CONFLICT_FIND_MAP
+#ifndef RESOLVE_CONFLICT_FIND_MAP
     case R_SPARC_TLS_DTPMOD32:
       /* Get the information from the link map returned by the
         resolv function.  */
index 3f71a66..47579cd 100644 (file)
@@ -1,6 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  Sparc64 version.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-       2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1997-2006, 2009, 2010, 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
@@ -77,11 +76,11 @@ elf_machine_load_address (void)
   register Elf64_Addr *got __asm ("%l7");
 
   __asm ("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t"
-         "call 1f\n\t"
-         " add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t"
-         "call _DYNAMIC\n\t"
-         "call _GLOBAL_OFFSET_TABLE_\n"
-         "1:\tadd %1, %0, %1\n\t" : "=r" (pc), "=r" (got));
+        "call 1f\n\t"
+        " add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t"
+        "call _DYNAMIC\n\t"
+        "call _GLOBAL_OFFSET_TABLE_\n"
+        "1:\tadd %1, %0, %1\n\t" : "=r" (pc), "=r" (got));
 
   /* got is now l_addr + _GLOBAL_OFFSET_TABLE_
      *got is _DYNAMIC
@@ -115,17 +114,11 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
    PLT entries should not be allowed to define the value.
    ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
    of the main executable's symbols, as for a COPY reloc.  */
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
-# define elf_machine_type_class(type) \
+#define elf_machine_type_class(type) \
   ((((type) == R_SPARC_JMP_SLOT                                                      \
      || ((type) >= R_SPARC_TLS_GD_HI22 && (type) <= R_SPARC_TLS_TPOFF64))     \
     * ELF_RTYPE_CLASS_PLT)                                                   \
    | (((type) == R_SPARC_COPY) * ELF_RTYPE_CLASS_COPY))
-#else
-# define elf_machine_type_class(type) \
-  ((((type) == R_SPARC_JMP_SLOT) * ELF_RTYPE_CLASS_PLT)        \
-   | (((type) == R_SPARC_COPY) * ELF_RTYPE_CLASS_COPY))
-#endif
 
 /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
 #define ELF_MACHINE_JMP_SLOT   R_SPARC_JMP_SLOT
@@ -168,7 +161,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
 
       /* PLT0 looks like:
 
-         sethi %uhi(_dl_runtime_{resolve,profile}_0), %g4
+        sethi  %uhi(_dl_runtime_{resolve,profile}_0), %g4
         sethi  %hi(_dl_runtime_{resolve,profile}_0), %g5
         or     %g4, %ulo(_dl_runtime_{resolve,profile}_0), %g4
         or     %g5, %lo(_dl_runtime_{resolve,profile}_0), %g5
@@ -189,7 +182,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
 
       /* PLT1 looks like:
 
-         sethi %uhi(_dl_runtime_{resolve,profile}_1), %g4
+        sethi  %uhi(_dl_runtime_{resolve,profile}_1), %g4
         sethi  %hi(_dl_runtime_{resolve,profile}_1), %g5
         or     %g4, %ulo(_dl_runtime_{resolve,profile}_1), %g4
         or     %g5, %lo(_dl_runtime_{resolve,profile}_1), %g5
@@ -479,8 +472,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
       sparc64_fixup_plt (map, reloc, reloc_addr, value, reloc->r_addend, 0);
 #endif
       break;
-#if (!defined RTLD_BOOTSTRAP || USE___THREAD) \
-    && !defined RESOLVE_CONFLICT_FIND_MAP
+#ifndef RESOLVE_CONFLICT_FIND_MAP
     case R_SPARC_TLS_DTPMOD64:
       /* Get the information from the link map returned by the
         resolv function.  */
index 3bc872a..9f279e1 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1992,1993,1994,1995,1996,1997,2000,2002,2004,2005
+/* Copyright (C) 1991-1997,2000,2002,2004,2005,2011
        Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -46,57 +46,24 @@ syscall_error:
 notb:
 #endif
 #ifndef        PIC
-# if USE___THREAD
-#  ifndef NO_TLS_DIRECT_SEG_REFS
+# ifndef NO_TLS_DIRECT_SEG_REFS
        movl %eax, %gs:C_SYMBOL_NAME(errno@NTPOFF)
-#  else
+# else
        movl %gs:0, %ecx
        movl %eax, C_SYMBOL_NAME(errno@NTPOFF)(%ecx)
-#  endif
-# elif !defined _LIBC_REENTRANT
-       movl %eax, C_SYMBOL_NAME(errno)
-# else
-       pushl %eax
-       PUSH_ERRNO_LOCATION_RETURN
-       call BP_SYM (__errno_location)
-       POP_ERRNO_LOCATION_RETURN
-       popl %ecx
-       movl %ecx, (%eax)
 # endif
 #else
        /* The caller has pushed %ebx and then set it up to
           point to the GOT before calling us through the PLT.  */
-# if USE___THREAD
        movl C_SYMBOL_NAME(errno@GOTNTPOFF)(%ebx), %ecx
 
        /* Pop %ebx value saved before jumping here.  */
        popl %ebx
-#  ifndef NO_TLS_DIRECT_SEG_REFS
+# ifndef NO_TLS_DIRECT_SEG_REFS
        addl %gs:0, %ecx
        movl %eax, (%ecx)
-#  else
-       movl %eax, %gs:0(%ecx)
-#  endif
-# elif RTLD_PRIVATE_ERRNO
-       movl %eax, C_SYMBOL_NAME(rtld_errno@GOTOFF)(%ebx)
-
-       /* Pop %ebx value saved before jumping here.  */
-       popl %ebx
-# elif !defined _LIBC_REENTRANT
-       movl C_SYMBOL_NAME(errno@GOT)(%ebx), %ecx
-
-       /* Pop %ebx value saved before jumping here.  */
-       popl %ebx
-       movl %eax, (%ecx)
 # else
-       pushl %eax
-       PUSH_ERRNO_LOCATION_RETURN
-       call C_SYMBOL_NAME (BP_SYM (__errno_location)@PLT)
-       POP_ERRNO_LOCATION_RETURN
-       popl %ecx
-       /* Pop %ebx value saved before jumping here.  */
-       popl %ebx
-       movl %ecx, (%eax)
+       movl %eax, %gs:0(%ecx)
 # endif
 #endif
        movl $-1, %eax
index 77e6bad..64ef400 100644 (file)
@@ -1,5 +1,5 @@
-/* Copyright (C) 1992,1993,1995-2000,2002-2006,2007
-       Free Software Foundation, Inc.
+/* Copyright (C) 1992,1993,1995-2000,2002-2006,2007,2011
+       Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>, August 1995.
 
 
 # elif defined _LIBC_REENTRANT
 
-#  if USE___THREAD
-#   ifndef NOT_IN_libc
-#    define SYSCALL_ERROR_ERRNO __libc_errno
-#   else
-#    define SYSCALL_ERROR_ERRNO errno
-#   endif
-#   define SYSCALL_ERROR_HANDLER                                             \
+#  ifndef NOT_IN_libc
+#   define SYSCALL_ERROR_ERRNO __libc_errno
+#  else
+#   define SYSCALL_ERROR_ERRNO errno
+#  endif
+#  define SYSCALL_ERROR_HANDLER                                              \
 0:SETUP_PIC_REG (cx);                                                        \
   addl $_GLOBAL_OFFSET_TABLE_, %ecx;                                         \
   movl SYSCALL_ERROR_ERRNO@GOTNTPOFF(%ecx), %ecx;                            \
   SYSCALL_ERROR_HANDLER_TLS_STORE (%edx, %ecx);                                      \
   orl $-1, %eax;                                                             \
   jmp L(pseudo_end);
-#   ifndef NO_TLS_DIRECT_SEG_REFS
-#    define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff)                    \
+#  ifndef NO_TLS_DIRECT_SEG_REFS
+#   define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff)                     \
   movl src, %gs:(destoff)
-#   else
-#    define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff)                    \
+#  else
+#   define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff)                     \
   addl %gs:0, destoff;                                                       \
   movl src, (destoff)
-#   endif
-#  else
-#   define SYSCALL_ERROR_HANDLER                                             \
-0:pushl %ebx;                                                                \
-  cfi_adjust_cfa_offset (4);                                                 \
-  cfi_rel_offset (ebx, 0);                                                   \
-  SETUP_PIC_REG (bx);                                                        \
-  addl $_GLOBAL_OFFSET_TABLE_, %ebx;                                         \
-  xorl %edx, %edx;                                                           \
-  subl %eax, %edx;                                                           \
-  pushl %edx;                                                                \
-  cfi_adjust_cfa_offset (4);                                                 \
-  PUSH_ERRNO_LOCATION_RETURN;                                                \
-  call BP_SYM (__errno_location)@PLT;                                        \
-  POP_ERRNO_LOCATION_RETURN;                                                 \
-  popl %ecx;                                                                 \
-  cfi_adjust_cfa_offset (-4);                                                \
-  popl %ebx;                                                                 \
-  cfi_adjust_cfa_offset (-4);                                                \
-  cfi_restore (ebx);                                                         \
-  movl %ecx, (%eax);                                                         \
-  orl $-1, %eax;                                                             \
-  jmp L(pseudo_end);
-/* A quick note: it is assumed that the call to `__errno_location' does
-   not modify the stack!  */
 #  endif
 # else
 /* Store (- %eax) into errno through the GOT.  */
index 3633dd4..3271857 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2001, 2003, 2004, 2011 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
 
@@ -34,7 +34,7 @@ ENTRY(__syscall_error)
        ;;
        st4     [r2]=r8
        mov     r8=-1
-#elif USE___THREAD
+#else
 # ifndef NOT_IN_libc
 #  define SYSCALL_ERROR_ERRNO __libc_errno
 # else
@@ -46,37 +46,7 @@ ENTRY(__syscall_error)
        mov     r8=-1
        add     r2=r2,r13;;
        st4     [r2]=r3
-#elif defined _LIBC_REENTRANT
-       .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(0)
-       alloc   r33=ar.pfs, 0, 4, 0, 0
-       mov     r32=rp
-       .body
-       mov     r35=r8
-       mov     r34=r1
-       ;;
-       br.call.sptk.many b0 = __errno_location
-.Lret0:                /* force new bundle */
-       st4     [r8]=r35
-       mov     r1=r34
-       mov     rp=r32
-       mov     r8=-1
-       mov     ar.pfs=r33
-#else /* _LIBC_REENTRANT */
-       /*
-        * Note that the gp has to be set properly for this to work.
-        * As long as all syscalls are in the same load unit
-        * (executable or shared library) as this routine, we should
-        * be fine.  Otherwise, we would have to first load the global
-        * pointer register from __gp.
-        */
-       addl    r2=@ltoff(errno),gp
-       ;;
-       ld8     r2=[r2]
-       mov     r3=r8
-       mov     r8=-1
-       ;;
-       st4     [r2]=r3
-#endif /* _LIBC_REENTRANT */
+#endif
        ret                     // ret is #define'd in syscall.h!
 END(__syscall_error)
 
index 2a1dad0..5a24fdc 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2011 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
        .text
 ENTRY(__syscall_error)
 #ifndef PIC
-# if USE___THREAD
-#  ifndef NOT_IN_libc
-#   define SYSCALL_ERROR_ERRNO __libc_errno
-#  else
-#   define SYSCALL_ERROR_ERRNO errno
-#  endif
+# ifndef NOT_IN_libc
+#  define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+#  define SYSCALL_ERROR_ERRNO errno
+# endif
        basr    %r1,0
 0:     l       %r1,1f-0b(%r1)
        ear     %r3,%a0
@@ -46,34 +45,6 @@ ENTRY(__syscall_error)
        lhi     %r2,-1
        br      %r14
 1:     .long   SYSCALL_ERROR_ERRNO@ntpoff
-# elif !defined _LIBC_REENTRANT
-       basr    %r1,0
-0:     l       %r1,1f-0b(%r1)
-       lcr     %r2,%r2
-       st      %r2,0(%r1)
-       lhi     %r2,-1
-       br      %r14
-1:     .long  errno
-# else
-       stm     %r13,%r15,52(%r15)
-       cfi_offset (%r15, -36)
-       cfi_offset (%r14, -40)
-       cfi_offset (%r13, -44)
-       lr      %r0,%r15
-       ahi     %r15,-96
-       cfi_adjust_cfa_offset (96)
-       lcr     %r13,%r2
-       st      %r0,0(%r15)
-       basr    %r1,0
-0:     l       %r1,1f-0b(%r1)
-       basr    %r14,%r1
-       st      %r13,0(%r2)
-       lm      %r13,%r15,148(%r15)
-       cfi_adjust_cfa_offset (-96)
-       lhi     %r2,-1
-       br      %r14
-1:     .long  __errno_location
-#endif
 #else
 # if RTLD_PRIVATE_ERRNO
        basr    %r1,0
@@ -83,7 +54,7 @@ ENTRY(__syscall_error)
        lhi     %r2,-1
        br      %r14
 1:     .long   rtld_errno - 0b
-# elif USE___THREAD
+# else
 #  ifndef NOT_IN_libc
 #   define SYSCALL_ERROR_ERRNO __libc_errno
 #  else
@@ -98,39 +69,6 @@ ENTRY(__syscall_error)
        lhi     %r2,-1
        br      %r14
 1:     .long   _GLOBAL_OFFSET_TABLE_-0b
-# elif !defined _LIBC_REENTRANT
-       basr    %r1,0
-0:     al      %r1,1f-0b(%r1)
-       l       %r1,errno@GOT(%r1)
-       lcr     %r2,%r2
-       st      %r2,0(0,%r1)
-       lhi     %r2,-1
-       br      %r14
-1:     .long   _GLOBAL_OFFSET_TABLE_-0b
-# else
-       stm     %r11,%r15,44(%r15)
-       cfi_offset (%r15, -36)
-       cfi_offset (%r14, -40)
-       cfi_offset (%r13, -44)
-       cfi_offset (%r12, -48)
-       cfi_offset (%r11, -52)
-       lr      %r0,%r15
-       ahi     %r15,-96
-       cfi_adjust_cfa_offset (96)
-       lcr     %r11,%r2
-       st      %r0,0(%r15)
-       basr    %r13,0
-0:     l       %r12,1f-0b(%r13)
-       l       %r1,2f-0b(%r13)
-       la      %r12,0(%r12,%r13)
-       bas     %r14,0(%r1,%r13)
-       st      %r11,0(%r2)
-       lm      %r11,%r15,140(%r15)
-       cfi_adjust_cfa_offset (-96)
-       lhi     %r2,-1
-       br      %r14
-1:     .long _GLOBAL_OFFSET_TABLE_-0b
-2:     .long __errno_location@PLT-0b
 # endif
 #endif
 
index 13ce9ab..435eaab 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008
+/* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2011
    Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 #undef PSEUDO
 #define        PSEUDO(name, syscall_name, args)                                      \
   .text;                                                                      \
-  ENTRY (name)                                                               \
+  ENTRY (name)                                                               \
     DO_CALL (syscall_name, args);                                             \
     lhi  %r4,-4095 ;                                                          \
-    clr  %r2,%r4 ;                                                           \
+    clr  %r2,%r4 ;                                                           \
     jnl  SYSCALL_ERROR_LABEL
 
 #undef PSEUDO_END
@@ -70,7 +70,7 @@
 #undef PSEUDO_NOERRNO
 #define        PSEUDO_NOERRNO(name, syscall_name, args)                              \
   .text;                                                                      \
-  ENTRY (name)                                                               \
+  ENTRY (name)                                                               \
     DO_CALL (syscall_name, args)
 
 #undef PSEUDO_END_NOERRNO
@@ -80,7 +80,7 @@
 #undef PSEUDO_ERRVAL
 #define        PSEUDO_ERRVAL(name, syscall_name, args)                               \
   .text;                                                                      \
-  ENTRY (name)                                                               \
+  ENTRY (name)                                                               \
     DO_CALL (syscall_name, args);                                            \
     lcr %r2,%r2
 
     br    %r14;                                                                      \
 2:  .long rtld_errno-1b
 # elif defined _LIBC_REENTRANT
-#  if USE___THREAD
-#   ifndef NOT_IN_libc
-#    define SYSCALL_ERROR_ERRNO __libc_errno
-#   else
-#    define SYSCALL_ERROR_ERRNO errno
-#   endif
-#   define SYSCALL_ERROR_LABEL 0f
-#   define SYSCALL_ERROR_HANDLER \
+#  ifndef NOT_IN_libc
+#   define SYSCALL_ERROR_ERRNO __libc_errno
+#  else
+#   define SYSCALL_ERROR_ERRNO errno
+#  endif
+#  define SYSCALL_ERROR_LABEL 0f
+#  define SYSCALL_ERROR_HANDLER \
 0:  lcr   %r0,%r2;                                                           \
     basr  %r1,0;                                                             \
 1:  al    %r1,2f-1b(%r1);                                                    \
     lhi   %r2,-1;                                                            \
     br    %r14;                                                                      \
 2:  .long _GLOBAL_OFFSET_TABLE_-1b
-#  else
-#   define SYSCALL_ERROR_LABEL 0f
-#   define SYSCALL_ERROR_HANDLER \
-0:  basr  %r1,0;                                                             \
-1:  al    %r1,2f-1b(%r1);                                                    \
-    br    %r1;                                                               \
-2:  .long syscall_error@plt-1b
-#  endif
 # else
 #  define SYSCALL_ERROR_LABEL 0f
 #  define SYSCALL_ERROR_HANDLER \
     if (INTERNAL_SYSCALL_ERROR_P (_ret, ))                                   \
       {                                                                              \
       iserr:                                                                 \
-        __set_errno (INTERNAL_SYSCALL_ERRNO (_ret, ));                       \
-        _ret = -1L;                                                          \
+       __set_errno (INTERNAL_SYSCALL_ERRNO (_ret, ));                        \
+       _ret = -1L;                                                           \
       }                                                                              \
   out:                                                                       \
     (int) _ret;                                                                      \
index bb61e89..41d8143 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2003, 2004, 2011 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
 .text
 ENTRY(__syscall_error)
 #ifndef PIC
-# if USE___THREAD
-#  ifndef NOT_IN_libc
-#   define SYSCALL_ERROR_ERRNO __libc_errno
-#  else
-#   define SYSCALL_ERROR_ERRNO errno
-#  endif
+# ifndef NOT_IN_libc
+#  define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+#  define SYSCALL_ERROR_ERRNO errno
+# endif
        basr    %r1,0
 0:     lg      %r1,1f-0b(%r1)
        ear     %r3,%a0
@@ -49,29 +48,6 @@ ENTRY(__syscall_error)
        lghi    %r2,-1
        br      %r14
 1:     .quad   SYSCALL_ERROR_ERRNO@ntpoff
-# elif !defined _LIBC_REENTRANT
-       larl    %r1,errno
-       lcr     %r2,%r2
-       st      %r2,0(%r1)
-       lghi    %r2,-1
-       br      %r14
-# else
-       stmg    %r13,%r15,104(%r15)
-       cfi_offset (%r15,-40)
-       cfi_offset (%r14,-48)
-       cfi_offset (%r13,-56)
-       lgr     %r0,%r15
-       aghi    %r15,-160
-       cfi_adjust_cfa_offset (160)
-       lcr     %r13,%r2
-       stg     %r0,0(%r15)
-       brasl   %r14,__errno_location
-       st      %r13,0(%r2)
-       lmg     %r13,%r15,264(%r15)
-       cfi_adjust_cfa_offset (-160)
-       lghi    %r2,-1
-       br      %r14
-#endif
 #else
 # if RTLD_PRIVATE_ERRNO
        larl    %r1,rtld_errno
@@ -79,7 +55,7 @@ ENTRY(__syscall_error)
        st      %r2,0(%r1)
        lghi    %r2,-1
        br      %r14
-# elif USE___THREAD
+# else
 #  ifndef NOT_IN_libc
 #   define SYSCALL_ERROR_ERRNO __libc_errno
 #  else
@@ -94,29 +70,6 @@ ENTRY(__syscall_error)
        st      %r2,0(%r1,%r3)
        lghi    %r2,-1
        br      %r14
-# elif !defined _LIBC_REENTRANT
-       larl    %r1,_GLOBAL_OFFSET_TABLE_
-       lg      %r1,errno@GOT(%r1)
-       lcr     %r2,%r2
-       st      %r2,0(%r1)
-       lghi    %r2,-1
-       br      %r14
-# else
-       stmg    %r13,%r15,104(%r15)
-       cfi_offset (%r15,-40)
-       cfi_offset (%r14,-48)
-       cfi_offset (%r13,-56)
-       lgr     %r0,%r15
-       aghi    %r15,-160
-       cfi_adjust_cfa_offset (160)
-       lcr     %r13,%r2
-       stg     %r0,0(%r15)
-       brasl   %r14,__errno_location@PLT
-       st      %r13,0(%r2)
-       lmg     %r13,%r15,264(%r15)
-       cfi_adjust_cfa_offset (-160)
-       lghi    %r2,-1
-       br      %r14
 # endif
 #endif
 
index 4d45417..598fb86 100644 (file)
@@ -1,5 +1,5 @@
 /* Assembler macros for 64 bit S/390.
-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2008
+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2011
    Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
     lghi  %r2,-1;                                                            \
     br    %r14
 # elif defined _LIBC_REENTRANT
-#  if USE___THREAD
-#   ifndef NOT_IN_libc
-#    define SYSCALL_ERROR_ERRNO __libc_errno
-#   else
-#    define SYSCALL_ERROR_ERRNO errno
-#   endif
-#   define SYSCALL_ERROR_LABEL 0f
-#   define SYSCALL_ERROR_HANDLER \
+#  ifndef NOT_IN_libc
+#   define SYSCALL_ERROR_ERRNO __libc_errno
+#  else
+#   define SYSCALL_ERROR_ERRNO errno
+#  endif
+#  define SYSCALL_ERROR_LABEL 0f
+#  define SYSCALL_ERROR_HANDLER \
 0:  lcr   %r0,%r2;                                                           \
     larl  %r1,SYSCALL_ERROR_ERRNO@indntpoff;                                 \
     lg    %r1,0(%r1);                                                        \
     st    %r0,0(%r1,%r2);                                                    \
     lghi   %r2,-1;                                                           \
     br    %r14
-#  else
-#   define SYSCALL_ERROR_LABEL syscall_error@plt
-#   define SYSCALL_ERROR_HANDLER
-#  endif
 # else
 #  define SYSCALL_ERROR_LABEL 0f
 #  define SYSCALL_ERROR_HANDLER \
     if (INTERNAL_SYSCALL_ERROR_P (_ret, ))                                   \
       {                                                                              \
       iserr:                                                                 \
-        __set_errno (INTERNAL_SYSCALL_ERRNO (_ret, ));                       \
-        _ret = -1L;                                                          \
+       __set_errno (INTERNAL_SYSCALL_ERRNO (_ret, ));                        \
+       _ret = -1L;                                                           \
       }                                                                              \
   out:                                                                       \
     (int) _ret;                                                                      \
index 0fc2c4f..4ba0def 100644 (file)
@@ -1,5 +1,5 @@
-/* Copyright (C) 1992,1993,1995,1996,1997,1998,1999,2000,2002,2003,2004,
-   2005,2006,2009      Free Software Foundation, Inc.
+/* Copyright (C) 1992,1993,1995-2000,2002-2006,2009,2011
+       Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
    Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
 
 # elif defined _LIBC_REENTRANT
 
-#  if USE___THREAD
-#   ifndef NOT_IN_libc
-#    define SYSCALL_ERROR_ERRNO __libc_errno
-#   else
-#    define SYSCALL_ERROR_ERRNO errno
-#   endif
-#   define SYSCALL_ERROR_HANDLER \
+#  ifndef NOT_IN_libc
+#   define SYSCALL_ERROR_ERRNO __libc_errno
+#  else
+#   define SYSCALL_ERROR_ERRNO errno
+#  endif
+#  define SYSCALL_ERROR_HANDLER \
        neg r0,r1; \
        mov r12,r2; \
        mov.l 0f,r12; \
        .align 2; \
      0: .long _GLOBAL_OFFSET_TABLE_; \
      1: .long SYSCALL_ERROR_ERRNO@GOTTPOFF
-#  else
-#   define SYSCALL_ERROR_HANDLER \
-       neg r0,r1; \
-       mov.l r14,@-r15; \
-       cfi_adjust_cfa_offset (4); \
-       cfi_rel_offset (r14, 0); \
-       mov.l r12,@-r15; \
-       cfi_adjust_cfa_offset (4); \
-       cfi_rel_offset (r12, 0); \
-       mov.l r1,@-r15; \
-       cfi_adjust_cfa_offset (4); \
-       cfi_rel_offset (r1, 0); \
-       mov.l 0f,r12; \
-       mova 0f,r0; \
-       add r0,r12; \
-       sts.l pr,@-r15; \
-       cfi_adjust_cfa_offset (4); \
-       cfi_rel_offset (pr, 0); \
-       mov r15,r14; \
-       cfi_def_cfa_register (r14); \
-       mov.l 1f,r1; \
-       bsrf r1; \
-         nop; \
-     2: mov r14,r15; \
-       lds.l @r15+,pr; \
-       mov.l @r15+,r1; \
-       mov.l r1,@r0; \
-       mov.l @r15+,r12; \
-       mov.l @r15+,r14; \
-       bra .Lpseudo_end; \
-        mov _IMM1,r0; \
-       .align 2; \
-     0: .long _GLOBAL_OFFSET_TABLE_; \
-     1: .long PLTJMP(C_SYMBOL_NAME(__errno_location))-(2b-.)
-/* A quick note: it is assumed that the call to `__errno_location' does
-   not modify the stack!  */
-#  endif
 # else
 /* Store (-r0) into errno through the GOT.  */
 #  define SYSCALL_ERROR_HANDLER                                                      \
     unsigned int resultvar = INTERNAL_SYSCALL (name, , nr, args);             \
     if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, ), 0))         \
       {                                                                       \
-        __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, ));                   \
-        resultvar = 0xffffffff;                                               \
+       __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, ));                   \
+       resultvar = 0xffffffff;                                               \
       }                                                                       \
     (int) resultvar; })
 
 #define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
   ({                                                                         \
     unsigned long int resultvar;                                             \
-    register long int r3 asm ("%r3") = (name);                               \
+    register long int r3 asm ("%r3") = (name);                               \
     SUBSTITUTE_ARGS_##nr(args);                                                      \
                                                                              \
     asm volatile (SYSCALL_INST_STR##nr SYSCALL_INST_PAD                              \
index 8af045d..161f431 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 2002, 2003, 2004, 2006, 2008
+/* Copyright (C) 1997, 2002, 2003, 2004, 2006, 2008, 2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, January 1997.
@@ -99,32 +99,19 @@ ENTRY(name);                                        \
         mov    -1, %o0;
 # elif defined _LIBC_REENTRANT
 
-#  if USE___THREAD
-#   ifndef NOT_IN_libc
-#    define SYSCALL_ERROR_ERRNO __libc_errno
-#   else
-#    define SYSCALL_ERROR_ERRNO errno
-#   endif
-#   define SYSCALL_ERROR_HANDLER                               \
+#  ifndef NOT_IN_libc
+#   define SYSCALL_ERROR_ERRNO __libc_errno
+#  else
+#   define SYSCALL_ERROR_ERRNO errno
+#  endif
+#  define SYSCALL_ERROR_HANDLER                                \
 0:     SETUP_PIC_REG(o2,g1)                                    \
        sethi   %tie_hi22(SYSCALL_ERROR_ERRNO), %g1;            \
        add     %g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1;       \
        ld      [%o2 + %g1], %g1, %tie_ld(SYSCALL_ERROR_ERRNO); \
-       st      %o0, [%g7 + %g1];                               \
-       jmp     %o7 + 8;                                        \
+       st      %o0, [%g7 + %g1];                               \
+       jmp     %o7 + 8;                                        \
         mov    -1, %o0;
-#  else
-#  define SYSCALL_ERROR_HANDLER                \
-0:     save    %sp, -96, %sp;          \
-       cfi_def_cfa_register(%fp);      \
-       cfi_window_save;                \
-       cfi_register (%o7, %i7);        \
-       call    __errno_location;       \
-        nop;                           \
-       st      %i0, [%o0];             \
-       jmp     %i7 + 8;                \
-        restore %g0, -1, %o0;
-#  endif
 # else
 #  define SYSCALL_ERROR_HANDLER                \
 0:     SETUP_PIC_REG(o2,g1)            \
index bdd1d45..bc8a0b0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 2000, 2002, 2003, 2004, 2006, 2008
+/* Copyright (C) 1997, 2000, 2002, 2003, 2004, 2006, 2008, 2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
@@ -106,32 +106,19 @@ ENTRY(name);                                      \
         mov    -1, %o0;
 # elif defined _LIBC_REENTRANT
 
-#  if USE___THREAD
-#   ifndef NOT_IN_libc
-#    define SYSCALL_ERROR_ERRNO __libc_errno
-#   else
-#    define SYSCALL_ERROR_ERRNO errno
-#   endif
-#   define SYSCALL_ERROR_HANDLER                               \
+#  ifndef NOT_IN_libc
+#   define SYSCALL_ERROR_ERRNO __libc_errno
+#  else
+#   define SYSCALL_ERROR_ERRNO errno
+#  endif
+#  define SYSCALL_ERROR_HANDLER                                \
 0:     SETUP_PIC_REG(o2,g1)                                    \
        sethi   %tie_hi22(SYSCALL_ERROR_ERRNO), %g1;            \
        add     %g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1;       \
        ldx     [%o2 + %g1], %g1, %tie_ldx(SYSCALL_ERROR_ERRNO);\
-       st      %o0, [%g7 + %g1];                               \
-       jmp     %o7 + 8;                                        \
+       st      %o0, [%g7 + %g1];                               \
+       jmp     %o7 + 8;                                        \
         mov    -1, %o0;
-#  else
-#  define SYSCALL_ERROR_HANDLER                \
-0:     save    %sp, -176, %sp;         \
-       cfi_def_cfa_register(%fp);      \
-       cfi_window_save;                \
-       cfi_register (%o7, %i7);        \
-       call    __errno_location;       \
-        nop;                           \
-       st      %i0, [%o0];             \
-       jmp     %i7 + 8;                \
-        restore %g0, -1, %o0;
-#  endif
 # else
 #  define SYSCALL_ERROR_HANDLER                \
 0:     SETUP_PIC_REG(o2,g1)            \
index a9821dc..6436230 100644 (file)
   movl %edx, (%rcx);                           \
   orq $-1, %rax;                               \
   jmp L(pseudo_end);
-# elif USE___THREAD
+# else
 #  ifndef NOT_IN_libc
 #   define SYSCALL_ERROR_ERRNO __libc_errno
 #  else
   movl %edx, %fs:(%rcx);                       \
   orq $-1, %rax;                               \
   jmp L(pseudo_end);
-# elif defined _LIBC_REENTRANT
-/* Store (- %rax) into errno through the GOT.
-   Note that errno occupies only 4 bytes.  */
-#  define SYSCALL_ERROR_HANDLER                        \
-0:                                             \
-  xorl %edx, %edx;                             \
-  subq %rax, %rdx;                             \
-  pushq %rdx;                                  \
-  cfi_adjust_cfa_offset(8);                    \
-  PUSH_ERRNO_LOCATION_RETURN;                  \
-  call BP_SYM (__errno_location)@PLT;          \
-  POP_ERRNO_LOCATION_RETURN;                   \
-  popq %rdx;                                   \
-  cfi_adjust_cfa_offset(-8);                   \
-  movl %edx, (%rax);                           \
-  orq $-1, %rax;                               \
-  jmp L(pseudo_end);
-
-/* A quick note: it is assumed that the call to `__errno_location' does
-   not modify the stack!  */
-# else /* Not _LIBC_REENTRANT.  */
-#  define SYSCALL_ERROR_HANDLER                        \
-0:movq errno@GOTPCREL(%RIP), %rcx;             \
-  xorl %edx, %edx;                             \
-  subq %rax, %rdx;                             \
-  movl %edx, (%rcx);                           \
-  orq $-1, %rax;                               \
-  jmp L(pseudo_end);
 # endif        /* PIC */
 
 /* The Linux/x86-64 kernel expects the system call parameters in
index aca81fe..908da3c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2004, 2005, 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
@@ -45,43 +45,11 @@ syscall_error:
        movl $EAGAIN, %eax      /* Yes; translate it to EAGAIN.  */
 notb:
 #endif
-#if USE___THREAD
-# ifdef PIC
+#ifdef PIC
        movq C_SYMBOL_NAME(errno@GOTTPOFF)(%rip), %rcx
        movl %eax, %fs:0(%rcx)
-# else
-       movl %eax, %fs:C_SYMBOL_NAME(errno@TPOFF)
-# endif
-#elif !defined PIC
-# ifndef _LIBC_REENTRANT
-       movl %eax, C_SYMBOL_NAME(errno)
-# else
-       pushq %rax
-       cfi_adjust_cfa_offset(8)
-       PUSH_ERRNO_LOCATION_RETURN
-       call BP_SYM (__errno_location)
-       POP_ERRNO_LOCATION_RETURN
-       popq %rcx
-       cfi_adjust_cfa_offset(-8)
-       movl %ecx, (%rax)
-# endif
 #else
-# if RTLD_PRIVATE_ERRNO
-       leaq rtld_errno(%rip), %rcx
-       movl %eax, (%rcx)
-# elif !defined _LIBC_REENTRANT
-       movq C_SYMBOL_NAME(errno)@GOTPCREL(%rip), %rcx
-       movl %eax, (%rcx)
-# else
-       pushq %rax
-       cfi_adjust_cfa_offset(8)
-       PUSH_ERRNO_LOCATION_RETURN
-       call C_SYMBOL_NAME (BP_SYM (__errno_location)@PLT)
-       POP_ERRNO_LOCATION_RETURN
-       popq %rcx
-       cfi_adjust_cfa_offset(-8)
-       movl %ecx, (%rax)
-# endif
+       movl %eax, %fs:C_SYMBOL_NAME(errno@TPOFF)
 #endif
        movq $-1, %rax
        ret
index f615e95..4c31ac5 100644 (file)
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  x86-64 version.
-   Copyright (C) 2001-2006, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2006, 2008-2010, 2011 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>.
 
@@ -195,8 +195,7 @@ _dl_start_user:\n\
    define the value.
    ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
    of the main executable's symbols, as for a COPY reloc.  */
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
-# define elf_machine_type_class(type)                                        \
+#define elf_machine_type_class(type)                                         \
   ((((type) == R_X86_64_JUMP_SLOT                                            \
      || (type) == R_X86_64_DTPMOD64                                          \
      || (type) == R_X86_64_DTPOFF64                                          \
@@ -204,11 +203,6 @@ _dl_start_user:\n\
      || (type) == R_X86_64_TLSDESC)                                          \
     * ELF_RTYPE_CLASS_PLT)                                                   \
    | (((type) == R_X86_64_COPY) * ELF_RTYPE_CLASS_COPY))
-#else
-# define elf_machine_type_class(type) \
-  ((((type) == R_X86_64_JUMP_SLOT) * ELF_RTYPE_CLASS_PLT) \
-   | (((type) == R_X86_64_COPY) * ELF_RTYPE_CLASS_COPY))
-#endif
 
 /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
 #define ELF_MACHINE_JMP_SLOT   R_X86_64_JUMP_SLOT
@@ -302,10 +296,6 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
          && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1))
        value = ((Elf64_Addr (*) (void)) value) ();
 
-# if defined RTLD_BOOTSTRAP && !USE___THREAD
-      assert (r_type == R_X86_64_GLOB_DAT || r_type == R_X86_64_JUMP_SLOT);
-      *reloc_addr = value + reloc->r_addend;
-# else
       switch (r_type)
        {
        case R_X86_64_GLOB_DAT:
@@ -453,7 +443,6 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
          break;
 # endif
        }
-#endif
     }
 }
 
index 6bcd247..4627aa3 100644 (file)
@@ -2,8 +2,4 @@
 
 #include <tls.h>
 
-#if USE___THREAD
 @@@ use-thread = yes @@@
-#else
-@@@ use-thread = no @@@
-#endif