-
Notifications
You must be signed in to change notification settings - Fork 16.1k
Some symbols in libprotoc's public API are hidden #12618
Copy link
Copy link
Closed
Description
What version of protobuf and what language are you using?
Version: v22.3
Language: C++
What operating system (Linux, Windows, ...) and version?
Linux. Tested with Fedora 37, but I think the problem is more general.
What runtime / compiler are you using (e.g., python version or gcc version)
GCC 12.2. I expect the problem is more general.
What did you do?
I am attaching a Dockerfile, you can run the test using:
docker buildx build -<DockerfileWhat did you expect to see
I expected the program to link successfully.
What did you see instead?
=> ERROR [12/12] RUN cmake --build cmake-out 0.8s
------
> [12/12] RUN cmake --build cmake-out:
#0 0.682 [1/2] Building CXX object CMakeFiles/repro.dir/repro.cc.o
#0 0.747 [2/2] Linking CXX executable repro
#0 0.747 FAILED: repro
#0 0.747 : && /usr/bin/c++ CMakeFiles/repro.dir/repro.cc.o -o repro -Wl,-rpath,/usr/local/lib64 /usr/local/lib64/libprotoc.so.22.3.0 /usr/local/lib64/libabsl_log_internal_check_op.so.2301.0.0 /usr/local/lib64/libabsl_leak_check.so.2301.0.0 /usr/local/lib64/libabsl_die_if_null.so.2301.0.0 /usr/local/lib64/libabsl_log_internal_conditions.so.2301.0.0 /usr/local/lib64/libabsl_log_internal_message.so.2301.0.0 /usr/local/lib64/libabsl_log_internal_nullguard.so.2301.0.0 /usr/local/lib64/libabsl_examine_stack.so.2301.0.0 /usr/local/lib64/libabsl_log_internal_format.so.2301.0.0 /usr/local/lib64/libabsl_log_internal_proto.so.2301.0.0 /usr/local/lib64/libabsl_log_internal_log_sink_set.so.2301.0.0 /usr/local/lib64/libabsl_log_sink.so.2301.0.0 /usr/local/lib64/libabsl_log_entry.so.2301.0.0 /usr/local/lib64/libabsl_flags.so.2301.0.0 /usr/local/lib64/libabsl_flags_internal.so.2301.0.0 /usr/local/lib64/libabsl_flags_marshalling.so.2301.0.0 /usr/local/lib64/libabsl_flags_reflection.so.2301.0.0 /usr/local/lib64/libabsl_flags_config.so.2301.0.0 /usr/local/lib64/libabsl_flags_program_name.so.2301.0.0 /usr/local/lib64/libabsl_flags_private_handle_accessor.so.2301.0.0 /usr/local/lib64/libabsl_flags_commandlineflag.so.2301.0.0 /usr/local/lib64/libabsl_flags_commandlineflag_internal.so.2301.0.0 /usr/local/lib64/libabsl_log_initialize.so.2301.0.0 /usr/local/lib64/libabsl_log_globals.so.2301.0.0 /usr/local/lib64/libabsl_log_internal_globals.so.2301.0.0 /usr/local/lib64/libabsl_hash.so.2301.0.0 /usr/local/lib64/libabsl_city.so.2301.0.0 /usr/local/lib64/libabsl_low_level_hash.so.2301.0.0 /usr/local/lib64/libabsl_raw_hash_set.so.2301.0.0 /usr/local/lib64/libabsl_hashtablez_sampler.so.2301.0.0 /usr/local/lib64/libabsl_statusor.so.2301.0.0 /usr/local/lib64/libabsl_status.so.2301.0.0 /usr/local/lib64/libabsl_cord.so.2301.0.0 /usr/local/lib64/libabsl_cordz_info.so.2301.0.0 /usr/local/lib64/libabsl_cord_internal.so.2301.0.0 /usr/local/lib64/libabsl_cordz_functions.so.2301.0.0 /usr/local/lib64/libabsl_exponential_biased.so.2301.0.0 /usr/local/lib64/libabsl_cordz_handle.so.2301.0.0 /usr/local/lib64/libabsl_crc_cord_state.so.2301.0.0 /usr/local/lib64/libabsl_crc32c.so.2301.0.0 /usr/local/lib64/libabsl_crc_internal.so.2301.0.0 /usr/local/lib64/libabsl_crc_cpu_detect.so.2301.0.0 /usr/local/lib64/libabsl_bad_optional_access.so.2301.0.0 /usr/local/lib64/libabsl_str_format_internal.so.2301.0.0 /usr/local/lib64/libabsl_strerror.so.2301.0.0 /usr/local/lib64/libabsl_synchronization.so.2301.0.0 /usr/local/lib64/libabsl_stacktrace.so.2301.0.0 /usr/local/lib64/libabsl_symbolize.so.2301.0.0 /usr/local/lib64/libabsl_debugging_internal.so.2301.0.0 /usr/local/lib64/libabsl_demangle_internal.so.2301.0.0 /usr/local/lib64/libabsl_graphcycles_internal.so.2301.0.0 /usr/local/lib64/libabsl_malloc_internal.so.2301.0.0 /usr/local/lib64/libabsl_time.so.2301.0.0 /usr/local/lib64/libabsl_strings.so.2301.0.0 /usr/local/lib64/libabsl_throw_delegate.so.2301.0.0 /usr/local/lib64/libabsl_strings_internal.so.2301.0.0 /usr/local/lib64/libabsl_base.so.2301.0.0 /usr/local/lib64/libabsl_spinlock_wait.so.2301.0.0 /usr/local/lib64/libabsl_int128.so.2301.0.0 /usr/local/lib64/libabsl_civil_time.so.2301.0.0 /usr/local/lib64/libabsl_time_zone.so.2301.0.0 /usr/local/lib64/libabsl_bad_variant_access.so.2301.0.0 /usr/local/lib64/libabsl_raw_logging_internal.so.2301.0.0 /usr/local/lib64/libabsl_log_severity.so.2301.0.0 -Wl,-rpath-link,/usr/local/lib64 && :
#0 0.747 /usr/bin/ld: CMakeFiles/repro.dir/repro.cc.o: in function `main':
#0 0.747 repro.cc:(.text+0x16): undefined reference to `google::protobuf::compiler::cpp::FieldName[abi:cxx11](google::protobuf::FieldDescriptor const*)'
#0 0.747 collect2: error: ld returned 1 exit status
#0 0.747 ninja: build stopped: subcommand failed.
------
ERROR: failed to solve: executor failed running [/bin/sh -c cmake --build cmake-out]: exit code: 1
Anything else we should know about your project / environment
I think the problem was introduced in
Many of the symbols in google::protobuf::compiler::cpp seem to be intended for public usage, but are not marked
Dockerfile.txt
Compare:
vs.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels