Fix C++11 compatibility by renaming atomic_init().

Modified version of dim's patch, where most of the stuff
moves into a REINPLACE_CMD called from post-patch.

Submitted by:	dim
This commit is contained in:
Matthias Andree
2013-07-24 21:35:51 +00:00
parent e71757d25d
commit dbf33b220e
4 changed files with 40 additions and 0 deletions

View File

@@ -81,6 +81,7 @@ CONFIGURE_ARGS+= --enable-debug --enable-umrw
post-patch:
${REINPLACE_CMD} -e '/^DOCLIST/{s/csharp//;}' ${WRKSRC}/../dist/Makefile.in
${REINPLACE_CMD} -Ee 's/[[:<:]]atomic_init[[:>:]]/db_atomic_init/g' ${WRKSRC}/../src/mp/mp* ${WRKSRC}/../src/mutex/mut_*
post-install:
.for i in libdb libdb_cxx libdb_stl ${libdb_sql} ${libdb_java}

View File

@@ -1,5 +1,14 @@
--- ../src/dbinc/atomic.h.orig 2012-02-29 19:48:38.000000000 +0100
+++ ../src/dbinc/atomic.h 2012-05-04 22:39:32.000000000 +0200
@@ -70,7 +70,7 @@ typedef struct {
* These have no memory barriers; the caller must include them when necessary.
*/
#define atomic_read(p) ((p)->value)
-#define atomic_init(p, val) ((p)->value = (val))
+#define db_atomic_init(p, val) ((p)->value = (val))
#ifdef HAVE_ATOMIC_SUPPORT
@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val;
#define atomic_inc(env, p) __atomic_inc(p)
#define atomic_dec(env, p) __atomic_dec(p)
@@ -18,3 +27,12 @@
db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
{
atomic_value_t was;
@@ -206,7 +206,7 @@ static inline int __atomic_compare_excha
#define atomic_dec(env, p) (--(p)->value)
#define atomic_compare_exchange(env, p, oldval, newval) \
(DB_ASSERT(env, atomic_read(p) == (oldval)), \
- atomic_init(p, (newval)), 1)
+ db_atomic_init(p, (newval)), 1)
#else
#define atomic_inc(env, p) __atomic_inc(env, p)
#define atomic_dec(env, p) __atomic_dec(env, p)

View File

@@ -84,6 +84,7 @@ CONFIGURE_ARGS+= --enable-debug --enable-umrw
post-patch:
${REINPLACE_CMD} -e '/^DOCLIST/{s/csharp//;}' ${WRKSRC}/../dist/Makefile.in
${REINPLACE_CMD} -Ee 's/[[:<:]]atomic_init[[:>:]]/db_atomic_init/g' ${WRKSRC}/../src/mp/mp* ${WRKSRC}/../src/mutex/mut_*
post-install:
.for i in libdb libdb_cxx libdb_stl ${libdb_sql} ${libdb_java}

View File

@@ -0,0 +1,20 @@
--- ../src/dbinc/atomic.h.orig 2012-02-29 19:48:38.000000000 +0100
+++ ../src/dbinc/atomic.h 2012-05-04 22:39:32.000000000 +0200
@@ -70,7 +70,7 @@ typedef struct {
* These have no memory barriers; the caller must include them when necessary.
*/
#define atomic_read(p) ((p)->value)
-#define atomic_init(p, val) ((p)->value = (val))
+#define db_atomic_init(p, val) ((p)->value = (val))
#ifdef HAVE_ATOMIC_SUPPORT
@@ -206,7 +206,7 @@ static inline int __atomic_compare_excha
#define atomic_dec(env, p) (--(p)->value)
#define atomic_compare_exchange(env, p, oldval, newval) \
(DB_ASSERT(env, atomic_read(p) == (oldval)), \
- atomic_init(p, (newval)), 1)
+ db_atomic_init(p, (newval)), 1)
#else
#define atomic_inc(env, p) __atomic_inc(env, p)
#define atomic_dec(env, p) __atomic_dec(env, p)