From 5c731e2ea669bbc732e51dc95c1ec68cc41050e6 Mon Sep 17 00:00:00 2001 From: Diogo Franco Date: Sun, 27 Mar 2011 12:38:01 -0300 Subject: configure, Windows: support static pthreads on Windows Windows pthreads requires certain functions to be called to initialize itself. It can do that through DllMain but no such luck when linked statically; mplayer needs to call the initialization explicitly. --- configure | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'configure') diff --git a/configure b/configure index 21360b36e0..4a0f88712e 100755 --- a/configure +++ b/configure @@ -3186,7 +3186,14 @@ if test "$_pthreads" = auto ; then cat > $TMPC << EOF #include static void *func(void *arg) { return arg; } -int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; } +int main(void) { + pthread_t tid; +#ifdef PTW32_STATIC_LIB + pthread_win32_process_attach_np(); + pthread_win32_thread_attach_np(); +#endif + return pthread_create (&tid, 0, func, 0) != 0; +} EOF _pthreads=no if ! hpux ; then @@ -3194,6 +3201,10 @@ if ! hpux ; then # for crosscompilation, we cannot execute the program, be happy if we can link statically cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break done + if test "$_pthreads" = no && mingw32 ; then + _ld_tmp="-lpthreadGC2 -lws2_32" + cc_check $_ld_tmp -DPTW32_STATIC_LIB && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && CFLAGS="$CFLAGS -DPTW32_STATIC_LIB" + fi fi fi if test "$_pthreads" = yes ; then -- cgit v1.2.3