Unable to build WebRTC on Android with latest m140
Starting from M140, I began seeing these undefined references inside WebRTC .a Android files:
libwebrtc.a:strerror.o: U __gnu_strerror_r
libwebrtc.a:system_error.o: U __gnu_strerror_
These symbols were not present in M139.
This is now breaking Android builds (in my case, x86_64):
This is now breaking Android builds (in my case, x86_64):
ld.lld: error: undefined symbol: __gnu_strerror_r
>>> referenced by strerror.cc:41 (…/absl/base/internal/strerror.cc:41)
>>> strerror.o:(absl::base_internal::StrError(int))
>>> referenced by system_error.cpp:199 (…/libc++/src/system_error.cpp:199)
>>> system_error.o:(std::__Cr::__do_message::message(int) const)
It looks like starting from M140, either Abseil or libc++ is pulling in the GNU-specific strerror_r variant, which Android’s libc doesn’t provide (or not for every architecture), causing the linker to fail.
Has anyone encountered this issue or knows if it’s related to a recent change in Abseil, libc++, or the Android toolchain inside WebRTC?
Read more here: Source link
