]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Sat, 28 Dec 2002 22:19:04 +0000 (22:19 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 28 Dec 2002 22:19:04 +0000 (22:19 +0000)
2002-12-28  Ulrich Drepper  <drepper@redhat.com>

* misc/sys/cdefs.h (__attribute_deprecated__): New #define.

29 files changed:
ChangeLog
linuxthreads/ChangeLog
linuxthreads/libc_pthread_init.c
linuxthreads/pthread.c
linuxthreads/sysdeps/i386/Makefile
linuxthreads/sysdeps/i386/tcb-offsets.sym [new file with mode: 0644]
linuxthreads/sysdeps/i386/tls.h
linuxthreads/sysdeps/ia64/Makefile [new file with mode: 0644]
linuxthreads/sysdeps/ia64/tcb-offsets.sym [new file with mode: 0644]
linuxthreads/sysdeps/ia64/tls.h
linuxthreads/sysdeps/pthread/tcb-offsets.h [new file with mode: 0644]
linuxthreads/sysdeps/sparc/Makefile [new file with mode: 0644]
linuxthreads/sysdeps/sparc/sparc64/tls.h [deleted file]
linuxthreads/sysdeps/sparc/tcb-offsets.sym [new file with mode: 0644]
linuxthreads/sysdeps/sparc/tls.h [moved from linuxthreads/sysdeps/sparc/sparc32/tls.h with 96% similarity]
linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
linuxthreads/tst-cancel-wrappers.sh
misc/sys/cdefs.h
nptl/ChangeLog
nptl/sysdeps/i386/Makefile [new file with mode: 0644]
nptl/sysdeps/i386/tcb-offsets.sym [new file with mode: 0644]
nptl/sysdeps/i386/tls.h
nptl/sysdeps/pthread/pthread.h
nptl/sysdeps/pthread/tcb-offsets.h [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/Versions
nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c

index dc70a60d14cb5336a4ca411f7c5bb9457ac7c47b..5e109beacef28f72de142e6df9a102af7bcb36f0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2002-12-28  Ulrich Drepper  <drepper@redhat.com>
+
+       * misc/sys/cdefs.h (__attribute_deprecated__): New #define.
+
 2002-12-28  Andreas Jaeger  <aj@suse.de>
 
        * sysdeps/generic/readelflib.c (process_elf_file): Cast value to
index 3c50230de09901cb542ab93caeaa4d3f5fa35795..15a0974034c3ef5377d1af10346374fda94db410 100644 (file)
@@ -1,3 +1,36 @@
+2002-12-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * libc_pthread_init.c (__libc_pthread_init): Remove
+       MULTIPLE_THREADS_OFFSET check.
+       * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
+       (SYSINFO_OFFSET): Remove.
+       * sysdeps/i386/Makefile [csu] (gen-as-const-headers): Add
+       tcb-offsets.sym.
+       * sysdeps/i386/tcb-offsets.sym: New file.
+       * sysdeps/pthread/tcb-offsets.h: New file.
+       * sysdeps/sparc/sparc32/tls.h: Removed.
+       * sysdeps/sparc/sparc64/tls.h: Move...
+       * sysdeps/sparc/tls.h: ...here.  Include tcb-offsets.h in assembler.
+       * sysdeps/sparc/Makefile: New file.
+       * sysdeps/sparc/tcb-offsets.sym: New file.
+       * sysdeps/ia64/tls.h: Include tcb-offsets.h in assembler.
+       * sysdeps/ia64/Makefile: New file.
+       * sysdeps/ia64/tcb-offsets.sym: New file.
+       * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
+       (MULTIPLE_THREADS_OFFSET): Remove.
+       Replace defined MULTIPLE_THREADS_OFFSET
+       with defined FLOATING_STACKS && USE___THREAD.
+       * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
+       (MULTIPLE_THREADS_OFFSET): Remove.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
+       (MULTIPLE_THREADS_OFFSET): Remove.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
+       (MULTIPLE_THREADS_OFFSET): Remove.
+       * pthread.c (__pthread_initialize_manager): Remove
+       MULTIPLE_THREADS_OFFSET cbeck.
+
+       * tst-cancel-wrappers.sh: Add line continuations.
+
 2002-12-27  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/pthread/bits/libc-tsd.h: Include linuxthreads/descr.h
index c952b22d07a0ec27eea563dc7b1221caea06513b..99213a2ff04b364a9b03fec9de92aca3624653d5 100644 (file)
@@ -36,14 +36,6 @@ __libc_pthread_init (functions)
          sizeof (__libc_pthread_functions));
 #endif
 
-#ifdef MULTIPLE_THREADS_OFFSET
-  /* We have a macro which is used in asm code describing data layout.
-     Make sure it does not get out of date.  */
-  if (offsetof (struct _pthread_descr_struct, p_header.data.multiple_threads)
-      != MULTIPLE_THREADS_OFFSET)
-    abort ();
-#endif
-
 #if !(USE_TLS && HAVE___THREAD)
   /* Initialize thread-locale current locale to point to the global one.
      With __thread support, the variable's initializer takes care of this.  */
index 6bd9de9081728a08c19e02d1fd77cddba0deb927..5cc51460a3db9f8b7099f3a53bcd4de02cb6b54f 100644 (file)
@@ -558,11 +558,6 @@ int __pthread_initialize_manager(void)
   __pthread_multiple_threads = 1;
   __pthread_main_thread->p_header.data.multiple_threads = 1;
   * __libc_multiple_threads_ptr = 1;
-#ifdef MULTIPLE_THREADS_OFFSET
-  if (offsetof(struct _pthread_descr_struct, p_header.data.multiple_threads)
-      != MULTIPLE_THREADS_OFFSET)
-    abort ();
-#endif
 
 #ifndef HAVE_Z_NODELETE
   if (__builtin_expect (&__dso_handle != NULL, 1))
index d6c351419653f59616dbe0ce62352d0cc1de5cb5..b0051fbdd720a27c5b7ac4b984f87df7a2726eae 100644 (file)
@@ -16,3 +16,7 @@ CFLAGS-ptlongjmp.c += -fno-omit-frame-pointer
 CFLAGS-semaphore.c += -fno-omit-frame-pointer
 CFLAGS-sighandler.c += -fno-omit-frame-pointer
 endif
+
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
diff --git a/linuxthreads/sysdeps/i386/tcb-offsets.sym b/linuxthreads/sysdeps/i386/tcb-offsets.sym
new file mode 100644 (file)
index 0000000..69a5018
--- /dev/null
@@ -0,0 +1,7 @@
+#include <sysdep.h>
+#include <tls.h>
+
+MULTIPLE_THREADS_OFFSET                offsetof (tcbhead_t, multiple_threads)
+#ifdef NEED_DL_SYSINFO
+SYSINFO_OFFSET                 offsetof (tcbhead_t, sysinfo)
+#endif
index 761a8ca94341362ba336022638c29b4381c7c228..216ba554f6d79eb18ca3142d0d8487b8bd532e45 100644 (file)
@@ -46,11 +46,9 @@ typedef struct
   uintptr_t sysinfo;
 #endif
 } tcbhead_t;
-#endif
 
-#ifdef NEED_DL_SYSINFO
-/* Offset of the SYSINFO element in tcbhead_t.  */
-# define SYSINFO_OFFSET 24
+#else /* __ASSEMBLER__ */
+# include <tcb-offsets.h>
 #endif
 
 /* We can support TLS only if the floating-stack support is available.
diff --git a/linuxthreads/sysdeps/ia64/Makefile b/linuxthreads/sysdeps/ia64/Makefile
new file mode 100644 (file)
index 0000000..81bddf6
--- /dev/null
@@ -0,0 +1,3 @@
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
diff --git a/linuxthreads/sysdeps/ia64/tcb-offsets.sym b/linuxthreads/sysdeps/ia64/tcb-offsets.sym
new file mode 100644 (file)
index 0000000..aee6be2
--- /dev/null
@@ -0,0 +1,4 @@
+#include <sysdep.h>
+#include <tls.h>
+
+MULTIPLE_THREADS_OFFSET                offsetof (tcbhead_t, multiple_threads)
index c27079525458f32d7f2dab432b1cc80be3960112..544da6e69452168a1f41e675a406bf30c260af93 100644 (file)
@@ -44,6 +44,9 @@ typedef struct
   void *self;          /* Pointer to the thread descriptor.  */
   int multiple_threads;
 } tcbhead_t;
+
+#else /* __ASSEMBLER__ */
+# include <tcb-offsets.h>
 #endif /* __ASSEMBLER__ */
 
 #undef USE_TLS
diff --git a/linuxthreads/sysdeps/pthread/tcb-offsets.h b/linuxthreads/sysdeps/pthread/tcb-offsets.h
new file mode 100644 (file)
index 0000000..3fe1370
--- /dev/null
@@ -0,0 +1 @@
+/* This is overridden by generated tcb-offsets.h on arches which need it.  */
diff --git a/linuxthreads/sysdeps/sparc/Makefile b/linuxthreads/sysdeps/sparc/Makefile
new file mode 100644 (file)
index 0000000..81bddf6
--- /dev/null
@@ -0,0 +1,3 @@
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
diff --git a/linuxthreads/sysdeps/sparc/sparc64/tls.h b/linuxthreads/sysdeps/sparc/sparc64/tls.h
deleted file mode 100644 (file)
index 039ad2b..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Definitions for thread-local data handling.  linuxthreads/sparc64 version.
-   Copyright (C) 2002 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _TLS_H
-#define _TLS_H
-
-#ifndef __ASSEMBLER__
-
-# include <pt-machine.h>
-# include <stddef.h>
-
-/* Type for the dtv.  */
-typedef union dtv
-{
-  size_t counter;
-  void *pointer;
-} dtv_t;
-
-typedef struct
-{
-  void *tcb;           /* Pointer to the TCB.  Not necessary the
-                          thread descriptor used by libpthread.  */
-  dtv_t *dtv;
-  void *self;          /* Pointer to the thread descriptor.  */
-  int multiple_threads;
-} tcbhead_t;
-
-#endif /* __ASSEMBLER__ */
-
-#undef USE_TLS
-
-#if USE_TLS
-
-#else
-
-#define NONTLS_INIT_TP \
-  do {                                                                 \
-    static const tcbhead_t nontls_init_tp                      \
-      = { .multiple_threads = 0 };                             \
-    __thread_self = (__typeof (__thread_self)) &nontls_init_tp;        \
-  } while (0)
-
-#endif /* USE_TLS */
-
-#endif /* tls.h */
diff --git a/linuxthreads/sysdeps/sparc/tcb-offsets.sym b/linuxthreads/sysdeps/sparc/tcb-offsets.sym
new file mode 100644 (file)
index 0000000..aee6be2
--- /dev/null
@@ -0,0 +1,4 @@
+#include <sysdep.h>
+#include <tls.h>
+
+MULTIPLE_THREADS_OFFSET                offsetof (tcbhead_t, multiple_threads)
similarity index 96%
rename from linuxthreads/sysdeps/sparc/sparc32/tls.h
rename to linuxthreads/sysdeps/sparc/tls.h
index 1b316d0b33ff4df3981896a6b33a068168377bc7..4571922f570136c934c9fdc60f409432bceec27b 100644 (file)
@@ -1,4 +1,4 @@
-/* Definitions for thread-local data handling.  linuxthreads/sparc32 version.
+/* Definitions for thread-local data handling.  linuxthreads/sparc version.
    Copyright (C) 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -41,6 +41,8 @@ typedef struct
   int multiple_threads;
 } tcbhead_t;
 
+#else /* __ASSEMBLER__ */
+# include <tcb-offsets.h>
 #endif /* __ASSEMBLER__ */
 
 #undef USE_TLS
index d4495279002ead47daed94cd89ab21fc3f1cb54a..c2455a7464f5032bdba9d8763a4b33c42077b2a5 100644 (file)
 # include <linuxthreads/internals.h>
 #endif
 
-#if defined FLOATING_STACKS && USE___THREAD
-# define MULTIPLE_THREADS_OFFSET       20
-#endif
-
 #if !defined NOT_IN_libc || defined IS_IN_libpthread
 
 # undef PSEUDO
@@ -88,7 +84,7 @@
 #endif
 
 # ifndef ASSEMBLER
-#  if defined MULTIPLE_THREADS_OFFSET && defined PIC
+#  if defined FLOATING_STACKS && USE___THREAD && defined PIC
 #   define SINGLE_THREAD_P \
   __builtin_expect (THREAD_GETMEM (THREAD_SELF,                                      \
                                   p_header.data.multiple_threads) == 0, 1)
@@ -99,7 +95,7 @@ extern int __local_multiple_threads attribute_hidden;
 # else
 #  if !defined PIC
 #   define SINGLE_THREAD_P cmpl $0, __local_multiple_threads
-#  elif defined MULTIPLE_THREADS_OFFSET
+#  elif defined FLOATING_STACKS && USE___THREAD
 #   define SINGLE_THREAD_P cmpl $0, %gs:MULTIPLE_THREADS_OFFSET
 #  else
 #   if !defined HAVE_HIDDEN || !USE___THREAD
index d74c0449816a3960c4983e59e1be0133455a6859..723c2e4117f33f5b7bce64af6262a84c9c991df8 100644 (file)
@@ -23,8 +23,6 @@
 # include <linuxthreads/internals.h>
 #endif
 
-#define MULTIPLE_THREADS_OFFSET        40
-
 #if !defined NOT_IN_libc || defined IS_IN_libpthread
 
 # undef PSEUDO
index ff03f631e3cdaf3ea2857e64fbb07b309484d516..f6afb81373d7900db97a490c9296775c2144113b 100644 (file)
@@ -23,8 +23,6 @@
 # include <linuxthreads/internals.h>
 #endif
 
-#define MULTIPLE_THREADS_OFFSET        20
-
 #if !defined NOT_IN_libc || defined IS_IN_libpthread
 
 # undef PSEUDO
index 8b9585d2d7fff60c3a216079f7f0099d4aadeba7..d236bf33b711ff2911f5cd06a61acc8504b56061 100644 (file)
@@ -23,8 +23,6 @@
 # include <linuxthreads/internals.h>
 #endif
 
-#define MULTIPLE_THREADS_OFFSET        40
-
 #if !defined NOT_IN_libc || defined IS_IN_libpthread
 
 # undef PSEUDO
index 364b4729dc8840ff96da8e787408eae66ef125eb..2de0238cfa9aa5c155cea60a01526c73cab242bf 100644 (file)
@@ -70,8 +70,8 @@ C["__xpg_sigpause"]=1
       # signals.c in linuxthreads does the cancellation checks not using
       # *_{enable,disable}_asynccancel.
       # Similarly pt-system.o* is allowed to call __libc_system directly.
-      if ((!seen_enable || !seen_disable)
-         && !(object ~ /^signals.o/)
+      if ((!seen_enable || !seen_disable) \
+         && !(object ~ /^signals.o/) \
          && !(object ~ /^pt-system.o/))
        {
          printf "in '$1'(%s) %s'\''s cancellation missing\n", object, seen
index 72dbfde9cf454055d0ae080c725c39a0f9747af8..18143058fa6d58f030479a11ee3bed8ab9401615 100644 (file)
 # define __attribute_noinline__ /* Ignore */
 #endif
 
+/* gcc allows marking deprecated functions.  */
+#if __GNUC_PREREQ (3,2)
+# define __attribute_deprecated__ __attribute__ ((__deprecated__))
+#else
+# define __attribute_deprecated__ /* Ignore */
+#endif
+
 /* At some point during the gcc 2.8 development the `format_arg' attribute
    for functions was introduced.  We don't want to use it unconditionally
    (although this would be possible) since it generates warnings.
index 24c2fb64fb1b4a2810a0fba76ae7e21fb142906c..24d9361863ac7bea388dad71f51bbf607a069c4b 100644 (file)
@@ -1,3 +1,22 @@
+2002-12-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
+       (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
+       * sysdeps/i386/Makefile: New file.
+       * sysdeps/i386/tcb-offsets.sym: New file.
+       * sysdeps/pthread/tcb-offsets.h: New file.
+       * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
+       Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
+
+       * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
+       __register_atfork...
+       (GLIBC_2.3.2): ...here.
+
+2002-12-28  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
+       pthread_attr_setstackaddr with __attribute_deprecated__.
+
 2002-12-27  Jakub Jelinek  <jakub@redhat.com>
 
        * pt-system.c (system): Remove cancellation handling.
diff --git a/nptl/sysdeps/i386/Makefile b/nptl/sysdeps/i386/Makefile
new file mode 100644 (file)
index 0000000..81bddf6
--- /dev/null
@@ -0,0 +1,3 @@
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
diff --git a/nptl/sysdeps/i386/tcb-offsets.sym b/nptl/sysdeps/i386/tcb-offsets.sym
new file mode 100644 (file)
index 0000000..d1d0a10
--- /dev/null
@@ -0,0 +1,5 @@
+#include <sysdep.h>
+#include <tls.h>
+
+MULTIPLE_THREADS_OFFSET                offsetof (tcbhead_t, multiple_threads)
+SYSINFO_OFFSET                 offsetof (tcbhead_t, sysinfo)
index 4f8ddb2d281fd7c8e37520482ea114a984b6c0fe..f830db78dc935b80bfafceda6e6789cfde003bbb 100644 (file)
@@ -46,6 +46,9 @@ typedef struct
   uintptr_t sysinfo;
   list_t list;
 } tcbhead_t;
+
+#else /* __ASSEMBLER__ */
+# include <tcb-offsets.h>
 #endif
 
 
@@ -61,15 +64,6 @@ typedef struct
    the SSE memory functions.  */
 #define STACK_ALIGN    16
 
-/* Offset of the MULTIPLE_THREADS element in tcbhead_t.  */
-#define MULTIPLE_THREADS_OFFSET 12
-
-#ifdef NEED_DL_SYSINFO
-/* Offset of the SYSINFO element in tcbhead_t.  */
-# define SYSINFO_OFFSET 16
-#endif
-
-
 #ifndef __ASSEMBLER__
 /* Get system call information.  */
 # include <sysdep.h>
index d6b0966d402e91fde2c18443046e0580f7e2bdb1..aeb3ef520e3728c11aed5a262f869aa213d6b438 100644 (file)
@@ -272,14 +272,15 @@ extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
 /* Return the previously set address for the stack.  */
 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
                                      __attr, void **__restrict __stackaddr)
-     __THROW;
+     __THROW __attribute_deprecated__;
 
 /* Set the starting address of the stack of the thread to be created.
    Depending on whether the stack grows up or down the value must either
    be higher or lower than all the address in the memory block.  The
    minimal size of the block must be PTHREAD_STACK_SIZE.  */
 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
-                                     void *__stackaddr) __THROW;
+                                     void *__stackaddr)
+     __THROW __attribute_deprecated__;
 
 /* Return the currently used minimal stack size.  */
 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
diff --git a/nptl/sysdeps/pthread/tcb-offsets.h b/nptl/sysdeps/pthread/tcb-offsets.h
new file mode 100644 (file)
index 0000000..3fe1370
--- /dev/null
@@ -0,0 +1 @@
+/* This is overridden by generated tcb-offsets.h on arches which need it.  */
index 8fea097e43120353af5cd37c42f2346790a46e6b..d18255521c8d1241157b9dd585e6514343704048 100644 (file)
@@ -1,6 +1,9 @@
 libc {
+  GLIBC_2.3.2 {
+    __register_atfork;
+  }
   GLIBC_PRIVATE {
-    __register_atfork; __libc_pthread_init;
+    __libc_pthread_init;
     __libc_current_sigrtmin_private; __libc_current_sigrtmax_private;
     __libc_allocate_rtsig_private;
   }
index 87c97343b06187f8fa96b07d047cf71a7956a2ba..fdda78bc202b3fe2acfc22b73df02b427e75067b 100644 (file)
@@ -52,23 +52,4 @@ __libc_pthread_init (ptr, reclaim, functions)
   memcpy (&__libc_pthread_functions, functions,
          sizeof (__libc_pthread_functions));
 #endif
-
-  /* We have a macro which is used in asm code describing data layout.
-     Make sure it does not get out of date.  */
-  if (offsetof (struct pthread, header.data.multiple_threads)
-      != MULTIPLE_THREADS_OFFSET)
-    {
-#define str_n_len(str) str, sizeof (str) - 1
-      __libc_write (STDERR_FILENO,
-                   str_n_len ("*** MULTIPLE_THREADS_OFFSET out of date\n"));
-      _exit (1);
-    }
-#ifdef SYSINFO_OFFSET
-  if (offsetof (struct pthread, header.data.sysinfo) != SYSINFO_OFFSET)
-    {
-      __libc_write (STDERR_FILENO,
-                   str_n_len ("*** SYSINFO_OFFSET out of date\n"));
-      _exit (1);
-    }
-#endif
 }