From bcfa778f2eaece684dafa3d4b1765a121bb016e0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Wed, 21 Oct 2009 19:28:06 +0300 Subject: [PATCH] Blacklist glibc 2.10-2.10.1 for 686 I'm not going to suffer another round of VLC bug reports due to glibc. --- src/misc/linux_specific.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/misc/linux_specific.c b/src/misc/linux_specific.c index 79c880742b..37bdff5f2f 100644 --- a/src/misc/linux_specific.c +++ b/src/misc/linux_specific.c @@ -24,6 +24,7 @@ #include #include +#include #include #include "../libvlc.h" @@ -87,13 +88,31 @@ void system_Init (libvlc_int_t *libvlc, int *argc, const char *argv[]) * process might have called setlocale(). */ if (strverscmp (glcv, "2.5") >= 0 && strverscmp (glcv, "2.8") < 0) { - fputs ("LibVLC has detected an unusable buggy GNU/libc version.\n" - "Please update to version 2.8 or newer.\n", stderr); + fputs ("LibVLC has detected an unusable buggy GNU/libc version.\n", + stderr); + fputs ("Please update to version 2.8 or newer.\n", stderr); fflush (stderr); #ifndef DISABLE_BUGGY_GLIBC_CHECK abort (); #endif } + +# ifdef __i386__ + /* glibc 2.10, 2.10.1 fail in pthread_cond_wait on 686 */ + struct stat st; + if (strverscmp (glcv, "2.10") >= 0 + && strverscmp (glcv, "2.10.1") <= 0 /* update version when fixed */ + && !stat ("/lib/i686/cmov/libpthread.so.0", &st)) + { + fputs ("LibVLC has detected an unusable buggy GNU/libc version.\n", + stderr); + fputs ("Please remove GNU/libc acceleration for 686.\n", stderr); + fflush (stderr); +# ifndef DISABLE_BUGGY_GLIBC_CHECK + abort (); +# endif + } +# endif #endif #if 0 -- 2.39.5