dev-libs/protobuf: Fix building on ARMv6.
authorArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Fri, 19 Oct 2018 15:37:26 +0000 (17:37 +0200)
committerMike Gilbert <floppym@gentoo.org>
Fri, 19 Oct 2018 17:39:18 +0000 (13:39 -0400)
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
dev-libs/protobuf/files/protobuf-3.6.1-libatomic_linking.patch [new file with mode: 0644]
dev-libs/protobuf/protobuf-3.6.1.ebuild

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 (file)
index 0000000..2b357b2
--- /dev/null
@@ -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
index 3b3bdeaf35170498c3c350106dd1102602e4eb20..065eed5627288eb30b42e8139e649bed2daea91e 100644 (file)
@@ -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)