Hi!
On Wed, Apr 16, 2008 at 4:55 PM, Ganael LAPLANCHE <[EMAIL PROTECTED]> wrote: > It produces the same error as previously reported : "No system found!". Very > strange, but applying those two patches allows the libs to be found and > mplayer > to (nearly) start : It's not as simple as it may seem... These are the comments from the DirectFB repository. commit ac94b2ebc28cf6cc28c8c8357e48b9869c1501d9 Author: Claudio Ciccani <[EMAIL PROTECTED]> Date: Tue Oct 3 12:19:15 2006 +0000 Use readdir_r() instead of readdir(). diff --git a/lib/direct/interface.c b/lib/direct/interface.c index 312f4fb..9af7f94 100644 --- a/lib/direct/interface.c +++ b/lib/direct/interface.c @@ -101,7 +101,8 @@ DirectGetInterface( DirectInterfaceFuncs **funcs, int len; DIR *dir; char *interface_dir; - struct dirent *entry; + struct dirent *entry = NULL; + struct dirent tmp; #endif DirectLink *link; @@ -157,7 +158,7 @@ DirectGetInterface( DirectInterfaceFuncs **funcs, /* * Iterate directory. */ - while ( (entry = readdir(dir) ) != NULL ) { + while (readdir_r( dir, &tmp, &entry ) == 0 && entry) { void *handle = NULL; char buf[4096]; @@ -191,12 +192,7 @@ DirectGetInterface( DirectInterfaceFuncs **funcs, /* * Open it and check. */ -#ifdef RTLD_GLOBAL - handle = dlopen( buf, RTLD_NOW /*| RTLD_GLOBAL*/ ); -#else - /* RTLD_GLOBAL is missing on OpenBSD*/ handle = dlopen( buf, RTLD_NOW ); -#endif if (handle) { DirectInterfaceImplementation *impl = (DirectInterfaceImplementation*) implementations; commit 63607c8aa5ae4bedec39cfa0660f80587103d610 Author: Claudio Ciccani <[EMAIL PROTECTED]> Date: Fri Oct 6 12:09:53 2006 +0000 readdir_r() instead of readdir(). diff --git a/lib/direct/modules.c b/lib/direct/modules.c index 01741b2..56099e3 100644 --- a/lib/direct/modules.c +++ b/lib/direct/modules.c @@ -142,7 +142,8 @@ direct_modules_explore_directory( DirectModuleDir *directory ) #ifdef DYNAMIC_LINKING int dir_len; DIR *dir; - struct dirent *entry; + struct dirent *entry = NULL; + struct dirent tmp; int count = 0; D_ASSERT( directory != NULL ); @@ -156,7 +157,7 @@ direct_modules_explore_directory( DirectModuleDir *directory ) return 0; } - while ((entry = readdir( dir )) != NULL) { + while (readdir_r( dir, &tmp, &entry ) == 0 && entry) { void *handle; DirectModuleEntry *module; int entry_len = strlen(entry->d_name); -- Mit freundlichen Grüßen, Anatoly Borodin business: [EMAIL PROTECTED] privat: [EMAIL PROTECTED]
_______________________________________________ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"