diff --git a/configure.ac b/configure.ac index 8e1c308ce1e..18a77f5977f 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 bfa0d3ad1b8..24c63669fd9 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -166,7 +166,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 @@ -212,7 +212,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 diff --git a/tests.sh b/tests.sh index fc7c95c4d65..df41bc5a618 100755 --- a/tests.sh +++ b/tests.sh @@ -16,8 +16,8 @@ internal_build_cpp() { git submodule update --init --recursive ./autogen.sh - ./configure CXXFLAGS="-fPIC" # -fPIC is needed for python cpp test. - # See python/setup.py for more details + ./configure CXXFLAGS="-fPIC -std=c++11" # -fPIC is needed for python cpp test. + # See python/setup.py for more details make -j4 }