From: Ben Wolsieffer Date: Thu, 4 Oct 2018 20:25:10 -0400 Subject: [PATCH] Link to libatomic when necessary (eg. on armv6l) --- configure.ac | 16 ++++++++++++++++ src/Makefile.am | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 7d6682764950..56bbef6009af 100644 --- a/configure.ac +++ b/configure.ac @@ -165,6 +165,22 @@ AS_IF([test "$with_zlib" != no], [ ]) AM_CONDITIONAL([HAVE_ZLIB], [test $HAVE_ZLIB = 1]) +dnl On some platforms, std::atomic needs a helper library +AC_MSG_CHECKING(whether -latomic is needed) +AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #include + #include + std::atomic v; + int main() { + return v; + } +]])], STD_ATOMIC_NEED_LIBATOMIC=no, STD_ATOMIC_NEED_LIBATOMIC=yes) +AC_MSG_RESULT($STD_ATOMIC_NEED_LIBATOMIC) +if test "x$STD_ATOMIC_NEED_LIBATOMIC" = xyes; then + LIBATOMIC_LIBS="-latomic" +fi +AC_SUBST([LIBATOMIC_LIBS]) + AS_IF([test "$with_protoc" != "no"], [ PROTOC=$with_protoc AS_IF([test "$with_protoc" = "yes"], [ diff --git a/src/Makefile.am b/src/Makefile.am index 4bb77452f203..0a59b3147be8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -163,7 +163,7 @@ nobase_include_HEADERS = \ lib_LTLIBRARIES = libprotobuf-lite.la libprotobuf.la libprotoc.la -libprotobuf_lite_la_LIBADD = $(PTHREAD_LIBS) +libprotobuf_lite_la_LIBADD = $(PTHREAD_LIBS) $(LIBATOMIC_LIBS) libprotobuf_lite_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined if HAVE_LD_VERSION_SCRIPT libprotobuf_lite_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotobuf-lite.map @@ -209,7 +209,7 @@ libprotobuf_lite_la_SOURCES = \ google/protobuf/io/zero_copy_stream.cc \ google/protobuf/io/zero_copy_stream_impl_lite.cc -libprotobuf_la_LIBADD = $(PTHREAD_LIBS) +libprotobuf_la_LIBADD = $(PTHREAD_LIBS) $(LIBATOMIC_LIBS) libprotobuf_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined if HAVE_LD_VERSION_SCRIPT libprotobuf_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotobuf.map