Commit 4ccf78fb authored by Alexandre Julliard's avatar Alexandre Julliard

loader: Start phasing out the LinuxThreads support.

parent b58ef6bf
...@@ -56,11 +56,23 @@ static void *xmalloc( size_t size ) ...@@ -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) ...@@ -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 );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment