50 lines
1.7 KiB
Diff
50 lines
1.7 KiB
Diff
https://github.com/protocolbuffers/protobuf/issues/5219
|
|
https://github.com/protocolbuffers/protobuf/pull/5227
|
|
https://github.com/protocolbuffers/protobuf/commit/56b40a8f055cfd05633054aed5d3466a6e058b72
|
|
|
|
--- /configure.ac
|
|
+++ /configure.ac
|
|
@@ -165,6 +165,22 @@
|
|
])
|
|
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 <atomic>
|
|
+ #include <cstdint>
|
|
+ std::atomic<std::int64_t> 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"], [
|
|
--- /src/Makefile.am
|
|
+++ /src/Makefile.am
|
|
@@ -163,7 +163,7 @@
|
|
|
|
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 @@
|
|
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
|