From: Daniel Golle Date: Thu, 21 Feb 2019 17:41:52 +0000 (+0100) Subject: util: build with external libatomic X-Git-Tag: v0.11.0~62 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ad2d3029a06795dd72b32e5613e58dd1d3e0404f;p=oweals%2Fgnunet.git util: build with external libatomic Recent versions of gcc on some architectures (MIPS, PPC, ...) moved atomic functions into a separate library. As we are using atomic load/store in util/time.c we may need to link libgnunetutil against libatomic for __atomic_load_8 and __atomic_store_8 to be defined. Fixes build problem on MIPS: ld: ./.libs/libgnunetutil.so: undefined reference to `__atomic_store_8' ld: ./.libs/libgnunetutil.so: undefined reference to `__atomic_load_8' collect2: error: ld returned 1 exit status Signed-off-by: Daniel Golle --- diff --git a/configure.ac b/configure.ac index 87a60cb04..745300939 100644 --- a/configure.ac +++ b/configure.ac @@ -282,6 +282,7 @@ have_addrinfo_a=0 AC_CHECK_LIB(anl, getaddrinfo_a, [have_addrinfo_a=1 AC_DEFINE(HAVE_GETADDRINFO_A,1,[getaddrinfo_a supported])]) AM_CONDITIONAL(HAVE_GETADDRINFO_A, [test "$have_addrinfo_a" = 1]) + # tests only run on Windows if test "x$build_target" = "xmingw" then @@ -676,6 +677,8 @@ else AC_DEFINE([HAVE_LIBCURL],[1],[Have CURL]) fi +AC_SEARCH_LIBS(__atomic_load_8, atomic, [have_libatomic=1 AC_DEFINE(HAVE_LIBATOMIC,1,[external libatomic])]) +AM_CONDITIONAL(HAVE_LIBATOMIC, [test "$have_libatomic" = 1]) # restore LIBS & CPPFLAGS LIBS=$SAVE_LIBS diff --git a/src/util/Makefile.am b/src/util/Makefile.am index 0ba06f4bb..5fa6e907e 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -123,6 +123,12 @@ libgnunetutil_la_SOURCES = \ speedup.c speedup.h \ proc_compat.c +if HAVE_LIBATOMIC + LIBATOMIC= -latomic +else + LIBATOMIC= +endif + if HAVE_LIBIDN LIBIDN= -lidn else @@ -137,6 +143,7 @@ endif libgnunetutil_la_LIBADD = \ $(GCLIBADD) $(WINLIB) \ + $(LIBATOMIC) \ $(LIBGCRYPT_LIBS) \ $(LTLIBICONV) \ $(LTLIBINTL) \