[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