diff options
author | Jung-uk Kim <jkim@FreeBSD.org> | 2012-08-27 11:49:36 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-08-27 13:33:44 +0200 |
commit | 8a55c4af62d90ff8518491a86a97bfe827591ece (patch) | |
tree | 9e857db9f238e81f7fc460870277397c3cb48541 /clucene | |
parent | 8474c6af652343777653e6ac8115b994b54ff853 (diff) |
fdo#53855: Use the newly added HAVE_GCC_BUILTIN_ATOMIC for clucene
Signed-off-by: Stephan Bergmann <sbergman@redhat.com>:
* added clucene-config-MINGW-atomic.h, to not lose _CL_HAVE_GCC_ATOMIC_FUNCTIONS
when applicable there
* renamed clucene-config-GCC.h to clucene-config-GCC-atomic.h for consistency
with above
Change-Id: I3dd15721b568fa9358b79ec28bad39249200c773
Diffstat (limited to 'clucene')
-rw-r--r-- | clucene/UnpackedTarball_clucene.mk | 9 | ||||
-rw-r--r-- | clucene/configs/clucene-config-GCC-atomic.h | 148 | ||||
-rw-r--r-- | clucene/configs/clucene-config-MINGW-atomic.h | 148 | ||||
-rw-r--r-- | clucene/configs/clucene-config-generic.h | 2 | ||||
-rw-r--r-- | clucene/patches/clucene-gcc-atomics.patch | 31 |
5 files changed, 305 insertions, 33 deletions
diff --git a/clucene/UnpackedTarball_clucene.mk b/clucene/UnpackedTarball_clucene.mk index de974da9ebc2..d7ecfc764e4d 100644 --- a/clucene/UnpackedTarball_clucene.mk +++ b/clucene/UnpackedTarball_clucene.mk @@ -26,7 +26,6 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,clucene,0)) # http://sourceforge.net/mailarchive/message.php?msg_id=29143260 $(eval $(call gb_UnpackedTarball_add_patches,clucene,\ clucene/patches/clucene-debug.patch \ - clucene/patches/clucene-gcc-atomics.patch \ clucene/patches/clucene-internal-zlib.patch \ clucene/patches/clucene-multimap-put.patch \ clucene/patches/clucene-narrowing-conversions.patch \ @@ -39,10 +38,18 @@ $(eval $(call gb_UnpackedTarball_add_file,clucene,src/shared/CLucene/_clucene-co ifeq ($(COM),MSC) $(eval $(call gb_UnpackedTarball_add_file,clucene,src/shared/CLucene/clucene-config.h,clucene/configs/clucene-config-MSVC.h)) else +ifeq ($(HAVE_GCC_BUILTIN_ATOMIC),TRUE) +$(eval $(call gb_UnpackedTarball_add_file,clucene,src/shared/CLucene/clucene-config.h,clucene/configs/clucene-config-MINGW-atomic.h)) +else $(eval $(call gb_UnpackedTarball_add_file,clucene,src/shared/CLucene/clucene-config.h,clucene/configs/clucene-config-MINGW.h)) endif +endif else # ! $(OS),WNT +ifeq ($(HAVE_GCC_BUILTIN_ATOMIC),TRUE) +$(eval $(call gb_UnpackedTarball_add_file,clucene,src/shared/CLucene/clucene-config.h,clucene/configs/clucene-config-GCC-atomic.h)) +else $(eval $(call gb_UnpackedTarball_add_file,clucene,src/shared/CLucene/clucene-config.h,clucene/configs/clucene-config-generic.h)) +endif ifeq ($(OS),LINUX) $(eval $(call gb_UnpackedTarball_add_file,clucene,src/shared/CLucene/_clucene-config.h,clucene/configs/_clucene-config-LINUX.h)) else diff --git a/clucene/configs/clucene-config-GCC-atomic.h b/clucene/configs/clucene-config-GCC-atomic.h new file mode 100644 index 000000000000..4dc8390a79b7 --- /dev/null +++ b/clucene/configs/clucene-config-GCC-atomic.h @@ -0,0 +1,148 @@ +#ifndef _SRC_CLUCENE_CLUCENE_CONFIG_H +#define _SRC_CLUCENE_CLUCENE_CONFIG_H 1 + +/* src/shared/CLucene/clucene-config.h. +* Generated automatically at end of cmake. +*/ + +/* CMake will look for these headers: */ +#define _CL_HAVE_STRING_H 1 +#define _CL_HAVE_MEMORY_H 1 +#define _CL_HAVE_UNISTD_H 1 +/* #undef _CL_HAVE_IO_H */ +/* #undef _CL_HAVE_DIRECT_H */ +#define _CL_HAVE_DIRENT_H 1 +#define _CL_HAVE_SYS_DIR_H +/* #undef _CL_HAVE_SYS_NDIR_H */ +#define _CL_HAVE_ERRNO_H 1 +#define _CL_HAVE_WCHAR_H 1 +#define _CL_HAVE_WCTYPE_H +#define _CL_HAVE_CTYPE_H 1 +/* #undef _CL_HAVE_WINDOWS_H */ +/* #undef _CL_HAVE_WINDEF_H */ +#define _CL_HAVE_SYS_TYPES_H 1 +/* #undef _CL_HAVE_DLFCN_H */ +#define _CL_HAVE_EXT_HASH_MAP 1 +/* #undef _CL_HAVE_EXT_HASH_SET */ +#define _CL_HAVE_TR1_UNORDERED_MAP 1 +#define _CL_HAVE_TR1_UNORDERED_SET 1 +#define _CL_HAVE_HASH_MAP +#define _CL_HAVE_HASH_SET +/* #undef _CL_HAVE_NDIR_H */ +#define _CL_HAVE_SYS_STAT_H 1 +#define _CL_HAVE_SYS_TIMEB_H 1 +#define _CL_HAVE_SYS_TIME_H 1 +/* #undef _CL_HAVE_TCHAR_H */ +#define _CL_HAVE_SYS_MMAN_H 1 +/* #undef _CL_HAVE_WINERROR_H */ +#define _CL_HAVE_STDINT_H 1 + +// our needed types +/* undef int8_t int8_t */ +/* undef uint8_t uint8_t */ +/* undef int16_t int16_t */ +/* undef uint16_t uint16_t */ +/* undef int32_t int32_t */ +/* undef uint32_t uint32_t */ +/* undef int64_t int64_t */ +/* undef uint64_t uint64_t */ + +/* undef float_t*/ + +/* undef size_t size_t */ + +/* tchar & _T definitions... */ +typedef wchar_t TCHAR; +#define _T(x) L ## x + +/* CMake will determine these specifics. Things like bugs, etc */ + +/* if we can't support the map/set hashing */ +/* #undef LUCENE_DISABLE_HASHING */ + +/* Define if you have POSIX threads libraries and header files. */ +#define _CL_HAVE_PTHREAD 1 + +/* Define if you have Win32 threads libraries and header files. */ +/* #undef _CL_HAVE_WIN32_THREADS */ + +/* Define if we have gcc atomic functions */ +#define _CL_HAVE_GCC_ATOMIC_FUNCTIONS 1 + +/* Define what eval method is required for float_t to be defined (for GCC). */ +/* #undef _FLT_EVAL_METHOD */ + +/* If we use hashmaps, which namespace do we use: */ +#define CL_NS_HASHING(func) std::tr1::func +/* If we use hashmaps, which classes do we use: */ +#define _CL_HASH_MAP unordered_map +#define _CL_HASH_SET unordered_set + +/* define if the compiler implements namespaces */ +#define _CL_HAVE_NAMESPACES + +/* Defined if the snprintf overflow test fails */ +/* #undef _CL_HAVE_SNPRINTF_BUG */ + +/* Defined if the swprintf test fails */ +/* #undef _CL_HAVE_SNWPRINTF_BUG */ + +/* How to define a static const in a class */ +#define LUCENE_STATIC_CONSTANT(type, assignment) static const type assignment + +/* Define to the necessary symbol if this constant uses a non-standard name on + your system. */ +//todo: not checked +/* #undef _CL_PTHREAD_CREATE_JOINABLE */ + +/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */ +//todo: not being checked for... +/* #undef _CL_STAT_MACROS_BROKEN */ + +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ +//not actually used for anything... +//#define _CL_TIME_WITH_SYS_TIME 1 + +/* Define that we will be using -fvisibility=hidden, and + * make public classes visible using __attribute__ ((visibility("default"))) + */ +#define _CL_HAVE_GCCVISIBILITYPATCH 1 + + +/* Versions, etc */ + +/* Name of package */ +#define _CL_PACKAGE "clucene-core" + +/* Version number of package */ +#define _CL_VERSION "2.3.3.4" + +/* So-Version number of package */ +#define _CL_SOVERSION "1" + +/* A comparable version number */ +#define _CL_INT_VERSION 2030304 + +/* Configured options (from command line) */ + +/* Forces into Ascii mode */ +/* #undef _ASCII */ + +/* Conditional Debugging */ +/* #undef _CL__CND_DEBUG */ + +/* debuging option */ +/* #undef _DEBUG */ + +/* Disable multithreading */ +/* #undef _CL_DISABLE_MULTITHREADING */ + + +#ifdef __BORLANDC__ //borland compiler + //todo: bcc incorrectly detects this... fix this in cmake + #undef LUCENE_STATIC_CONSTANT + #define LUCENE_STATIC_CONSTANT(type, assignment) enum { assignment } +#endif + + +#endif diff --git a/clucene/configs/clucene-config-MINGW-atomic.h b/clucene/configs/clucene-config-MINGW-atomic.h new file mode 100644 index 000000000000..a75b98b609ef --- /dev/null +++ b/clucene/configs/clucene-config-MINGW-atomic.h @@ -0,0 +1,148 @@ +#ifndef _SRC_CLUCENE_CLUCENE_CONFIG_H +#define _SRC_CLUCENE_CLUCENE_CONFIG_H 1 + +/* src/shared/CLucene/clucene-config.h. +* Generated automatically at end of cmake. +*/ + +/* CMake will look for these headers: */ +#define _CL_HAVE_STRING_H 1 +#define _CL_HAVE_MEMORY_H 1 +/* #undef _CL_HAVE_UNISTD_H */ +#define _CL_HAVE_IO_H 1 +#define _CL_HAVE_DIRECT_H 1 +/* #undef _CL_HAVE_DIRENT_H */ +/* #undef _CL_HAVE_SYS_DIR_H */ +/* #undef _CL_HAVE_SYS_NDIR_H */ +#define _CL_HAVE_ERRNO_H 1 +#define _CL_HAVE_WCHAR_H 1 +#define _CL_HAVE_WCTYPE_H +#define _CL_HAVE_CTYPE_H 1 +#define _CL_HAVE_WINDOWS_H 1 +/* #undef _CL_HAVE_WINDEF_H */ +#define _CL_HAVE_SYS_TYPES_H 1 +/* #undef _CL_HAVE_DLFCN_H */ +/* #undef _CL_HAVE_EXT_HASH_MAP */ +/* #undef _CL_HAVE_EXT_HASH_SET */ +/* #undef _CL_HAVE_TR1_UNORDERED_MAP */ +/* #undef _CL_HAVE_TR1_UNORDERED_SET */ +/* #undef _CL_HAVE_HASH_MAP */ +/* #undef _CL_HAVE_HASH_SET */ +/* #undef _CL_HAVE_NDIR_H */ +#define _CL_HAVE_SYS_STAT_H 1 +#define _CL_HAVE_SYS_TIMEB_H 1 +/* #undef _CL_HAVE_SYS_TIME_H */ +#define _CL_HAVE_TCHAR_H 1 +/* #undef _CL_HAVE_SYS_MMAN_H */ +#define _CL_HAVE_WINERROR_H 1 +/* #undef _CL_HAVE_STDINT_H */ + +// our needed types +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; + +/* undef float_t*/ +typedef unsigned long _cl_dword_t; +/* undef size_t size_t */ + +/* tchar & _T definitions... */ +/* undef TCHAR TCHAR */ +/* #undef _T */ + +/* CMake will determine these specifics. Things like bugs, etc */ + +/* if we can't support the map/set hashing */ +/* #undef LUCENE_DISABLE_HASHING */ + +/* Define if you have POSIX threads libraries and header files. */ +/* #undef _CL_HAVE_PTHREAD */ + +/* Define if you have Win32 threads libraries and header files. */ +#define _CL_HAVE_WIN32_THREADS 1 + +/* Define if we have gcc atomic functions */ +#define _CL_HAVE_GCC_ATOMIC_FUNCTIONS 1 + +/* Define what eval method is required for float_t to be defined (for GCC). */ +/* #undef _FLT_EVAL_METHOD */ + +/* If we use hashmaps, which namespace do we use: */ +#define CL_NS_HASHING(func) +/* If we use hashmaps, which classes do we use: */ +#define _CL_HASH_MAP +#define _CL_HASH_SET + +/* define if the compiler implements namespaces */ +#define _CL_HAVE_NAMESPACES + +/* Defined if the snprintf overflow test fails */ +/* #undef _CL_HAVE_SNPRINTF_BUG */ + +/* Defined if the swprintf test fails */ +/* #undef _CL_HAVE_SNWPRINTF_BUG */ + +/* How to define a static const in a class */ +#define LUCENE_STATIC_CONSTANT(type, assignment) static const type assignment + +/* Define to the necessary symbol if this constant uses a non-standard name on + your system. */ +//todo: not checked +/* #undef _CL_PTHREAD_CREATE_JOINABLE */ + +/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */ +//todo: not being checked for... +/* #undef _CL_STAT_MACROS_BROKEN */ + +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ +//not actually used for anything... +/* #undef _CL_TIME_WITH_SYS_TIME */ + +/* Define that we will be using -fvisibility=hidden, and + * make public classes visible using __attribute__ ((visibility("default"))) + */ +/* #undef _CL_HAVE_GCCVISIBILITYPATCH */ + + +/* Versions, etc */ + +/* Name of package */ +#define _CL_PACKAGE "clucene-core" + +/* Version number of package */ +#define _CL_VERSION "2.3.3.4" + +/* So-Version number of package */ +#define _CL_SOVERSION "1" + +/* A comparable version number */ +#define _CL_INT_VERSION 2030304 + +/* Configured options (from command line) */ + +/* Forces into Ascii mode */ +/* #undef _ASCII */ + +/* Conditional Debugging */ +/* #undef _CL__CND_DEBUG */ + +/* debuging option */ +/* #undef _DEBUG */ + +/* Disable multithreading */ +/* #undef _CL_DISABLE_MULTITHREADING */ + + +#ifdef __BORLANDC__ //borland compiler + //todo: bcc incorrectly detects this... fix this in cmake + #undef LUCENE_STATIC_CONSTANT + #define LUCENE_STATIC_CONSTANT(type, assignment) enum { assignment } +#endif + + +#endif diff --git a/clucene/configs/clucene-config-generic.h b/clucene/configs/clucene-config-generic.h index 4dc8390a79b7..b69ba5bc9267 100644 --- a/clucene/configs/clucene-config-generic.h +++ b/clucene/configs/clucene-config-generic.h @@ -67,7 +67,7 @@ typedef wchar_t TCHAR; /* #undef _CL_HAVE_WIN32_THREADS */ /* Define if we have gcc atomic functions */ -#define _CL_HAVE_GCC_ATOMIC_FUNCTIONS 1 +/* #undef _CL_HAVE_GCC_ATOMIC_FUNCTIONS */ /* Define what eval method is required for float_t to be defined (for GCC). */ /* #undef _FLT_EVAL_METHOD */ diff --git a/clucene/patches/clucene-gcc-atomics.patch b/clucene/patches/clucene-gcc-atomics.patch deleted file mode 100644 index 819e9a7d7a3e..000000000000 --- a/clucene/patches/clucene-gcc-atomics.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- src/shared/CLucene/config/threads.cpp 2012-02-23 12:06:55.355506304 +0000 -+++ src/shared/CLucene/config/threads.cpp 2012-02-23 12:07:17.131766381 +0000 -@@ -185,7 +185,7 @@ - } - - int32_t atomic_threads::atomic_increment(_LUCENE_ATOMIC_INT *theInteger){ -- #ifdef _CL_HAVE_GCC_ATOMIC_FUNCTIONS -+ #if ( __GNUC__ > 4 ) || (( __GNUC__ == 4) && ( __GNUC_MINOR__ >= 4 )) - return __sync_add_and_fetch(theInteger, 1); - #else - SCOPED_LOCK_MUTEX(theInteger->THIS_LOCK) -@@ -193,7 +193,7 @@ - #endif - } - int32_t atomic_threads::atomic_decrement(_LUCENE_ATOMIC_INT *theInteger){ -- #ifdef _CL_HAVE_GCC_ATOMIC_FUNCTIONS -+ #if ( __GNUC__ > 4 ) || (( __GNUC__ == 4) && ( __GNUC_MINOR__ >= 4 )) - return __sync_sub_and_fetch(theInteger, 1); - #else - SCOPED_LOCK_MUTEX(theInteger->THIS_LOCK) ---- src/shared/CLucene/LuceneThreads.h 2012-02-23 12:36:28.388299322 +0000 -+++ src/shared/CLucene/LuceneThreads.h 2012-02-23 12:37:23.131885433 +0000 -@@ -70,7 +70,7 @@ - void NotifyAll(); - }; - -- #ifdef _CL_HAVE_GCC_ATOMIC_FUNCTIONS -+ #if ( __GNUC__ > 4 ) || (( __GNUC__ == 4) && ( __GNUC_MINOR__ >= 4 )) - #define _LUCENE_ATOMIC_INT uint32_t - #define _LUCENE_ATOMIC_INT_SET(x,v) x=v - #define _LUCENE_ATOMIC_INT_GET(x) x |