summaryrefslogtreecommitdiffstats
path: root/package/protobuf/Config.in
diff options
context:
space:
mode:
Diffstat (limited to 'package/protobuf/Config.in')
-rw-r--r--package/protobuf/Config.in21
1 files changed, 20 insertions, 1 deletions
diff --git a/package/protobuf/Config.in b/package/protobuf/Config.in
index 3d4320bfca..3215a075f1 100644
--- a/package/protobuf/Config.in
+++ b/package/protobuf/Config.in
@@ -1,5 +1,22 @@
# See src/google/protobuf/stubs/platform_macros.h for supported archs.
-# PowerPC doesn't actually work.
+#
+# On PowerPC, the __atomic_*() built-ins for 1-byte, 2-byte and 4-byte
+# types are available built-in. However, the __atomic_*() built-ins for
+# 8-byte types is implemented via libatomic, so only available since gcc
+# 4.8.
+#
+# In Buildroot, to simplify things, we've decided to simply require gcc
+# 4.8 as soon as the architectures has at least one __atomic_*() built-in
+# variant that requires libatomic.
+#
+# Since protobuf most likely only uses the 1, 2 and 4-byte variants, it
+# *could* technically build with gcc 4.7. This is probably not a big deal,
+# and we can live with requiring gcc 4.8 on PowerPC to build protobuf.
+#
+# The SPARC64 build fails due to a missing definition of Atomic64. This
+# has been fixed on the master branch but the build still breaks due to
+# undefined references to internal NoBarrier_Atomic*() functions.
+#
# host-protobuf only builds on certain architectures
config BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
bool
@@ -7,6 +24,8 @@ config BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
default y if BR2_i386
default y if BR2_mipsel
default y if BR2_x86_64
+ default y if BR2_TOOLCHAIN_HAS_ATOMIC
+ depends on !BR2_sparc64 # missing definition of Atomic64
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
config BR2_PACKAGE_PROTOBUF
OpenPOWER on IntegriCloud