[vlc-commits] contrib: add pthreads-win32
Rémi Denis-Courmont
git at videolan.org
Tue Jul 5 23:02:02 CEST 2011
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Wed Jul 6 00:01:11 2011 +0300| [856f70ddf0af9d330bbfef4efd6e6437d9491e69] | committer: Rémi Denis-Courmont
contrib: add pthreads-win32
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=856f70ddf0af9d330bbfef4efd6e6437d9491e69
---
contrib/src/pthreads/SHA512SUMS | 1 +
contrib/src/pthreads/pthreads-detach.patch | 12 ++++++++++
contrib/src/pthreads/pthreads-win64.patch | 23 ++++++++++++++++++++
contrib/src/pthreads/rules.mak | 31 ++++++++++++++++++++++++++++
4 files changed, 67 insertions(+), 0 deletions(-)
diff --git a/contrib/src/pthreads/SHA512SUMS b/contrib/src/pthreads/SHA512SUMS
new file mode 100644
index 0000000..b275fd0
--- /dev/null
+++ b/contrib/src/pthreads/SHA512SUMS
@@ -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
index 0000000..39c2878
--- /dev/null
+++ b/contrib/src/pthreads/pthreads-detach.patch
@@ -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
index 0000000..aebe07c
--- /dev/null
+++ b/contrib/src/pthreads/pthreads-win64.patch
@@ -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
diff --git a/contrib/src/pthreads/rules.mak b/contrib/src/pthreads/rules.mak
index b762f09..7eaaca6 100644
--- a/contrib/src/pthreads/rules.mak
+++ b/contrib/src/pthreads/rules.mak
@@ -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
More information about the vlc-commits
mailing list