From badec270601f94cb5bd7327407261e2c14749e55 Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Sun, 31 Mar 2013 18:11:53 +0100 Subject: [PATCH] Added CLucene patch for Win32 It corrects removal of threading support against the 2.3.3.4 head. This is required for Windows builds at present. I also added an INDEX in the contrib directory for all the other things we've snaffled into the repository. --- contrib/Clucene-2.3.3.4-NoThreads.patch | 107 ++++++++++++++++++++++++ contrib/INDEX | 5 ++ 2 files changed, 112 insertions(+) create mode 100644 contrib/Clucene-2.3.3.4-NoThreads.patch create mode 100644 contrib/INDEX diff --git a/contrib/Clucene-2.3.3.4-NoThreads.patch b/contrib/Clucene-2.3.3.4-NoThreads.patch new file mode 100644 index 000000000..0b86d31a3 --- /dev/null +++ b/contrib/Clucene-2.3.3.4-NoThreads.patch @@ -0,0 +1,107 @@ +From 44a403d45ae049e7ade3e9b47a39778dcacf4382 Mon Sep 17 00:00:00 2001 +From: Mark Liversedge +Date: Thu, 28 Mar 2013 22:03:35 +0000 +Subject: [PATCH] Fixup no threads for GC + +--- + src/core/CLucene/debug/lucenebase.h | 2 +- + src/shared/CLucene/LuceneThreads.h | 21 ++++++++++++++++++--- + src/shared/CLucene/util/Misc.cpp | 2 ++ + src/shared/CLucene/util/Misc.h | 2 ++ + 4 files changed, 23 insertions(+), 4 deletions(-) + +diff --git a/src/core/CLucene/debug/lucenebase.h b/src/core/CLucene/debug/lucenebase.h +index c053f11..9732ce6 100644 +--- a/src/core/CLucene/debug/lucenebase.h ++++ b/src/core/CLucene/debug/lucenebase.h +@@ -6,7 +6,7 @@ + ------------------------------------------------------------------------------*/ + #ifndef _lucene_debug_lucenebase_ + #define _lucene_debug_lucenebase_ +- ++#define _CL_DISABLE_MULTITHREADING + #include "CLucene/LuceneThreads.h" + + CL_NS_DEF(debug) +diff --git a/src/shared/CLucene/LuceneThreads.h b/src/shared/CLucene/LuceneThreads.h +index 97072ee..662ff2f 100644 +--- a/src/shared/CLucene/LuceneThreads.h ++++ b/src/shared/CLucene/LuceneThreads.h +@@ -13,10 +13,10 @@ class CLuceneThreadIdCompare; + + #if defined(_CL_DISABLE_MULTITHREADING) + #define SCOPED_LOCK_MUTEX(theMutex) +- #define DEFINE_MUTEX(x) ++ //#define DEFINE_MUTEX(x) + #define DEFINE_MUTABLE_MUTEX(x) + #define DEFINE_CONDITION(x) +- #define STATIC_DEFINE_MUTEX(x) ++ //#define STATIC_DEFINE_MUTEX(x) + #define CONDITION_WAIT(theMutex, theCondition) + #define CONDITION_NOTIFYALL(theCondition) + #define _LUCENE_CURRTHREADID 1 +@@ -25,11 +25,26 @@ class CLuceneThreadIdCompare; + #define _LUCENE_THREAD_FUNC_RETURN(val) return (int)val; + #define _LUCENE_THREAD_CREATE(func, arg) (*func)(arg) + #define _LUCENE_THREAD_JOIN(value) //nothing to do... +- #define _LUCENE_THREADMUTEX void* ++ //#define _LUCENE_THREADMUTEX void* + + #define _LUCENE_ATOMIC_INC(theInteger) (++(*theInteger)) + #define _LUCENE_ATOMIC_DEC(theInteger) (--(*theInteger)) + #define _LUCENE_ATOMIC_INT int ++#define _LUCENE_ATOMIC_INT_SET(x,v) x=v ++#define _LUCENE_ATOMIC_INT_GET(x) x ++ ++struct CLUCENE_SHARED_EXPORT mutex_thread ++{ ++ void lock() {} ++ void unlock() {} ++}; ++#define _LUCENE_THREADMUTEX CL_NS(util)::mutex_thread ++ ++#define DEFINE_MUTEX(theMutex) _LUCENE_THREADMUTEX theMutex; ++#define STATIC_DEFINE_MUTEX(theMutex) static _LUCENE_THREADMUTEX theMutex; ++ ++#define CONDITION_WAIT(theMutex, theCondition) ++#define CONDITION_NOTIFYALL(theCondition) + #else + #if defined(_LUCENE_DONTIMPLEMENT_THREADMUTEX) + //do nothing +diff --git a/src/shared/CLucene/util/Misc.cpp b/src/shared/CLucene/util/Misc.cpp +index 240b827..ec9eabd 100644 +--- a/src/shared/CLucene/util/Misc.cpp ++++ b/src/shared/CLucene/util/Misc.cpp +@@ -466,6 +466,7 @@ bool Misc::listFiles(const char* directory, std::vector& files, boo + std::string Misc::toString(const bool value){ + return value ? "true" : "false"; + } ++#ifndef _CL_DISABLE_MULTITHREADING + std::string Misc::toString(_LUCENE_THREADID_TYPE value){ + static int32_t nextindex = 0; + static std::map<_LUCENE_THREADID_TYPE, int32_t> ids; +@@ -474,6 +475,7 @@ std::string Misc::toString(_LUCENE_THREADID_TYPE value){ + } + return toString(ids[value]); + } ++#endif + std::string Misc::toString(const int32_t value){ + char buf[20]; + TCHAR tbuf[20]; +diff --git a/src/shared/CLucene/util/Misc.h b/src/shared/CLucene/util/Misc.h +index aea7c42..4196e24 100644 +--- a/src/shared/CLucene/util/Misc.h ++++ b/src/shared/CLucene/util/Misc.h +@@ -67,7 +67,9 @@ CL_NS_DEF(util) + + static std::string toString(const int32_t value); + static std::string toString(const int64_t value); ++#ifndef _CL_DISABLE_MULTITHREADING + static std::string toString(const _LUCENE_THREADID_TYPE value); ++#endif + static std::string toString(const bool value); + static std::string toString(const float_t value); + static std::string toString(const TCHAR* s, int32_t len=-1); +-- +1.7.8.msysgit.0 + diff --git a/contrib/INDEX b/contrib/INDEX new file mode 100644 index 000000000..ef1fc6d02 --- /dev/null +++ b/contrib/INDEX @@ -0,0 +1,5 @@ +Clucene-2.3.3.4-NoThreads.patch - To patch Clucene on Windows to remove patching +Fortius USB Driver Stubs.zip - Drivers for use with Fortius without Tacx software +Install_D2XX_drivers.mpkg.zip - D2XX installer for Windows +Universal_D2XX0.1.6.dmg - D2XX installer for Mac OSX +libusb-0.1.12.tar.gz - Libusb (patched) to work with GoldenCheetah