Hi,
I'm not subscribed to this list but noticed the NPTL discussion on Wine Traffic #170. I saw a lot of people mentioning to make it a compile-time option, but no one with a definitive runtime check.
Valgrind went through the same problem and I proposed a solution on their list. AFAIK they're not using it, they still have a run-time parameter instead of auto-detecting it on loadtime.
The discussion is here:
http://sourceforge.net/mailarchive/forum.php?thread_id=2027895&forum_id=... http://sourceforge.net/mailarchive/forum.php?thread_id=2052985&forum_id=...
And a couple of lines to check what threading library is used:
//#define _XOPEN_SOURCE #define _POSIX_C_SOURCE 2 #include <unistd.h> #include <stdio.h>
int main(void) { char *buf; size_t n;
n=confstr(_CS_GNU_LIBPTHREAD_VERSION, NULL, (size_t) 0); if ((buf = (char *) malloc(n)) == NULL) abort(); confstr(_CS_GNU_LIBPTHREAD_VERSION, buf, n); fprintf(stdout, "%s\n", buf); exit(0); }
Which is basicly the same as:
getconf GNU_LIBPTHREAD_VERSION
I'm not sure if this is new information, but I didn't see it mentioned anywhere.
Kind regards, -- dag wieers, dag@wieers.com, http://dag.wieers.com/ -- �Any errors in spelling, tact or fact are transmission errors�
Perhaps of more interest is this:
* Sun Apr 06 2003 Jakub Jelinek jakub@redhat.com 2.3.2-4.80.5 - make sure all calls to __errno_location() and __h_errno_location() jump through .plt to make older wine happy
Not sure if it's in CVS glibc or not, somebody asked, I'll update the list on the answer. It'd be a bit annoying if after all that work they change glibc again to unbreak it.
On Sat, 2003-05-17 at 05:22, Dag Wieers wrote:
Hi,
I'm not subscribed to this list but noticed the NPTL discussion on Wine Traffic #170. I saw a lot of people mentioning to make it a compile-time option, but no one with a definitive runtime check.
Valgrind went through the same problem and I proposed a solution on their list. AFAIK they're not using it, they still have a run-time parameter instead of auto-detecting it on loadtime.
The discussion is here:
http://sourceforge.net/mailarchive/forum.php?thread_id=2027895&forum_id=... http://sourceforge.net/mailarchive/forum.php?thread_id=2052985&forum_id=...
And a couple of lines to check what threading library is used:
//#define _XOPEN_SOURCE #define _POSIX_C_SOURCE 2 #include <unistd.h> #include <stdio.h>
int main(void) { char *buf; size_t n;
n=confstr(_CS_GNU_LIBPTHREAD_VERSION, NULL, (size_t) 0); if ((buf = (char *) malloc(n)) == NULL) abort(); confstr(_CS_GNU_LIBPTHREAD_VERSION, buf, n); fprintf(stdout, "%s\n", buf); exit(0);
}
Which is basicly the same as:
getconf GNU_LIBPTHREAD_VERSION
I'm not sure if this is new information, but I didn't see it mentioned anywhere.
Kind regards, -- dag wieers, dag@wieers.com, http://dag.wieers.com/ -- «Any errors in spelling, tact or fact are transmission errors»