1# See src/google/protobuf/stubs/platform_macros.h for supported archs. 2# 3# On PowerPC, the __atomic_*() built-ins for 1-byte, 2-byte and 4-byte 4# types are available built-in. However, the __atomic_*() built-ins for 5# 8-byte types is implemented via libatomic, so only available since gcc 6# 4.8. 7# 8# In Buildroot, to simplify things, we've decided to simply require gcc 9# 4.8 as soon as the architectures has at least one __atomic_*() built-in 10# variant that requires libatomic. 11# 12# Since protobuf most likely only uses the 1, 2 and 4-byte variants, it 13# *could* technically build with gcc 4.7. This is probably not a big deal, 14# and we can live with requiring gcc 4.8 on PowerPC to build protobuf. 15# 16# host-protobuf only builds on certain architectures 17config BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS 18 bool 19 default y if BR2_arm 20 default y if BR2_i386 21 default y if BR2_mipsel 22 default y if BR2_x86_64 23 default y if BR2_sparc64 24 default y if BR2_TOOLCHAIN_HAS_ATOMIC 25 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" 26 depends on BR2_USE_MMU # fork() 27 depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 28 29config BR2_PACKAGE_PROTOBUF 30 bool "protobuf" 31 depends on BR2_INSTALL_LIBSTDCPP 32 depends on BR2_TOOLCHAIN_HAS_THREADS 33 depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS 34 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 35 depends on !BR2_STATIC_LIBS 36 help 37 Protocol buffers are Google's language-neutral, 38 platform-neutral, extensible mechanism for serializing 39 structured data. 40 41 https://developers.google.com/protocol-buffers 42 43comment "protobuf needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8" 44 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ 45 || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 46 depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS 47