8d3e126e83
Eventhough it should be theoretically possible to build protobuf in static-only, configure.ac includes an m4 macro, ACX_PTHREAD defined in m4/acx_pthread.m4, which forcibly checks for threads *with* shared libs, and is completely broken for static-only (as it forces -shared whatever the user selection), ending up with these configure results: checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... no checking whether pthreads work with -Kthread... no checking whether pthreads work with -kthread... no checking for the pthreads library -llthread... no checking whether pthreads work with -pthread... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... no checking whether to check for GCC pthread/shared inconsistencies... yes checking whether -pthread is sufficient with -shared... no checking whether -lpthread fixes that... no checking whether -lc_r fixes that... no configure: WARNING: Impossible to determine how to use pthreads with shared libraries checking whether what we have so far is sufficient with -nostdlib... no checking whether -lpthread saves the day... no configure: WARNING: Impossible to determine how to use pthreads with shared libraries and -nostdlib Fixing this macro is far from trivial; protobuf in a static-only scenario is probably not too common. So, just disable protobuf for static-only builds. Fixes: http://autobuild.buildroot.org/results/3ef/3efb86c7e8ec2db5d953d634470cafae79bd34cf/ http://autobuild.buildroot.org/results/96a/96ae1108fc3193df2a93a779057130b774379655/ http://autobuild.buildroot.org/results/00c/00c29795980319d38823eec1301e9ebd860ebd2a/ ... Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Nimai Mahajan <nimaim@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
22 lines
888 B
Plaintext
22 lines
888 B
Plaintext
config BR2_PACKAGE_PROTOBUF
|
|
bool "protobuf"
|
|
depends on BR2_INSTALL_LIBSTDCPP
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS
|
|
# See src/google/protobuf/stubs/platform_macros.h for supported archs.
|
|
# PowerPC doesn't actually work.
|
|
depends on BR2_arm || BR2_i386 || BR2_mipsel || BR2_x86_64
|
|
# host-protobuf only builds on certain architectures
|
|
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
|
depends on !BR2_STATIC_LIBS
|
|
help
|
|
Protocol buffers are Google's language-neutral, platform-neutral,
|
|
extensible mechanism for serializing structured data.
|
|
|
|
https://developers.google.com/protocol-buffers
|
|
|
|
comment "protobuf needs a toolchain w/ C++, threads, dynamic library"
|
|
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
|
|
|| BR2_STATIC_LIBS
|
|
depends on BR2_arm || BR2_i386 || BR2_mipsel || BR2_x86_64
|
|
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|