]> git.sesse.net Git - vlc/commitdiff
contrib: add pthreads-win32
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 5 Jul 2011 21:01:11 +0000 (00:01 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 5 Jul 2011 21:01:58 +0000 (00:01 +0300)
contrib/src/pthreads/SHA512SUMS [new file with mode: 0644]
contrib/src/pthreads/pthreads-detach.patch [new file with mode: 0644]
contrib/src/pthreads/pthreads-win64.patch [new file with mode: 0644]
contrib/src/pthreads/rules.mak

diff --git a/contrib/src/pthreads/SHA512SUMS b/contrib/src/pthreads/SHA512SUMS
new file mode 100644 (file)
index 0000000..b275fd0
--- /dev/null
@@ -0,0 +1 @@
+d86040b18641b52f2de81468e06e2885d0f0ed47cc5c9c90ca33614ed53ddd60167723b46eb477d905ad69f93b6b9002762589ba6c351f78a8041109cdbf287e  pthreads-w32-2-8-0-release.tar.gz
diff --git a/contrib/src/pthreads/pthreads-detach.patch b/contrib/src/pthreads/pthreads-detach.patch
new file mode 100644 (file)
index 0000000..39c2878
--- /dev/null
@@ -0,0 +1,12 @@
+--- pthreads.orig/ptw32_processTerminate.c     Mon Jan 26 18:00:34 2009
++++ pthreads/ptw32_processTerminate.c  Mon Jan 26 18:00:42 2009
+@@ -96,6 +96,9 @@
+         tp = tpNext;
+       }
++      ptw32_threadReuseTop = PTW32_THREAD_REUSE_EMPTY;
++      ptw32_threadReuseBottom = PTW32_THREAD_REUSE_EMPTY;
++
+       LeaveCriticalSection (&ptw32_thread_reuse_lock);
+       /* 
diff --git a/contrib/src/pthreads/pthreads-win64.patch b/contrib/src/pthreads/pthreads-win64.patch
new file mode 100644 (file)
index 0000000..aebe07c
--- /dev/null
@@ -0,0 +1,23 @@
+--- pthreads/pthread.h 2006-01-24 14:59:57.000000000 +0100
++++ pthreads.new/pthread.h     2010-04-14 15:49:39.000000000 +0200
+@@ -302,7 +302,7 @@
+ #endif
+ #endif
+-#ifndef HAVE_STRUCT_TIMESPEC
++#if !defined( HAVE_STRUCT_TIMESPEC ) && !defined( _TIMESPEC_DEFINED )
+ #define HAVE_STRUCT_TIMESPEC 1
+ struct timespec {
+         long tv_sec;
+diff -urN pthreads/GNUmakefile pthreads.new/GNUmakefile
+--- pthreads/GNUmakefile       2010-10-08 22:30:43.029264998 +0200
++++ pthreads.new/GNUmakefile   2010-10-08 22:30:55.989265032 +0200
+@@ -63,7 +63,7 @@
+ XOPT  =
+ RCFLAGS               = --include-dir=.
+-LFLAGS                = -lwsock32
++LFLAGS                = -lws2_32
+ # ----------------------------------------------------------------------
+ # The library can be built with some alternative behaviour to
index b762f0938da454305a31b946f045dc7e0d87b9fe..7eaaca6fdb65a653d269c0d2cf5fec1c427a7f07 100644 (file)
@@ -3,3 +3,34 @@
 ifndef HAVE_WIN32
 PKGS_FOUND += pthreads
 endif
+
+PTHREADS_W32_VERSION := 2-8-0
+PTHREADS_W32_URL := ftp://sources.redhat.com/pub/pthreads-win32/pthreads-w32-$(PTHREADS_W32_VERSION)-release.tar.gz
+
+$(TARBALLS)/pthreads-w32-$(PTHREADS_W32_VERSION)-release.tar.gz:
+       $(call download,$(PTHREADS_W32_URL))
+
+.sum-pthreads: pthreads-w32-$(PTHREADS_W32_VERSION)-release.tar.gz
+
+ifdef HAVE_WIN32
+pthreads: pthreads-w32-$(PTHREADS_W32_VERSION)-release.tar.gz .sum-pthreads
+       $(UNPACK)
+       $(APPLY) $(SRC)/pthreads/pthreads-detach.patch
+       $(APPLY) $(SRC)/pthreads/pthreads-win64.patch
+       sed -e 's/^CROSS.*=/CROSS ?=/' -i.orig $(UNPACK_DIR)/GNUmakefile
+       $(MOVE)
+
+ifdef HAVE_CROSS_COMPILE
+PTHREADS_W32_CONF := CROSS="$(HOST)-"
+endif
+
+.pthreads: pthreads
+       cd $< && $(HOSTVARS) $(PTHREADS_W32_CONF) $(MAKE) MAKEFLAGS=-j1 GC GC-static
+       mkdir -p -- "$(PREFIX)/include"
+       cd $< && cp -v pthread.h sched.h semaphore.h "$(PREFIX)/include/"
+       sed -e 's/#if HAVE_CONFIG_H/#if 0 \&\& HAVE_CONFIG_H/' -i \
+               "$(PREFIX)/include/pthread.h"
+       mkdir -p -- "$(PREFIX)/lib"
+       cp -v $</*.a $</*.dll "$(PREFIX)/lib/"
+       touch $@
+endif