diff --git a/dev-libs/libxml2/libxml2-2.9.0.bep b/dev-libs/libxml2/libxml2-2.9.0.bep index e5659cf25..70bf22569 100644 --- a/dev-libs/libxml2/libxml2-2.9.0.bep +++ b/dev-libs/libxml2/libxml2-2.9.0.bep @@ -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 } diff --git a/dev-libs/libxml2/patches/libxml2-2.9.0.patch b/dev-libs/libxml2/patches/libxml2-2.9.0.patch new file mode 100644 index 000000000..b5ca0e802 --- /dev/null +++ b/dev-libs/libxml2/patches/libxml2-2.9.0.patch @@ -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 is there]) ++ ;; ++ + *linux*) + if test "${GCC}" = "yes" ; then + GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`