summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/protobuf')
-rw-r--r--dev-libs/protobuf/files/protobuf-3.6.1-libatomic_linking.patch49
-rw-r--r--dev-libs/protobuf/protobuf-3.6.1.ebuild1
2 files changed, 50 insertions, 0 deletions
diff --git a/dev-libs/protobuf/files/protobuf-3.6.1-libatomic_linking.patch b/dev-libs/protobuf/files/protobuf-3.6.1-libatomic_linking.patch
new file mode 100644
index 000000000000..2b357b213170
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-3.6.1-libatomic_linking.patch
@@ -0,0 +1,49 @@
+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
diff --git a/dev-libs/protobuf/protobuf-3.6.1.ebuild b/dev-libs/protobuf/protobuf-3.6.1.ebuild
index 3b3bdeaf3517..065eed562728 100644
--- a/dev-libs/protobuf/protobuf-3.6.1.ebuild
+++ b/dev-libs/protobuf/protobuf-3.6.1.ebuild
@@ -23,6 +23,7 @@ PATCHES=(
"${FILESDIR}/${PN}-3.6.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.6.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.6.0-protoc_input_output_files.patch"
+ "${FILESDIR}/${PN}-3.6.1-libatomic_linking.patch"
)
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)