Add patch from libxml2 upstream to fix bug with thread support, enable

thread support
This commit is contained in:
Cian Duffy
2013-02-12 21:10:02 +00:00
parent 42f79c0439
commit 2f085e7a83
2 changed files with 35 additions and 1 deletions

View File

@@ -16,7 +16,8 @@ BUILD {
./configure --prefix=`finddir B_COMMON_DIRECTORY` \
--datarootdir=$COMMON_DOCS \
--docdir=$COMMON_DOCS/doc \
--mandir=$COMMON_DOCS/man
--mandir=$COMMON_DOCS/man \
--with-threads=yes
LDFLAGS="-lnetwork"
make
}

View File

@@ -0,0 +1,33 @@
--- libxml2-2.9.0-orig/threads.c 2012-09-11 03:52:46.000000000 +0000
+++ libxml2-2.9.0/threads.c 2013-02-12 20:44:23.000000000 +0000
@@ -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;
--- libxml2-2.9.0-orig/configure.in 2012-09-11 03:52:46.053739520 +0000
+++ libxml2-2.9.0/configure.in 2013-02-12 20:37:19.000000000 +0000
@@ -988,6 +988,11 @@
*beos*) WITH_THREADS="1"
THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
;;
+ *haiku*) WITH_THREADS="1"
+ THREAD_LIB=""
+ AC_DEFINE([HAVE_PTHREAD_H], [], [Define if <pthread.h> is there])
+ ;;
+
*linux*)
if test "${GCC}" = "yes" ; then
GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`