Paul J. Lucas has proposed merging lp:~paul-lucas/zorba/pjl-misc into lp:zorba.
Commit message: Some Mac OS X Mavericks build fixes. Requested reviews: Paul J. Lucas (paul-lucas) For more details, see: https://code.launchpad.net/~paul-lucas/zorba/pjl-misc/+merge/192822 Some Mac OS X Mavericks build fixes. -- https://code.launchpad.net/~paul-lucas/zorba/pjl-misc/+merge/192822 Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'CMakeLists.txt' --- CMakeLists.txt 2013-08-23 11:15:04 +0000 +++ CMakeLists.txt 2013-10-27 15:34:19 +0000 @@ -152,8 +152,9 @@ SET(CMAKE_EXTRA_INCLUDE_FILES) # C++11 langauge features -CHECK_CXX_SOURCE_COMPILES( - "int main() { int *p = nullptr; }" ZORBA_CXX_NULLPTR) +CHECK_CXX_SOURCE_COMPILES(" + #include <cstddef> + int main() { int *p = nullptr; }" ZORBA_CXX_NULLPTR) CHECK_CXX_SOURCE_COMPILES( "int main() { static_assert(1,\"\"); }" ZORBA_CXX_STATIC_ASSERT) === modified file 'include/zorba/config.h.cmake' --- include/zorba/config.h.cmake 2013-08-14 04:32:57 +0000 +++ include/zorba/config.h.cmake 2013-10-27 15:34:19 +0000 @@ -136,6 +136,9 @@ #if defined( __GNUC__ ) && (__GNUC__ * 100 + __GNUC_MINOR__ < 430) # define ZORBA_GCC_OLDER_THAN_430 1 #endif +#if defined( __APPLE_CC__ ) && (__APPLE_CC__ >= 5621) +# undef ZORBA_GCC_OLDER_THAN_430 +#endif #if defined( _MSC_VER ) && (_MSC_VER < 1600 /* 2010 */) # define ZORBA_MSC_OLDER_THAN_2010 1 @@ -238,3 +241,4 @@ #endif /* BUILDING_ZORBA_STATIC */ #endif /* ZORBA_CONFIG_H */ +/* vim:set et sw=2 ts=2: */ === modified file 'include/zorba/internal/cxx_util.h' --- include/zorba/internal/cxx_util.h 2013-06-15 18:13:33 +0000 +++ include/zorba/internal/cxx_util.h 2013-10-27 15:34:19 +0000 @@ -21,7 +21,7 @@ /////////////////////////////////////////////////////////////////////////////// -#ifndef ZORBA_CXX_NULLPTR +#if !defined( ZORBA_CXX_NULLPTR ) && !defined( nullptr ) namespace zorba { namespace internal { @@ -68,7 +68,7 @@ /////////////////////////////////////////////////////////////////////////////// -#ifndef ZORBA_CXX_STATIC_ASSERT +#if !defined( ZORBA_CXX_STATIC_ASSERT ) && !defined( static_assert ) template<bool> struct zorba_static_assert; // intentionally undefined template<> struct zorba_static_assert<true> { }; === modified file 'src/util/atomic_int.h' --- src/util/atomic_int.h 2013-02-07 17:24:36 +0000 +++ src/util/atomic_int.h 2013-10-27 15:34:19 +0000 @@ -23,11 +23,9 @@ # endif #endif -// -// Test first for and prefer gcc's atomic operations over all others since -// they're an order of magnitude faster. -// -#if defined( __GNUC__ ) +#if defined( __APPLE__ ) +# include <libkern/OSAtomic.h> +#elif defined( __GNUC__ ) # if __GNUC__ * 100 + __GNUC_MINOR__ >= 402 # include <ext/atomicity.h> # else @@ -38,8 +36,6 @@ # else # define GNU_EXCHANGE_AND_ADD __gnu_cxx::__exchange_and_add # endif -#elif defined( __APPLE__ ) -# include <libkern/OSAtomic.h> #elif defined( __FreeBSD__ ) # include <sys/types.h> # include <machine/atomic.h> @@ -66,10 +62,10 @@ */ class atomic_int { public: -#if defined( __GNUC__ ) +#if defined( __APPLE__ ) || defined( __NetBSD__ ) || defined( __SOLARIS__ ) + typedef int32_t value_type; +#elif defined( __GNUC__ ) typedef _Atomic_word value_type; -#elif defined( __APPLE__ ) || defined( __NetBSD__ ) || defined( __SOLARIS__ ) - typedef int32_t value_type; #elif defined( __FreeBSD__ ) typedef int value_type; #elif defined( _WIN32 ) @@ -175,10 +171,10 @@ return atomic_load_acq_int( &value_ ); #else value_type const temp = *(value_type volatile*)&value_; -# if defined( __GNUC__ ) +# if defined( __APPLE__ ) + OSMemoryBarrier(); +# elif defined( __GNUC__ ) _GLIBCXX_READ_MEM_BARRIER; -# elif defined( __APPLE__ ) - OSMemoryBarrier(); # elif defined( __NetBSD__ ) || defined( __SOLARIS__ ) membar_consumer(); # elif defined( _WIN32 ) @@ -196,10 +192,10 @@ #elif defined( _WIN32 ) InterlockedExchange( &value_, n ); #else -# if defined( __GNUC__ ) +# if defined( __APPLE__ ) + OSMemoryBarrier(); +# elif defined( __GNUC__ ) _GLIBCXX_WRITE_MEM_BARRIER; -# elif defined( __APPLE__ ) - OSMemoryBarrier(); # elif defined( __NetBSD__ ) || defined( __SOLARIS__ ) membar_producer(); # elif defined( __INTEL_COMPILER ) @@ -210,10 +206,10 @@ } value_type add( value_type n ) { -#if defined( __GNUC__ ) +#if defined( __APPLE__ ) + return OSAtomicAdd32( n, &value_ ); +#elif defined( __GNUC__ ) return GNU_EXCHANGE_AND_ADD( &value_, n ) + n; -#elif defined( __APPLE__ ) - return OSAtomicAdd32( n, &value_ ); #elif defined( __FreeBSD__ ) return atomic_fetchadd_int( &value_, n ) + n; #elif defined( __NetBSD__ ) @@ -226,10 +222,10 @@ } value_type pre_dec() { -#if defined( __GNUC__ ) +#if defined( __APPLE__ ) + return OSAtomicDecrement32( &value_ ); +#elif defined( __GNUC__ ) return GNU_EXCHANGE_AND_ADD( &value_, -1 ) - 1; -#elif defined( __APPLE__ ) - return OSAtomicDecrement32( &value_ ); #elif defined( __FreeBSD__ ) return atomic_fetchadd_int( &value_, -1 ) - 1; #elif defined( __NetBSD__ ) @@ -242,10 +238,10 @@ } value_type pre_inc() { -#if defined( __GNUC__ ) +#if defined( __APPLE__ ) + return OSAtomicIncrement32( &value_ ); +#elif defined( __GNUC__ ) return GNU_EXCHANGE_AND_ADD( &value_, 1 ) + 1; -#elif defined( __APPLE__ ) - return OSAtomicIncrement32( &value_ ); #elif defined( __FreeBSD__ ) return atomic_fetchadd_int( &value_, 1 ) + 1; #elif defined( __NetBSD__ ) @@ -258,10 +254,10 @@ } value_type post_dec() { -#if defined( __GNUC__ ) +#if defined( __APPLE__ ) + return OSAtomicDecrement32( &value_ ) + 1; +#elif defined( __GNUC__ ) return GNU_EXCHANGE_AND_ADD( &value_, -1 ); -#elif defined( __APPLE__ ) - return OSAtomicDecrement32( &value_ ) + 1; #elif defined( __FreeBSD__ ) return atomic_fetchadd_int( &value_, -1 ); #elif defined( __NetBSD__ ) @@ -274,10 +270,10 @@ } value_type post_inc() { -#if defined( __GNUC__ ) +#if defined( __APPLE__ ) + return OSAtomicIncrement32( &value_ ) - 1; +#elif defined( __GNUC__ ) return GNU_EXCHANGE_AND_ADD( &value_, 1 ); -#elif defined( __APPLE__ ) - return OSAtomicIncrement32( &value_ ) - 1; #elif defined( __FreeBSD__ ) return atomic_fetchadd_int( &value_, 1 ); #elif defined( __NetBSD__ )
-- Mailing list: https://launchpad.net/~zorba-coders Post to : zorba-coders@lists.launchpad.net Unsubscribe : https://launchpad.net/~zorba-coders More help : https://help.launchpad.net/ListHelp