package/leveldb: link with libatomic when needed
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Tue, 29 Oct 2019 16:25:27 +0000 (17:25 +0100)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tue, 29 Oct 2019 21:23:46 +0000 (22:23 +0100)
On some architectures, atomic operations are provided by the libatomic
library from gcc. Linking with libatomic is therefore necessary,
otherwise the build fails with:

/home/buildroot/autobuild/instance-2/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/7.4.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: libleveldb.so.1.22.0: undefined reference to `__atomic_fetch_sub_4'

This is often for example the case on sparcv8 32 bit.

Fixes:
 - http://autobuild.buildroot.net/results/257a820bb87a874ce0e2152d2752845be972fabe

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
package/leveldb/leveldb.mk

index 8aabc7e7a7956ab283cb63fff4758aded183e719..5baf56c7184d025395d1231dbcc442ff51c23761 100644 (file)
@@ -11,4 +11,8 @@ LEVELDB_LICENSE_FILES = LICENSE
 LEVELDB_INSTALL_STAGING = YES
 LEVELDB_DEPENDENCIES = snappy
 
+ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
+LEVELDB_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic
+endif
+
 $(eval $(cmake-package))