Description
Probably related to #21755 and #22338.
What version of protobuf and what language are you using?
Version: 31.1
Language: C++
What operating system (Linux, Windows, ...) and version?
Artix Linux, aarch64
What runtime / compiler are you using (e.g., python version or gcc version)
gcc 15.1.1
What did you do?
Trying to build grpc 1.73.0 with protobuf 31.1. The following cmake flags were passed to grpc:
-Bbuild \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG -Wno-attributes -Wno-deprecated-declarations -Wno-return-type -Wno-non-virtual-dtor" \
-DgRPC_INSTALL=ON \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX=/usr \
-DgRPC_BUILD_TESTS=ON \
-DgRPC_BUILD_CODEGEN=ON \
-DgRPC_ZLIB_PROVIDER='package' \
-DgRPC_CARES_PROVIDER='package' \
-DgRPC_RE2_PROVIDER='package' \
-DgRPC_SSL_PROVIDER='package' \
-DgRPC_PROTOBUF_PROVIDER='package' \
-DgRPC_BENCHMARK_PROVIDER:STRING='package' \
-DgRPC_ABSL_PROVIDER:STRING='package' \
-DgRPC_USE_PROTO_LITE=OFF \
-DgRPC_USE_SYSTEMD=OFF \
-DgRPC_BUILD_GRPC_CPP_PLUGIN=ON \
-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=ON \
-DgRPC_BUILD_GRPC_NODE_PLUGIN=ON \
-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=ON \
-DgRPC_BUILD_GRPC_PHP_PLUGIN=ON \
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON \
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=ON \
-GNinja
Here, CXXFLAGS=-march=armv8-a -O2 -pipe -fstack-protector-strong -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS
What did you expect to see
Successful build
What did you see instead?
/usr/bin/c++ -march=armv8-a -O2 -pipe -fstack-protector-strong -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -DNDEBUG -Wno-attributes -Wno-deprecated-declarations -Wno-return-type -Wno-non-virtual-dtor -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--dependency-file=CMakeFiles/grpc_cli.dir/link.d CMakeFiles/grpc_cli.dir/gens/src/proto/grpc/reflection/v1alpha/reflection.pb.cc.o CMakeFiles/grpc_cli.dir/gens/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc.o CMakeFiles/grpc_cli.dir/test/cpp/util/cli_call.cc.o CMakeFiles/grpc_cli.dir/test/cpp/util/cli_credentials.cc.o CMakeFiles/grpc_cli.dir/test/cpp/util/grpc_cli.cc.o CMakeFiles/grpc_cli.dir/test/cpp/util/grpc_tool.cc.o CMakeFiles/grpc_cli.dir/test/cpp/util/proto_file_parser.cc.o CMakeFiles/grpc_cli.dir/test/cpp/util/proto_reflection_descriptor_database.cc.o CMakeFiles/grpc_cli.dir/test/cpp/util/service_describer.cc.o -o grpc_cli -Wl,-rpath,/build/grpc/src/grpc-1.73.0/build -ldl -lm -lrt libgrpc++.so.1.73.0 /usr/lib/libprotoc.so.31.1.0 libgrpc++_test_config.so.1.73.0 libgrpc.so.48.0.0 libupb_json_lib.so.48.0.0 libupb_textformat_lib.so.48.0.0 libupb_lex_lib.so.48.0.0 libupb_reflection_lib.so.48.0.0 libupb_mini_descriptor_lib.so.48.0.0 libupb_wire_lib.so.48.0.0 libutf8_range_lib.so.48.0.0 libupb_message_lib.so.48.0.0 libupb_mini_table_lib.so.48.0.0 libupb_hash_lib.so.48.0.0 libupb_base_lib.so.48.0.0 libupb_mem_lib.so.48.0.0 -pthread -L/usr/lib -lre2 -labsl_log_internal_check_op -labsl_leak_check -labsl_log_internal_conditions -labsl_log_internal_message -labsl_examine_stack -labsl_log_internal_format -labsl_log_internal_nullguard -labsl_log_internal_structured_proto -labsl_log_internal_proto -labsl_log_internal_log_sink_set -labsl_log_internal_globals -labsl_log_globals -labsl_log_sink -labsl_strerror -labsl_vlog_config_internal -labsl_log_internal_fnmatch -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_reflection -labsl_flags_private_handle_accessor -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_program_name -labsl_raw_hash_set -labsl_cord -labsl_cordz_info -labsl_cord_internal -labsl_cordz_functions -labsl_cordz_handle -labsl_crc_cord_state -labsl_crc32c -labsl_crc_internal -labsl_crc_cpu_detect -labsl_hashtablez_sampler -labsl_exponential_biased -labsl_hash -labsl_city -labsl_low_level_hash -labsl_str_format_internal -labsl_synchronization -labsl_graphcycles_internal -labsl_kernel_timeout_internal -labsl_stacktrace -labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal -labsl_demangle_rust -labsl_decode_rust_punycode -labsl_utf8_for_code_point -labsl_malloc_internal -labsl_time -labsl_civil_time -labsl_strings -labsl_strings_internal -labsl_string_view -labsl_int128 -labsl_throw_delegate -labsl_time_zone -labsl_tracing_internal -labsl_base -lrt -labsl_raw_logging_internal -labsl_log_severity -labsl_spinlock_wait /usr/lib/libz.so /usr/lib/libcares.so.2.19.4 /usr/lib/libssl.so /usr/lib/libcrypto.so libaddress_sorting.so.48.0.0 /usr/lib/libprotobuf.so.31.1.0 /usr/lib/libupb.a /usr/lib/libutf8_range.so.31.1.0 /usr/lib/libabsl_die_if_null.so.2505.0.0 /usr/lib/libabsl_log_initialize.so.2505.0.0 /usr/lib/libabsl_statusor.so.2505.0.0 /usr/lib/libabsl_flags_parse.so.2505.0.0 /usr/lib/libabsl_flags_usage.so.2505.0.0 /usr/lib/libabsl_flags_usage_internal.so.2505.0.0 libgpr.so.48.0.0 -ldl -lm -lrt /usr/lib/libabsl_flags_internal.so.2505.0.0 /usr/lib/libabsl_flags_reflection.so.2505.0.0 /usr/lib/libabsl_raw_hash_set.so.2505.0.0 /usr/lib/libabsl_hashtablez_sampler.so.2505.0.0 /usr/lib/libabsl_flags_config.so.2505.0.0 /usr/lib/libabsl_flags_program_name.so.2505.0.0 /usr/lib/libabsl_flags_private_handle_accessor.so.2505.0.0 /usr/lib/libabsl_flags_commandlineflag.so.2505.0.0 /usr/lib/libabsl_flags_commandlineflag_internal.so.2505.0.0 /usr/lib/libabsl_random_distributions.so.2505.0.0 /usr/lib/libabsl_random_seed_sequences.so.2505.0.0 /usr/lib/libabsl_random_internal_entropy_pool.so.2505.0.0 /usr/lib/libabsl_random_internal_randen.so.2505.0.0 /usr/lib/libabsl_random_internal_randen_hwaes.so.2505.0.0 /usr/lib/libabsl_random_internal_randen_hwaes_impl.so.2505.0.0 /usr/lib/libabsl_random_internal_randen_slow.so.2505.0.0 /usr/lib/libabsl_random_internal_platform.so.2505.0.0 /usr/lib/libabsl_random_internal_seed_material.so.2505.0.0 /usr/lib/libabsl_random_seed_gen_exception.so.2505.0.0 /usr/lib/libabsl_status.so.2505.0.0 /usr/lib/libabsl_cord.so.2505.0.0 /usr/lib/libabsl_cordz_info.so.2505.0.0 /usr/lib/libabsl_cord_internal.so.2505.0.0 /usr/lib/libabsl_cordz_functions.so.2505.0.0 /usr/lib/libabsl_exponential_biased.so.2505.0.0 /usr/lib/libabsl_cordz_handle.so.2505.0.0 /usr/lib/libabsl_crc_cord_state.so.2505.0.0 /usr/lib/libabsl_crc32c.so.2505.0.0 /usr/lib/libabsl_crc_internal.so.2505.0.0 /usr/lib/libabsl_crc_cpu_detect.so.2505.0.0 /usr/lib/libabsl_flags_marshalling.so.2505.0.0 /usr/lib/libabsl_log_internal_check_op.so.2505.0.0 /usr/lib/libabsl_leak_check.so.2505.0.0 /usr/lib/libabsl_log_internal_conditions.so.2505.0.0 /usr/lib/libabsl_log_internal_message.so.2505.0.0 /usr/lib/libabsl_strerror.so.2505.0.0 /usr/lib/libabsl_log_internal_nullguard.so.2505.0.0 /usr/lib/libabsl_examine_stack.so.2505.0.0 /usr/lib/libabsl_log_internal_format.so.2505.0.0 /usr/lib/libabsl_str_format_internal.so.2505.0.0 /usr/lib/libabsl_log_internal_structured_proto.so.2505.0.0 /usr/lib/libabsl_log_internal_proto.so.2505.0.0 /usr/lib/libabsl_log_internal_log_sink_set.so.2505.0.0 /usr/lib/libabsl_log_globals.so.2505.0.0 /usr/lib/libabsl_hash.so.2505.0.0 /usr/lib/libabsl_city.so.2505.0.0 /usr/lib/libabsl_low_level_hash.so.2505.0.0 /usr/lib/libabsl_vlog_config_internal.so.2505.0.0 /usr/lib/libabsl_log_internal_fnmatch.so.2505.0.0 /usr/lib/libabsl_synchronization.so.2505.0.0 /usr/lib/libabsl_stacktrace.so.2505.0.0 /usr/lib/libabsl_symbolize.so.2505.0.0 /usr/lib/libabsl_debugging_internal.so.2505.0.0 /usr/lib/libabsl_demangle_internal.so.2505.0.0 /usr/lib/libabsl_demangle_rust.so.2505.0.0 /usr/lib/libabsl_decode_rust_punycode.so.2505.0.0 /usr/lib/libabsl_utf8_for_code_point.so.2505.0.0 /usr/lib/libabsl_graphcycles_internal.so.2505.0.0 /usr/lib/libabsl_kernel_timeout_internal.so.2505.0.0 /usr/lib/libabsl_malloc_internal.so.2505.0.0 /usr/lib/libabsl_tracing_internal.so.2505.0.0 /usr/lib/libabsl_log_internal_globals.so.2505.0.0 /usr/lib/libabsl_log_sink.so.2505.0.0 /usr/lib/libabsl_time.so.2505.0.0 /usr/lib/libabsl_civil_time.so.2505.0.0 /usr/lib/libabsl_time_zone.so.2505.0.0 /usr/lib/libabsl_strings.so.2505.0.0 /usr/lib/libabsl_int128.so.2505.0.0 /usr/lib/libabsl_strings_internal.so.2505.0.0 /usr/lib/libabsl_string_view.so.2505.0.0 /usr/lib/libabsl_base.so.2505.0.0 /usr/lib/libabsl_spinlock_wait.so.2505.0.0 /usr/lib/libabsl_throw_delegate.so.2505.0.0 /usr/lib/libabsl_raw_logging_internal.so.2505.0.0 /usr/lib/libabsl_log_severity.so.2505.0.0 && :
/usr/bin/ld: /usr/lib/libupb.a(extension_registry.c.o): undefined reference to symbol '__stop_linkarr_upb_AllExts'
/usr/bin/ld: libupb_mini_table_lib.so.48.0.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Anything else we should know about your project / environment