[Bug]: Symbol visibility changed with 20230802 on osx?
Closed this issue · 2 comments
h-vetinari commented
Describe the issue
While trying to build the java plugin for grpc with the newest abseil, I'm running into:
Undefined symbols for architecture x86_64:
"absl::lts_20230802::raw_log_internal::internal_log_function", referenced from:
absl::lts_20230802::container_internal::operator==(absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<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> > > > >::iterator const&, absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<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> > > > >::iterator const&) in java_generator.pic.o
absl::lts_20230802::container_internal::AssertIsFull(absl::lts_20230802::container_internal::ctrl_t const*, unsigned char, unsigned char const*, char const*) in java_generator.pic.o
ld: symbol(s) not found for architecture x86_64
Based on the names this could well be a bug in the sense that grpc is depending on abseil internals, but since it broke in a vanilla update, it could also be a regression and I thought I'd start here.
It's also worth noting that this only happens on osx, not on linux or windows.
Steps to reproduce the problem
Can describe in more detail if necessary.
What version of Abseil are you using?
20230802
What operating system and version are you using?
OSX
What compiler and version are you using?
Clang 15
What build system are you using?
Bazel
Additional context
No response
derekmauro commented
I'm not aware of any changes that would cause this.
h-vetinari commented
Yeah, this turned out to be fixable on our end. Probably just some minor reshuffle in which lib a given symbol ends up, we just end up linking larger chunks of abseil now. Sorry for the noise.