This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
No current ports need this (not even the FR-V port, that has recently been converted to use info from the TCB instead of relying on this global var), but it was surprising to me that any DTV_AT_TP port is now required to use this trick. It sure is a tiny little bit more efficient for uses within librt, but what if it required an ABI change? I was a bit concerned about breaking ABI compatibility changing FR-V to use multiple_threads in the TCB, as opposed to using this variable, but I'm now convinced it's not an issue. Am I mistake? Anyhow, how about installing this patch, or at least enabling a port to define some macro to get this variable defined in librt? Some mq functions definitely need it.
Index: nptl/ChangeLog
2005-02-03 Alexandre Oliva <aoliva@redhat.com>
* sysdeps/unix/sysv/linux/libc_multiple_threads.c
(__librt_multiple_threads): Alias to __libc_multiple_threads.
* Versions: Export it from libc.so as GLIBC_PRIVATE.
Index: nptl/Versions
--- nptl/Versions 2004-12-05 00:18:42.000000000 -0200
+++ nptl/Versions 2005-02-03 08:54:51.000000000 -0200
@@ -29,6 +29,7 @@
GLIBC_PRIVATE {
# Internal libc interface to libpthread
__libc_dl_error_tsd;
+ __librt_multiple_threads;
}
}
Index: nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c
--- nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c 2003-03-12 22:49:25.000000000 -0300
+++ nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c 2005-02-03 07:09:23.000000000 -0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -21,6 +21,7 @@
#ifndef NOT_IN_libc
# ifndef TLS_MULTIPLE_THREADS_IN_TCB
-int __libc_multiple_threads attribute_hidden;
+int __libc_multiple_threads attribute_hidden __attribute__((nocommon));
+strong_alias (__libc_multiple_threads, __librt_multiple_threads);
# endif
#endif
--
Alexandre Oliva http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |