* [PATCH] Use Roland's gen-as-const-headers in linuxthreads and nptl
@ 2002-12-28 9:26 Jakub Jelinek
2002-12-28 14:20 ` Ulrich Drepper
0 siblings, 1 reply; 2+ messages in thread
From: Jakub Jelinek @ 2002-12-28 9:26 UTC (permalink / raw)
To: Ulrich Drepper, Roland McGrath; +Cc: Glibc hackers
Hi!
Tested on IA-32 (FLOATING_STACKS, non-FLOATING_STACKS, --with-tls
and without), x86-64, IA-64.
2002-12-28 Jakub Jelinek <jakub@redhat.com>
linuxthreads/
* 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.
nptl/
* 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.
--- libc/linuxthreads/libc_pthread_init.c.jj 2002-12-28 12:29:34.000000000 +0100
+++ libc/linuxthreads/libc_pthread_init.c 2002-12-28 16:13:54.000000000 +0100
@@ -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. */
--- libc/linuxthreads/sysdeps/i386/tls.h.jj 2002-12-28 12:35:58.000000000 +0100
+++ libc/linuxthreads/sysdeps/i386/tls.h 2002-12-28 16:13:53.000000000 +0100
@@ -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.
--- libc/linuxthreads/sysdeps/i386/Makefile.jj 2002-11-05 23:10:13.000000000 +0100
+++ libc/linuxthreads/sysdeps/i386/Makefile 2002-12-28 16:13:53.000000000 +0100
@@ -16,3 +16,7 @@ CFLAGS-ptlongjmp.c += -fno-omit-frame-po
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
--- libc/linuxthreads/sysdeps/i386/tcb-offsets.sym.jj 2002-12-28 16:13:53.000000000 +0100
+++ libc/linuxthreads/sysdeps/i386/tcb-offsets.sym 2002-12-28 16:13:53.000000000 +0100
@@ -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
--- libc/linuxthreads/sysdeps/pthread/tcb-offsets.h.jj 2002-12-28 16:49:14.000000000 +0100
+++ libc/linuxthreads/sysdeps/pthread/tcb-offsets.h 2002-12-28 16:49:05.000000000 +0100
@@ -0,0 +1 @@
+/* This is overridden by generated tcb-offsets.h on arches which need it. */
--- libc/linuxthreads/sysdeps/sparc/sparc32/tls.h.jj 2002-12-28 09:48:26.000000000 +0100
+++ libc/linuxthreads/sysdeps/sparc/sparc32/tls.h 2002-12-28 16:13:54.000000000 +0100
@@ -1,61 +0,0 @@
-/* Definitions for thread-local data handling. linuxthreads/sparc32 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 */
--- libc/linuxthreads/sysdeps/sparc/sparc64/tls.h.jj 2002-12-28 09:48:49.000000000 +0100
+++ libc/linuxthreads/sysdeps/sparc/sparc64/tls.h 2002-12-28 16:13:54.000000000 +0100
@@ -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 */
--- libc/linuxthreads/sysdeps/sparc/tls.h.jj 2002-12-28 16:13:54.000000000 +0100
+++ libc/linuxthreads/sysdeps/sparc/tls.h 2002-12-28 16:13:54.000000000 +0100
@@ -0,0 +1,63 @@
+/* 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.
+
+ 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;
+
+#else /* __ASSEMBLER__ */
+# include <tcb-offsets.h>
+#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 */
--- libc/linuxthreads/sysdeps/sparc/Makefile.jj 2002-12-28 16:13:54.000000000 +0100
+++ libc/linuxthreads/sysdeps/sparc/Makefile 2002-12-28 16:13:54.000000000 +0100
@@ -0,0 +1,3 @@
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
--- libc/linuxthreads/sysdeps/sparc/tcb-offsets.sym.jj 2002-12-28 16:13:54.000000000 +0100
+++ libc/linuxthreads/sysdeps/sparc/tcb-offsets.sym 2002-12-28 16:13:54.000000000 +0100
@@ -0,0 +1,4 @@
+#include <sysdep.h>
+#include <tls.h>
+
+MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
--- libc/linuxthreads/sysdeps/ia64/tls.h.jj 2002-12-28 09:47:27.000000000 +0100
+++ libc/linuxthreads/sysdeps/ia64/tls.h 2002-12-28 16:13:54.000000000 +0100
@@ -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
--- libc/linuxthreads/sysdeps/ia64/tcb-offsets.sym.jj 2002-12-28 16:13:54.000000000 +0100
+++ libc/linuxthreads/sysdeps/ia64/tcb-offsets.sym 2002-12-28 16:13:54.000000000 +0100
@@ -0,0 +1,4 @@
+#include <sysdep.h>
+#include <tls.h>
+
+MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
--- libc/linuxthreads/sysdeps/ia64/Makefile.jj 2002-12-28 16:13:54.000000000 +0100
+++ libc/linuxthreads/sysdeps/ia64/Makefile 2002-12-28 16:13:54.000000000 +0100
@@ -0,0 +1,3 @@
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
--- libc/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h.jj 2002-12-28 12:29:34.000000000 +0100
+++ libc/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2002-12-28 16:13:54.000000000 +0100
@@ -24,10 +24,6 @@
# 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 attr
# 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
--- libc/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h.jj 2002-12-28 10:00:53.000000000 +0100
+++ libc/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h 2002-12-28 16:13:54.000000000 +0100
@@ -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
--- libc/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h.jj 2002-12-28 10:10:50.000000000 +0100
+++ libc/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2002-12-28 16:13:54.000000000 +0100
@@ -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
--- libc/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h.jj 2002-12-28 10:08:46.000000000 +0100
+++ libc/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2002-12-28 16:13:54.000000000 +0100
@@ -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
--- libc/linuxthreads/pthread.c.jj 2002-12-28 13:00:45.000000000 +0100
+++ libc/linuxthreads/pthread.c 2002-12-28 16:13:54.000000000 +0100
@@ -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))
--- libc/linuxthreads/tst-cancel-wrappers.sh.jj 2002-12-28 13:00:45.000000000 +0100
+++ libc/linuxthreads/tst-cancel-wrappers.sh 2002-12-28 16:30:31.000000000 +0100
@@ -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
--- libc/nptl/sysdeps/i386/tls.h.jj 2002-12-28 11:00:45.000000000 +0100
+++ libc/nptl/sysdeps/i386/tls.h 2002-12-28 16:15:50.000000000 +0100
@@ -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>
--- libc/nptl/sysdeps/i386/Makefile.jj 2002-12-28 16:13:54.000000000 +0100
+++ libc/nptl/sysdeps/i386/Makefile 2002-12-28 16:13:54.000000000 +0100
@@ -0,0 +1,3 @@
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
--- libc/nptl/sysdeps/i386/tcb-offsets.sym.jj 2002-12-28 16:13:54.000000000 +0100
+++ libc/nptl/sysdeps/i386/tcb-offsets.sym 2002-12-28 16:13:54.000000000 +0100
@@ -0,0 +1,5 @@
+#include <sysdep.h>
+#include <tls.h>
+
+MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
+SYSINFO_OFFSET offsetof (tcbhead_t, sysinfo)
--- libc/nptl/sysdeps/pthread/tcb-offsets.h.jj 2002-12-28 16:49:14.000000000 +0100
+++ libc/nptl/sysdeps/pthread/tcb-offsets.h 2002-12-28 16:49:05.000000000 +0100
@@ -0,0 +1 @@
+/* This is overridden by generated tcb-offsets.h on arches which need it. */
--- libc/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c.jj 2002-12-20 12:17:13.000000000 +0100
+++ libc/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c 2002-12-28 16:13:54.000000000 +0100
@@ -52,23 +52,4 @@ __libc_pthread_init (ptr, reclaim, funct
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
}
--- libc/nptl/sysdeps/unix/sysv/linux/Versions.jj 2002-12-12 12:40:49.000000000 +0100
+++ libc/nptl/sysdeps/unix/sysv/linux/Versions 2002-12-28 16:32:03.000000000 +0100
@@ -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;
}
Jakub
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] Use Roland's gen-as-const-headers in linuxthreads and nptl
2002-12-28 9:26 [PATCH] Use Roland's gen-as-const-headers in linuxthreads and nptl Jakub Jelinek
@ 2002-12-28 14:20 ` Ulrich Drepper
0 siblings, 0 replies; 2+ messages in thread
From: Ulrich Drepper @ 2002-12-28 14:20 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Roland McGrath, Glibc hackers
Jakub Jelinek wrote:
> Tested on IA-32 (FLOATING_STACKS, non-FLOATING_STACKS, --with-tls
> and without), x86-64, IA-64.
Thanks, I've applied the patch.
--
--------------. ,-. 444 Castro Street
Ulrich Drepper \ ,-----------------' \ Mountain View, CA 94041 USA
Red Hat `--' drepper at redhat.com `---------------------------
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2002-12-28 22:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-28 9:26 [PATCH] Use Roland's gen-as-const-headers in linuxthreads and nptl Jakub Jelinek
2002-12-28 14:20 ` Ulrich Drepper
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).