commit:     34f2b3a8006ca31bcc03364066ec7dcd68d2950e
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
AuthorDate: Wed Feb 21 17:57:00 2018 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Feb 21 20:32:17 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=34f2b3a8

dev-libs/protobuf: Fix building on IA64.

Closes: https://bugs.gentoo.org/648248

 .../files/protobuf-3.5.0-atomic_operations.patch    | 21 +++++++++++++++++++++
 dev-libs/protobuf/protobuf-3.5.1.1.ebuild           |  7 ++++++-
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/dev-libs/protobuf/files/protobuf-3.5.0-atomic_operations.patch 
b/dev-libs/protobuf/files/protobuf-3.5.0-atomic_operations.patch
new file mode 100644
index 00000000000..7a88e837950
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-3.5.0-atomic_operations.patch
@@ -0,0 +1,21 @@
+https://github.com/google/protobuf/issues/3937
+https://github.com/google/protobuf/pull/3955
+https://github.com/google/protobuf/commit/642e1ac635f2563b4a14c255374f02645ae85dac
+
+--- /src/google/protobuf/stubs/atomicops_internals_generic_gcc.h
++++ /src/google/protobuf/stubs/atomicops_internals_generic_gcc.h
+@@ -146,6 +146,14 @@
+   return __atomic_load_n(ptr, __ATOMIC_RELAXED);
+ }
+ 
++inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
++                                       Atomic64 old_value,
++                                       Atomic64 new_value) {
++  __atomic_compare_exchange_n(ptr, &old_value, new_value, false,
++                              __ATOMIC_RELEASE, __ATOMIC_ACQUIRE);
++  return old_value;
++}
++
+ #endif // defined(__LP64__)
+ 
+ }  // namespace internal

diff --git a/dev-libs/protobuf/protobuf-3.5.1.1.ebuild 
b/dev-libs/protobuf/protobuf-3.5.1.1.ebuild
index 4f44ebc4d8c..97cbe92c922 100644
--- a/dev-libs/protobuf/protobuf-3.5.1.1.ebuild
+++ b/dev-libs/protobuf/protobuf-3.5.1.1.ebuild
@@ -23,16 +23,21 @@ PATCHES=(
        "${FILESDIR}/${PN}-3.4.0-disable_no-warning-test.patch"
        "${FILESDIR}/${PN}-3.4.0-system_libraries.patch"
        "${FILESDIR}/${PN}-3.4.0-protoc_input_output_files.patch"
+       "${FILESDIR}/${PN}-3.5.0-atomic_operations.patch"
 )
 
 DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
 
 src_prepare() {
-       append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
        default
        eautoreconf
 }
 
+src_configure() {
+       append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
+       multilib-minimal_src_configure
+}
+
 multilib_src_configure() {
        local myeconfargs=(
                $(use_enable static-libs static)

Reply via email to