Hi,

for poppler <= 0.22 it was possible to build libpoppler without
multithreading, but this fails for 0.23.

I know that configure.ac always defines MULTITHREADED and a shared
libpoppler should certainly not be built without it.  For special
situations, e.g., for TeX Live where libpoppler is only used by
luatex/pdftex/xetex to parse pdf files to be included as images, it does
make sense to build a non-shared library without multithreading.

In 0.23.1 there are a few new uses of mutex, not surrounded by
  #if MULTITHREADED ... #endif
the patch below provides these guards:

From 74f4666083090f4ddb98d4a47de2719fb241790f Mon Sep 17 00:00:00 2001
From: Peter Breitenlohner <[email protected]>
Date: Mon, 3 Jun 2013 13:11:01 +0200
Subject: [PATCH] Allow to build without multithreading
To: Albert Astals Cid <[email protected]>
Cc: [email protected]

Signed-off-by: Peter Breitenlohner <[email protected]>
---
 poppler/Annot.cc | 6 ++++++
 poppler/XRef.cc  | 4 ++++
 2 files changed, 10 insertions(+)

diff --git a/poppler/Annot.cc b/poppler/Annot.cc
index 2713fde..7e2f273 100644
--- a/poppler/Annot.cc
+++ b/poppler/Annot.cc
@@ -1543,13 +1543,19 @@ void Annot::incRefCnt() {
 }

 void Annot::decRefCnt() {
+#if MULTITHREADED
   gLockMutex(&mutex);
+#endif
   if (--refCnt == 0) {
+#if MULTITHREADED
     gUnlockMutex(&mutex);
+#endif
     delete this;
     return;
   }
+#if MULTITHREADED
   gUnlockMutex(&mutex);
+#endif
 }

 Annot::~Annot() {
diff --git a/poppler/XRef.cc b/poppler/XRef.cc
index 85f8a6f..5495b62 100644
--- a/poppler/XRef.cc
+++ b/poppler/XRef.cc
@@ -1252,11 +1252,15 @@ Object *XRef::fetch(int num, int gen, Object *obj, int 
recursion) {
 }

 void XRef::lock() {
+#if MULTITHREADED
   gLockMutex(&mutex);
+#endif
 }

 void XRef::unlock() {
+#if MULTITHREADED
   gUnlockMutex(&mutex);
+#endif
 }

 Object *XRef::getDocInfo(Object *obj) {
--
1.8.2.2



Regards
Peter Breitenlohner <[email protected]>
_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to