diff options
author | Eric Hameleers <alien@slackware.com> | 2009-04-17 17:05:45 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2009-04-17 17:05:45 +0000 |
commit | 978796ddd04d2a6ac3028d477eaa8f26c36282c6 (patch) | |
tree | 834c87894df484b4ec4e7f68ca5fd938a111ad83 /vlc | |
parent | 2d93305feaaae8f1bd1186045ade054a4278c7d3 (diff) | |
download | asb-978796ddd04d2a6ac3028d477eaa8f26c36282c6.tar.gz asb-978796ddd04d2a6ac3028d477eaa8f26c36282c6.tar.xz |
Initial revision
Diffstat (limited to 'vlc')
-rw-r--r-- | vlc/build/vlc-1.0.0_allow_older_glibc.diff | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/vlc/build/vlc-1.0.0_allow_older_glibc.diff b/vlc/build/vlc-1.0.0_allow_older_glibc.diff new file mode 100644 index 00000000..ad82a88e --- /dev/null +++ b/vlc/build/vlc-1.0.0_allow_older_glibc.diff @@ -0,0 +1,77 @@ +# We have revert the following commits below which prevent +# VLC from compiling with Slackware 12.2's glibc 2.7: +# 82f20ceb63d9437d5d8c2eb92312ef37dae93e44 +# 288559204f8b0ef943d5e7273b9a076f69318c26 +--- a/configure.ac ++++ b/configure.ac +@@ -503,6 +503,24 @@ AC_LANG_PUSH(C++) + AC_LANG_POP(C++) + fi + ++dnl ++dnl Buggy glibc prevention. Purposedly not cached. ++dnl Ubuntu alone has 20 bug numbers for this... ++dnl ++AC_MSG_CHECKING(for buggy GNU/libc versions) ++AC_PREPROC_IFELSE([ ++#include <limits.h> ++#if defined (__GLIBC__) && (__GLIBC__ == 2) \ ++ && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7) ++# error GNU/libc with dcgettext killer bug! ++#endif ++], [ ++ AC_MSG_RESULT([not present]) ++], [ ++ AC_MSG_RESULT([found]) ++ AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable work-around for this. Check with your distribution vendor on how to update the glibc run-time.]) ++]) ++ + dnl Plugin compilation stuff + + VLC_LIBRARY_SUFFIX +--- a/src/misc/linux_specific.c ++++ b/src/misc/linux_specific.c +@@ -22,11 +22,13 @@ + # include "config.h" + #endif + ++#include <stdio.h> ++#include <string.h> ++ + #include <vlc_common.h> + #include "../libvlc.h" + + #if 0 +-#include <stdio.h> + #include <assert.h> + #include <pthread.h> + +@@ -70,8 +72,28 @@ static void set_libvlc_path (void) + } + #endif + ++#ifdef __GLIBC__ ++# include <gnu/libc-version.h> ++# include <stdlib.h> ++#endif ++ + void system_Init (libvlc_int_t *libvlc, int *argc, const char *argv[]) + { ++#ifdef __GLIBC__ ++ const char *glcv = gnu_get_libc_version (); ++ ++ /* gettext in glibc 2.5-2.7 is not thread-safe. LibVLC keeps crashing, ++ * especially in sterror_r(). Even if we have NLS disabled, the calling ++ * 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); ++ fflush (stderr); ++ abort (); ++ } ++#endif ++ + #if 0 + static pthread_once_t once = PTHREAD_ONCE_INIT; + pthread_once (&once, set_libvlc_path); |