abseil/abseil-cpp

[Bug]: Symbol visibility changed with 20230802 on osx?

Closed this issue · 2 comments

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

I'm not aware of any changes that would cause this.

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.