kumquat-buildroot/package/grpc/Config.in

28 lines
1.1 KiB
Plaintext
Raw Normal View History

config BR2_PACKAGE_GRPC
bool "grpc"
depends on BR2_INSTALL_LIBSTDCPP
package/re2: needs threads re2 unconditionally uses -pthread and add it to re2.pc Moreover, it fails to buid without threads on: In file included from /home/peko/autobuild/instance-0/output-1/per-package/re2/host/opt/ext-toolchain/arm-buildroot-linux-uclibcgnueabihf/include/c++/8.3.0/arm-buildroot-linux-uclibcgnueabihf/bits/os_defines.h:39, from /home/peko/autobuild/instance-0/output-1/per-package/re2/host/opt/ext-toolchain/arm-buildroot-linux-uclibcgnueabihf/include/c++/8.3.0/arm-buildroot-linux-uclibcgnueabihf/bits/c++config.h:508, from /home/peko/autobuild/instance-0/output-1/per-package/re2/host/opt/ext-toolchain/arm-buildroot-linux-uclibcgnueabihf/include/c++/8.3.0/bits/stl_algobase.h:59, from /home/peko/autobuild/instance-0/output-1/per-package/re2/host/opt/ext-toolchain/arm-buildroot-linux-uclibcgnueabihf/include/c++/8.3.0/memory:62, from /home/peko/autobuild/instance-0/output-1/build/re2-2020-08-01/re2/filtered_re2.h:24, from /home/peko/autobuild/instance-0/output-1/build/re2-2020-08-01/re2/filtered_re2.cc:5: /home/peko/autobuild/instance-0/output-1/per-package/re2/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/features.h:218:5: warning: #warning requested reentrant code, but thread support was disabled [-Wcpp] # warning requested reentrant code, but thread support was disabled ^~~~~~~ In file included from /home/peko/autobuild/instance-0/output-1/build/re2-2020-08-01/re2/prog.h:22, from /home/peko/autobuild/instance-0/output-1/build/re2-2020-08-01/re2/bitstate.cc:28: /home/peko/autobuild/instance-0/output-1/build/re2-2020-08-01/re2/re2.h:768:16: error: 'once_flag' in namespace 'std' does not name a type mutable std::once_flag rprog_once_; ^~~~~~~~~ /home/peko/autobuild/instance-0/output-1/build/re2-2020-08-01/re2/re2.h:768:11: note: 'std::once_flag' is defined in header '<mutex>'; did you forget to '#include <mutex>'? /home/peko/autobuild/instance-0/output-1/build/re2-2020-08-01/re2/re2.h:218:1: +#include <mutex> Fixes: - http://autobuild.buildroot.org/results/7d7c6dcac3cb8ea6deb753178e85eb1c5c74c8e3 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Reviewed-by: Michael Nosthoff <buildroot@heine.tech> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2020-09-12 19:04:20 +02:00
depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf, re2
depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # protobuf
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # protobuf, re2
depends on !BR2_STATIC_LIBS # protobuf, libabseil-cpp
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC
package/libabseil-cpp: add BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS The libabseil-cpp package fails to build on a number of CPU architectures in our autobuilders. On most CPU architectures, the first issue looked like this: libabseil-cpp-20200225/absl/base/internal/direct_mmap.h: In function 'void* absl::lts_2020_02_25::base_internal::DirectMmap(void*, size_t, int, int, int, off64_t)': libabseil-cpp-20200225/absl/base/internal/direct_mmap.h:121:39: error: static assertion failed: Platform is not 64-bit 121 | static_assert(sizeof(unsigned long) == 8, "Platform is not 64-bit"); | ~~~~~~~~~~~~~~~~~~~~~~^~~~ libabseil-cpp-20200225/absl/base/internal/direct_mmap.h:123:15: error: 'SYS_mmap' was not declared in this scope; did you mean 'SYS_mmap2'? 123 | syscall(SYS_mmap, start, length, prot, flags, fd, offset)); | ^~~~~~~~ | SYS_mmap2 Indeed, on 32-bit architectures, libabseil-cpp has some special code to use the mmap2() system call, and it white-lists the supported architectures. It is therefore trivial to add support for more architectures. However, once this is fixed, another issue arises: absl/debugging/internal/examine_stack.cc uses the ucontext data structures, which are not provided by uClibc-ng on all CPU architectures, and even the code of libabseil-cpp does not exist for all CPU architectures. So, this commit solves that by simply making libabseil-cpp available on architectures/C libraries where it is supported: it needs ucontext support in the toolchain + a CPU architecture where absl/debugging/internal/examine_stack.cc has the appropriate logic. This new dependency is propagated to the reverse dependencies of libabseil-cpp. With this commit, libabseil-cpp passes a test-pkg -a test (so all external toolchains used by the autobuilders): andes-nds32 [ 1/45]: SKIPPED arm-aarch64 [ 2/45]: OK br-aarch64-glibc [ 3/45]: OK br-arcle-hs38 [ 4/45]: SKIPPED br-arm-basic [ 5/45]: SKIPPED br-arm-cortex-a9-glibc [ 6/45]: OK br-arm-cortex-a9-musl [ 7/45]: OK br-arm-cortex-m4-full [ 8/45]: SKIPPED br-arm-full [ 9/45]: OK br-arm-full-nothread [10/45]: SKIPPED br-arm-full-static [11/45]: SKIPPED br-i386-pentium4-full [12/45]: OK br-i386-pentium-mmx-musl [13/45]: OK br-m68k-5208-full [14/45]: SKIPPED br-m68k-68040-full [15/45]: SKIPPED br-microblazeel-full [16/45]: SKIPPED br-mips32r6-el-hf-glibc [17/45]: OK br-mips64-n64-full [18/45]: OK br-mips64r6-el-hf-glibc [19/45]: OK br-mipsel-o32-full [20/45]: OK br-nios2-glibc [21/45]: SKIPPED br-openrisc-uclibc [22/45]: SKIPPED br-powerpc-603e-basic-cpp [23/45]: SKIPPED br-powerpc64le-power8-glibc [24/45]: OK br-powerpc64-power7-glibc [25/45]: OK br-powerpc-e500mc-full [26/45]: SKIPPED br-riscv32 [27/45]: OK br-riscv64 [28/45]: OK br-riscv64-musl [29/45]: OK br-sh4-full [30/45]: SKIPPED br-sparc64-glibc [31/45]: SKIPPED br-sparc-uclibc [32/45]: SKIPPED br-x86-64-core2-full [33/45]: OK br-x86-64-musl [34/45]: OK br-xtensa-full [35/45]: SKIPPED linaro-aarch64-be [36/45]: OK linaro-aarch64 [37/45]: OK linaro-arm [38/45]: OK sourcery-arm-armv4t [39/45]: OK sourcery-arm [40/45]: OK sourcery-arm-thumb2 [41/45]: OK sourcery-mips64 [42/45]: OK sourcery-mips [43/45]: OK sourcery-nios2 [44/45]: SKIPPED sourcery-x86-64 [45/45]: OK 45 builds, 18 skipped, 0 build failed, 0 legal-info failed Fixes: http://autobuild.buildroot.net/results/ead663b4b67b0b57ed003a46db3182d95cc01bc0/ (and many similar build failures) Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2020-08-08 17:39:44 +02:00
depends on BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS
select BR2_PACKAGE_C_ARES
select BR2_PACKAGE_LIBABSEIL_CPP
select BR2_PACKAGE_OPENSSL
select BR2_PACKAGE_PROTOBUF
select BR2_PACKAGE_RE2
select BR2_PACKAGE_ZLIB
help
A language-neutral, platform-neutral, open source, remote
procedure call (RPC) system initially developed at Google.
http://github.com/grpc/grpc
comment "grpc needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8"
package/libabseil-cpp: add BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS The libabseil-cpp package fails to build on a number of CPU architectures in our autobuilders. On most CPU architectures, the first issue looked like this: libabseil-cpp-20200225/absl/base/internal/direct_mmap.h: In function 'void* absl::lts_2020_02_25::base_internal::DirectMmap(void*, size_t, int, int, int, off64_t)': libabseil-cpp-20200225/absl/base/internal/direct_mmap.h:121:39: error: static assertion failed: Platform is not 64-bit 121 | static_assert(sizeof(unsigned long) == 8, "Platform is not 64-bit"); | ~~~~~~~~~~~~~~~~~~~~~~^~~~ libabseil-cpp-20200225/absl/base/internal/direct_mmap.h:123:15: error: 'SYS_mmap' was not declared in this scope; did you mean 'SYS_mmap2'? 123 | syscall(SYS_mmap, start, length, prot, flags, fd, offset)); | ^~~~~~~~ | SYS_mmap2 Indeed, on 32-bit architectures, libabseil-cpp has some special code to use the mmap2() system call, and it white-lists the supported architectures. It is therefore trivial to add support for more architectures. However, once this is fixed, another issue arises: absl/debugging/internal/examine_stack.cc uses the ucontext data structures, which are not provided by uClibc-ng on all CPU architectures, and even the code of libabseil-cpp does not exist for all CPU architectures. So, this commit solves that by simply making libabseil-cpp available on architectures/C libraries where it is supported: it needs ucontext support in the toolchain + a CPU architecture where absl/debugging/internal/examine_stack.cc has the appropriate logic. This new dependency is propagated to the reverse dependencies of libabseil-cpp. With this commit, libabseil-cpp passes a test-pkg -a test (so all external toolchains used by the autobuilders): andes-nds32 [ 1/45]: SKIPPED arm-aarch64 [ 2/45]: OK br-aarch64-glibc [ 3/45]: OK br-arcle-hs38 [ 4/45]: SKIPPED br-arm-basic [ 5/45]: SKIPPED br-arm-cortex-a9-glibc [ 6/45]: OK br-arm-cortex-a9-musl [ 7/45]: OK br-arm-cortex-m4-full [ 8/45]: SKIPPED br-arm-full [ 9/45]: OK br-arm-full-nothread [10/45]: SKIPPED br-arm-full-static [11/45]: SKIPPED br-i386-pentium4-full [12/45]: OK br-i386-pentium-mmx-musl [13/45]: OK br-m68k-5208-full [14/45]: SKIPPED br-m68k-68040-full [15/45]: SKIPPED br-microblazeel-full [16/45]: SKIPPED br-mips32r6-el-hf-glibc [17/45]: OK br-mips64-n64-full [18/45]: OK br-mips64r6-el-hf-glibc [19/45]: OK br-mipsel-o32-full [20/45]: OK br-nios2-glibc [21/45]: SKIPPED br-openrisc-uclibc [22/45]: SKIPPED br-powerpc-603e-basic-cpp [23/45]: SKIPPED br-powerpc64le-power8-glibc [24/45]: OK br-powerpc64-power7-glibc [25/45]: OK br-powerpc-e500mc-full [26/45]: SKIPPED br-riscv32 [27/45]: OK br-riscv64 [28/45]: OK br-riscv64-musl [29/45]: OK br-sh4-full [30/45]: SKIPPED br-sparc64-glibc [31/45]: SKIPPED br-sparc-uclibc [32/45]: SKIPPED br-x86-64-core2-full [33/45]: OK br-x86-64-musl [34/45]: OK br-xtensa-full [35/45]: SKIPPED linaro-aarch64-be [36/45]: OK linaro-aarch64 [37/45]: OK linaro-arm [38/45]: OK sourcery-arm-armv4t [39/45]: OK sourcery-arm [40/45]: OK sourcery-arm-thumb2 [41/45]: OK sourcery-mips64 [42/45]: OK sourcery-mips [43/45]: OK sourcery-nios2 [44/45]: SKIPPED sourcery-x86-64 [45/45]: OK 45 builds, 18 skipped, 0 build failed, 0 legal-info failed Fixes: http://autobuild.buildroot.net/results/ead663b4b67b0b57ed003a46db3182d95cc01bc0/ (and many similar build failures) Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2020-08-08 17:39:44 +02:00
depends on BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS