[vlc-commits] contrib: workaround libxml 2.9.0 threads error for OSX

Diego Fernando Nieto git at videolan.org
Tue Nov 13 17:03:03 CET 2012


vlc | branch: master | Diego Fernando Nieto <diegofn at me.com> | Sat Nov 10 13:34:28 2012 -0500| [c6fb7802b909b17942b38c8359342237e1cc62ef] | committer: Jean-Baptiste Kempf

contrib: workaround libxml 2.9.0 threads error for OSX

Modified-by: Edward Wang <edward.c.wang at compdigitec.com>

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c6fb7802b909b17942b38c8359342237e1cc62ef
---

 contrib/src/libxml2/osx-threads.patch |   19 +++++++++++++++++++
 contrib/src/libxml2/rules.mak         |    3 +++
 2 files changed, 22 insertions(+)

diff --git a/contrib/src/libxml2/osx-threads.patch b/contrib/src/libxml2/osx-threads.patch
new file mode 100644
index 0000000..e15352a
--- /dev/null
+++ b/contrib/src/libxml2/osx-threads.patch
@@ -0,0 +1,19 @@
+--- libxml2-2.9.0/threads.c.orig	2012-11-10 08:11:05.000000000 -0500
++++ libxml2-2.9.0/threads.c	2012-11-10 08:12:30.000000000 -0500
+@@ -146,6 +146,7 @@
+ static pthread_key_t globalkey;
+ static pthread_t mainthread;
+ static pthread_once_t once_control = PTHREAD_ONCE_INIT;
++static pthread_once_t once_control_init = PTHREAD_ONCE_INIT;
+ static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER;
+ #elif defined HAVE_WIN32_THREADS
+ #if defined(HAVE_COMPILER_TLS)
+@@ -915,7 +916,7 @@
+ #ifdef HAVE_PTHREAD_H
+     if ((libxml_is_threaded)  && (pthread_key_delete != NULL))
+         pthread_key_delete(globalkey);
+-    once_control = PTHREAD_ONCE_INIT;
++    once_control = once_control_init;
+ #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
+     if (globalkey != TLS_OUT_OF_INDEXES) {
+         xmlGlobalStateCleanupHelperParams *p;
diff --git a/contrib/src/libxml2/rules.mak b/contrib/src/libxml2/rules.mak
index 66ae3a7..b2d24b7 100644
--- a/contrib/src/libxml2/rules.mak
+++ b/contrib/src/libxml2/rules.mak
@@ -17,6 +17,9 @@ XMLCONF = --with-minimal --with-catalog --with-reader --with-tree --with-push --
 
 libxml2: libxml2-$(LIBXML2_VERSION).tar.gz .sum-libxml2
 	$(UNPACK)
+ifdef HAVE_MACOSX
+	$(APPLY) $(SRC)/libxml2/osx-threads.patch
+endif
 	$(APPLY) $(SRC)/libxml2/no-tests.patch
 	$(APPLY) $(SRC)/libxml2/pthread.patch
 	$(MOVE)



More information about the vlc-commits mailing list