Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Weak symbols presence #201

Open
jjerphan opened this issue Nov 17, 2023 · 2 comments
Open

Weak symbols presence #201

jjerphan opened this issue Nov 17, 2023 · 2 comments

Comments

@jjerphan
Copy link
Member

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
Copy link
Member

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
Copy link
Member Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants