package/berkeleydb: fix build error with gcc8
PATCH 1/1 package/berkeleydb: fix build error with gcc8
Fixes
../src/dbinc/atomic.h:179:19: error: definition of 'int __atomic_compare_exchange(db_atomic_t*,
atomic_value_t, atomic_value_t)' ambiguates built-in declaration 'bool __atomic_compare_exchange(unsigned int, volatile void*, void*, void*, int, int)' static inline int __atomic_compare_exchange(
^~~~~~~~~~~~~~~~~~~~~~~~~
To reproduce the build error use this defconfig
BR2_GCC_VERSION_8_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PACKAGE_BERKELEYDB=y
BR2_PACKAGE_BERKELEYDB_COMPAT185=y
BR2_PACKAGE_BERKELEYDB_TOOLS=y
Please note that to trigger the error BR2_TOOLCHAIN_BUILDROOT_CXX=y is needed although berkeleydb does not depend on c++.
--- .../0002-atomic_compare_exchange.patch | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 package/berkeleydb/0002-atomic_compare_exchange.patch
package/berkeleydb/0002-atomic_compare_exchange.patch new file +27 -0
@@ -0,0 +1,27 @@ +Rename __atomic_compare_exchange to not clash with gcc built-in + +Downloaded from +https://src.fedoraproject.org/cgit/rpms/libdb.git/commit/?id=d6841b3b46a51db98c162347211a5a64d154ea37 + +Signed-off-by: Bernd Kuhls <[email protected]> + +--- db-5.3.28/src/dbinc/atomic.h.old 2018-05-23 09:20:04.216914922 +0200 ++++ db-5.3.28/src/dbinc/atomic.h 2018-05-23 09:20:49.510057897 +0200 +@@ -144,7 +144,7 @@ + #define atomic_inc(env, p) __atomic_inc(p) + #define atomic_dec(env, p) __atomic_dec(p) + #define atomic_compare_exchange(env, p, o, n) \ +- __atomic_compare_exchange((p), (o), (n)) ++ __db_atomic_compare_exchange((p), (o), (n)) + static inline int __atomic_inc(db_atomic_t *p) + { + int temp; +@@ -176,7 +176,7 @@ + * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html + * which configure could be changed to use. + */ +-static inline int __atomic_compare_exchange( ++static inline int __db_atomic_compare_exchange( + db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval) + { + atomic_value_t was;
Signature · 1 line
2.17.1
PATCH 1/1 package/berkeleydb: fix build error with gcc8
Quoted 17 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Bernd" == Bernd Kuhls <[email protected]> writes:
Fixes
../src/dbinc/atomic.h:179:19: error: definition of 'int __atomic_compare_exchange(db_atomic_t*,
atomic_value_t,atomic_value_t)' ambiguates built-in declaration 'bool__atomic_compare_exchange(unsigned int, volatile void*, void*, void*, int, int)' static inline int __atomic_compare_exchange(^~~~~~~~~~~~~~~~~~~~~~~~~To reproduce the build error use this defconfig
BR2_GCC_VERSION_8_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PACKAGE_BERKELEYDB=y
BR2_PACKAGE_BERKELEYDB_COMPAT185=y
BR2_PACKAGE_BERKELEYDB_TOOLS=y
Quoted 4 lines
Please note that to trigger the error BR2_TOOLCHAIN_BUILDROOT_CXX=y is needed although berkeleydb does not depend on c++.
Signed-off-by Bernd Kuhls <[email protected]>
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 package/berkeleydb: fix build error with gcc8
In reply to Bernd KuhlsHello,
Quoted 16 lines · Bernd Kuhls
Fixes
../src/dbinc/atomic.h:179:19: error: definition of 'int __atomic_compare_exchange(db_atomic_t*,
atomic_value_t,atomic_value_t)' ambiguates built-in declaration 'bool__atomic_compare_exchange(unsigned int, volatile void*, void*, void*, int, int)' static inline int __atomic_compare_exchange(^~~~~~~~~~~~~~~~~~~~~~~~~To reproduce the build error use this defconfig
BR2_GCC_VERSION_8_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PACKAGE_BERKELEYDB=y
BR2_PACKAGE_BERKELEYDB_COMPAT185=y
BR2_PACKAGE_BERKELEYDB_TOOLS=y
Quoted 4 lines
Please note that to trigger the error BR2_TOOLCHAIN_BUILDROOT_CXX=y is needed although berkeleydb does not depend on c++.
Signed-off-by Bernd Kuhls <[email protected]>
Isn't this one a duplicate of
https://patchwork.ozlabs.org/patch/909328/?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH 1/1 package/berkeleydb: fix build error with gcc8
Am Thu, 21 Jun 2018 14:16:30 +0200 schrieb Thomas Petazzoni:
Quoted 2 lines
Isn't this one a duplicate of
https://patchwork.ozlabs.org/patch/909328/?
Hi Thomas,
right, I forgot about that patch and closed it on patchworks a few seconds ago, thanks for the hint!
Regards, Bernd