diff --git a/HISTORY b/HISTORY index 1a765f46..05afc85c 100644 --- a/HISTORY +++ b/HISTORY @@ -3122,3 +3122,5 @@ Video Disk Recorder Revision History - Fixed cChannel::SetName() in case only the ShortName or Provider has changed (thanks to Sascha Volkenandt for reporting this one). - Added Danish language texts (thanks to Mogens Elneff). +- Reactivated the NPTL check at startup because there appear to be still + unsolved problems when running on NPTL systems. diff --git a/INSTALL b/INSTALL index 2b363d44..f054d7ab 100644 --- a/INSTALL +++ b/INSTALL @@ -7,7 +7,14 @@ Version 1.3 IMPORTANT NOTES: ---------------- -Please make sure your environment is NOT set to use UTF-8 or +VDR currently doesn't work with NPTL ("Native Posix Thread Library"). +Either don't use NPTL, or set the environment variable + + LD_ASSUME_KERNEL=2.4.1 + +before running VDR. + +Also, please make sure your environment is NOT set to use UTF-8 or any other multibyte character representation. Check the value of your $LANG or $LC_CTYPE environment variable, and if it contains something like "de_DE.UTF-8", make sure you set it to something like "de_DE.iso8859-1" diff --git a/vdr.c b/vdr.c index d91308f5..c82f2b44 100644 --- a/vdr.c +++ b/vdr.c @@ -22,7 +22,7 @@ * * The project's page is at http://www.cadsoft.de/vdr * - * $Id: vdr.c 1.192 2004/10/31 10:17:23 kls Exp $ + * $Id: vdr.c 1.193 2004/11/06 10:30:30 kls Exp $ */ #include @@ -87,6 +87,17 @@ static void Watchdog(int signum) int main(int argc, char *argv[]) { +#ifdef _CS_GNU_LIBPTHREAD_VERSION + // Check for NPTL and exit if present - VDR apparently doesn't run well with NPTL: + char LibPthreadVersion[128]; + if (confstr(_CS_GNU_LIBPTHREAD_VERSION, LibPthreadVersion, sizeof(LibPthreadVersion)) > 0) { + if (strstr(LibPthreadVersion, "NPTL")) { + fprintf(stderr, "vdr: please turn off NPTL by setting 'export LD_ASSUME_KERNEL=2.4.1' before starting VDR\n"); + return 2; + } + } +#endif + // Check for UTF-8 and exit if present - asprintf() will fail if it encounters 8 bit ASCII codes char *LangEnv; if ((LangEnv = getenv("LANG")) != NULL && strcasestr(LangEnv, "utf") ||