mirror of
https://git.freebsd.org/ports.git
synced 2025-06-10 07:10:32 -04:00
Changelog since 1.4.0 version 2.0.2 * Fixed bug #3401971 (node-by-reference on dynamic collections) * documentation improvements * installer improvements * Fixed bug #3403291 (build for Fedora 15) * Don't install the .so for test modules * Fix for running ctest on Windows version 2.0.1 * Custom Full-text stemming. * Custom Full-text tokenization. * Fixed scripting bug where apply statement was considered a * sequential expr even if the source expr was non-updating and * non-sequential. * Fixed bug #3394400 (Element replacement, really unexpected result) * Fixed bug #3394588 (Unexpected error during pul undo) * Fixed bugs #3398511 and #3398552 with "make install" * Fixed bug #3398521 for compiling with ZORBA_NO_XMLSCHEMA version 2.0 * Zorba 2.0 is a major rewrite of previous versions. It doesn't claim to preserve backwards compatibility with any 1.X version. Host language API changes have been made to the following components: - External functions API - XmlDataManager - Error reporting - Debugger API XQuery language and API changes have been made to the following components: - XQuery Scripting Extension - Function APIs - XQuery Data Definition Facility - XQuery modules and module versioning - Changes to conform with the latest XQuery 3.0 - Namespaces of annotations, errors, collations. * In addition to host language API and XQuery language improvements, plenty of bug fixes and optimizations have been made. Feature safe: yes
138 lines
4.3 KiB
C++
138 lines
4.3 KiB
C++
--- src/util/atomic_int.h.orig 2011-09-15 10:09:31.000000000 +0200
|
|
+++ src/util/atomic_int.h 2011-09-15 11:15:19.000000000 +0200
|
|
@@ -27,7 +27,10 @@
|
|
// 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( __FreeBSD__ )
|
|
+# include <sys/types.h>
|
|
+# include <machine/atomic.h>
|
|
+#elif defined( __GNUC__ )
|
|
# if __GNUC__ * 100 + __GNUC_MINOR__ >= 402
|
|
# include <ext/atomicity.h>
|
|
# else
|
|
@@ -40,9 +43,6 @@
|
|
# endif
|
|
#elif defined( __APPLE__ )
|
|
# include <libkern/OSAtomic.h>
|
|
-#elif defined( __FreeBSD__ )
|
|
-# include <sys/types.h>
|
|
-# include <machine/atomic.h>
|
|
#elif defined( __NetBSD__ )
|
|
# include <sys/atomic.h>
|
|
#elif defined( __SOLARIS__ )
|
|
@@ -66,12 +66,12 @@
|
|
*/
|
|
class atomic_int {
|
|
public:
|
|
-#if defined( __GNUC__ )
|
|
+#if defined( __FreeBSD__ )
|
|
+ typedef int 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 )
|
|
typedef LONG value_type;
|
|
#endif
|
|
@@ -172,7 +172,7 @@
|
|
|
|
value_type load_impl() const {
|
|
#if defined( __FreeBSD__ )
|
|
- return atomic_load_acq_int( &value_ );
|
|
+ return atomic_load_acq_int( (volatile u_int *)&value_ );
|
|
#else
|
|
value_type const temp = *(value_type volatile*)&value_;
|
|
# if defined( __GNUC__ )
|
|
@@ -192,7 +192,7 @@
|
|
|
|
void store_impl( value_type n ) {
|
|
#if defined( __FreeBSD__ )
|
|
- atomic_store_rel_int( &value_, n );
|
|
+ atomic_store_rel_int( (volatile u_int *)&value_, n );
|
|
#elif defined( _WIN32 )
|
|
InterlockedExchange( &value_, n );
|
|
#else
|
|
@@ -210,12 +210,12 @@
|
|
}
|
|
|
|
value_type add( value_type n ) {
|
|
-#if defined( __GNUC__ )
|
|
+#if defined( __FreeBSD__ )
|
|
+ return atomic_fetchadd_int( (volatile u_int*)&value_, n ) + n;
|
|
+#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__ )
|
|
return (value_type)atomic_add_32_nv( (uint32_t*)&value_, n );
|
|
#elif defined( __SOLARIS__ )
|
|
@@ -226,12 +226,12 @@
|
|
}
|
|
|
|
value_type pre_dec() {
|
|
-#if defined( __GNUC__ )
|
|
+#if defined( __FreeBSD__ )
|
|
+ return atomic_fetchadd_int( (volatile u_int *)&value_, -1 ) - 1;
|
|
+#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__ )
|
|
return (value_type)atomic_add_int_nv( (uint32_t*)&value_, -1 );
|
|
#elif defined( __SOLARIS__ )
|
|
@@ -242,12 +242,12 @@
|
|
}
|
|
|
|
value_type pre_inc() {
|
|
-#if defined( __GNUC__ )
|
|
+#if defined( __FreeBSD__ )
|
|
+ return atomic_fetchadd_int( (volatile u_int *)&value_, 1 ) + 1;
|
|
+#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__ )
|
|
return (value_type)atomic_add_int_nv( (uint32_t*)&value_, 1 );
|
|
#elif defined( __SOLARIS__ )
|
|
@@ -258,12 +258,12 @@
|
|
}
|
|
|
|
value_type post_dec() {
|
|
-#if defined( __GNUC__ )
|
|
+#if defined( __FreeBSD__ )
|
|
+ return atomic_fetchadd_int( (volatile u_int *)&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__ )
|
|
return (value_type)atomic_add_int_nv( (uint32_t*)&value_, -1 ) + 1;
|
|
#elif defined( __SOLARIS__ )
|
|
@@ -274,12 +274,12 @@
|
|
}
|
|
|
|
value_type post_inc() {
|
|
-#if defined( __GNUC__ )
|
|
+#if defined( __FreeBSD__ )
|
|
+ return atomic_fetchadd_int( (volatile u_int *)&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__ )
|
|
return (value_type)atomic_add_int_nv( (uint32_t*)&value_, 1 ) - 1;
|
|
#elif defined( __SOLARIS__ )
|