loader: Start phasing out the LinuxThreads support.
This commit is contained in:
parent
b58ef6bff6
commit
4ccf78fbcd
|
@ -56,11 +56,23 @@ static void *xmalloc( size_t size )
|
||||||
/* separate thread to check for NPTL and TLS features */
|
/* separate thread to check for NPTL and TLS features */
|
||||||
static void *needs_pthread( void *arg )
|
static void *needs_pthread( void *arg )
|
||||||
{
|
{
|
||||||
|
const char *loader;
|
||||||
pid_t tid = gettid();
|
pid_t tid = gettid();
|
||||||
/* check for NPTL */
|
/* check for NPTL */
|
||||||
if (tid != -1 && tid != getpid()) return (void *)1;
|
if (tid != -1 && tid != getpid()) return (void *)1;
|
||||||
/* check for TLS glibc */
|
/* check for TLS glibc */
|
||||||
return (void *)(wine_get_gs() != 0);
|
if (wine_get_gs() != 0) return (void *)1;
|
||||||
|
/* check for exported epoll_create to detect new glibc versions without TLS */
|
||||||
|
if (wine_dlsym( RTLD_DEFAULT, "epoll_create", NULL, 0 ))
|
||||||
|
fprintf( stderr,
|
||||||
|
"wine: glibc >= 2.3 without NPTL or TLS is not a supported combination.\n"
|
||||||
|
" Please upgrade to a glibc with NPTL support.\n" );
|
||||||
|
else
|
||||||
|
fprintf( stderr,
|
||||||
|
"wine: Your C library is too old. You need at least glibc 2.3 with NPTL support.\n" );
|
||||||
|
if (!(loader = getenv( "WINELOADER" )) || !strstr( loader, "wine-kthread" ))
|
||||||
|
exit(1);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* return the name of the Wine threading variant to use */
|
/* return the name of the Wine threading variant to use */
|
||||||
|
|
|
@ -907,14 +907,6 @@ void __pthread_initialize(void)
|
||||||
if (!done)
|
if (!done)
|
||||||
{
|
{
|
||||||
done = 1;
|
done = 1;
|
||||||
/* check for exported epoll_create to detect glibc versions that we cannot support */
|
|
||||||
if (wine_dlsym( RTLD_DEFAULT, "epoll_create", NULL, 0 ))
|
|
||||||
{
|
|
||||||
static const char warning[] =
|
|
||||||
"wine: glibc >= 2.3 without NPTL or TLS is not a supported combination.\n"
|
|
||||||
" It will most likely crash. Please upgrade to a glibc with NPTL support.\n";
|
|
||||||
write( 2, warning, sizeof(warning)-1 );
|
|
||||||
}
|
|
||||||
libc_fork = wine_dlsym( RTLD_NEXT, "fork", NULL, 0 );
|
libc_fork = wine_dlsym( RTLD_NEXT, "fork", NULL, 0 );
|
||||||
libc_sigaction = wine_dlsym( RTLD_NEXT, "sigaction", NULL, 0 );
|
libc_sigaction = wine_dlsym( RTLD_NEXT, "sigaction", NULL, 0 );
|
||||||
libc_uselocale = wine_dlsym( RTLD_DEFAULT, "uselocale", NULL, 0 );
|
libc_uselocale = wine_dlsym( RTLD_DEFAULT, "uselocale", NULL, 0 );
|
||||||
|
|
Loading…
Reference in New Issue