conda-forge / libprotobuf-feedstock

A conda-smithy repository for libprotobuf.
BSD 3-Clause "New" or "Revised" License
3 stars 31 forks source link

Weak symbols presence #201

Open jjerphan opened 10 months ago

jjerphan commented 10 months ago

Currently, warnings are emitted by the linker regarding the presence of weak symbols.

For instance, see this log:

ld: warning: direct access in function 'std::__1::__function::__func<auto google::protobuf::io::Printer::WithVars<absl::lts_20230802::flat_hash_map<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::__1::allocator<std::__1::pair<std::__1::basic_string_view<char, std::__1::char_traits<char> > const, std::__1::basic_string_view<char, std::__1::char_traits<char> > > > > >(absl::lts_20230802::flat_hash_map<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::__1::allocator<std::__1::pair<std::__1::basic_string_view<char, std::__1::char_traits<char> > const, std::__1::basic_string_view<char, std::__1::char_traits<char> > > > > const*)::'lambda'(std::__1::basic_string_view<char, std::__1::char_traits<char> >), std::__1::allocator<auto google::protobuf::io::Printer::WithVars<absl::lts_20230802::flat_hash_map<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::__1::allocator<std::__1::pair<std::__1::basic_string_view<char, std::__1::char_traits<char> > const, std::__1::basic_string_view<char, std::__1::char_traits<char> > > > > >(absl::lts_20230802::flat_hash_map<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::__1::allocator<std::__1::pair<std::__1::basic_string_view<char, std::__1::char_traits<char> > const, std::__1::basic_string_view<char, std::__1::char_traits<char> > > > > const*)::'lambda'(std::__1::basic_string_view<char, std::__1::char_traits<char> >)>, std::__1::optional<google::protobuf::io::Printer::ValueImpl<false> > (std::__1::basic_string_view<char, std::__1::char_traits<char> >)>::target(std::type_info const&) const' from file 'libprotoc.a(command_line_interface.cc.o)' to global weak symbol 'typeinfo name for auto google::protobuf::io::Printer::WithVars<absl::lts_20230802::flat_hash_map<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::__1::allocator<std::__1::pair<std::__1::basic_string_view<char, std::__1::char_traits<char> > const, std::__1::basic_string_view<char, std::__1::char_traits<char> > > > > >(absl::lts_20230802::flat_hash_map<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::__1::allocator<std::__1::pair<std::__1::basic_string_view<char, std::__1::char_traits<char> > const, std::__1::basic_string_view<char, std::__1::char_traits<char> > > > > const*)::'lambda'(std::__1::basic_string_view<char, std::__1::char_traits<char> >)' from file 'CMakeFiles/fake_plugin.dir/src/google/protobuf/compiler/mock_code_generator.cc.o' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.

Visibility settings might need adaptation.

h-vetinari commented 10 months ago

Visibility settings might need adaptation.

PRs are welcome! Perhaps even better, you might be able to raise the issue upstream and get it fixed at the source.

jjerphan commented 10 months ago

Yes, we need to understand what needs to be adapted first. If we do, we might contribute here and upstream directly.