Bugzilla – Bug 1222343
protobuf linking issue
Last modified: 2024-07-16 12:31:11 UTC
Recently, I'm getting several linking errors while building strawberry on leap. Full log can be seen on https://build.opensuse.org/package/show/multimedia:apps/strawberry This happened a few weeks ago, and it seem to be the same issue on both Leap 15.5 and 15.6, it is not an issue on Tumbleweed or any other linux distribution (Fedora, Debian and Ubuntu builds fine). I suspect an issue with the protobuf library on Leap. From the build log: [ 76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: CMakeFiles/strawberry-tagreader.dir/tagreaderworker.cpp.o: in function `google::protobuf::internal::ArenaStringPtr::SetBytes(void const*, unsigned long, google::protobuf::Arena*)': [ 76s] /usr/include/google/protobuf/arenastring.h:495:(.text+0x44e): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(absl::lts_20240116::string_view, google::protobuf::Arena*)' [ 76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadertaglib.cpp.o): in function `google::protobuf::internal::ArenaStringPtr::Set(char const*, unsigned long, google::protobuf::Arena*)': [ 76s] /usr/include/google/protobuf/arenastring.h:470:(.text+0x9935): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(absl::lts_20240116::string_view, google::protobuf::Arena*)' [ 76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: /usr/include/google/protobuf/arenastring.h:470:(.text+0x9976): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(absl::lts_20240116::string_view, google::protobuf::Arena*)' [ 76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o): in function `spb::tagreader::SongMetadata::GetMetadata() const': [ 76s] /home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:2565:(.text+0x1886): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)' [ 76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o): in function `spb::tagreader::IsMediaFileRequest::GetMetadata() const': [ 76s] /home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:2769:(.text+0x18a6): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)' [ 76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o): in function `spb::tagreader::IsMediaFileResponse::GetMetadata() const': [ 76s] /home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:3007:(.text+0x18c6): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)' [ 76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o): in function `spb::tagreader::ReadFileRequest::GetMetadata() const': [ 76s] /home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:3211:(.text+0x18e6): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)' [ 76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o): in function `spb::tagreader::ReadFileResponse::GetMetadata() const': [ 76s] /home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:3463:(.text+0x1906): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)' [ 76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o):/home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:3939: more undefined references to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)' follow [ 76s] collect2: error: ld returned 1 exit status
we are working on a fix foor this.
I get something similar for android-tools and Leap 15.6: /usr/bin/ld: warning: libabsl_status.so.2308.0.0, needed by /usr/lib64/libprotobuf.so.25.1.0, may conflict with libabsl_status.so.2401.0.0 protobuf is linked against libabsl_status.so.2308.0.0, but the rest is linked against libabsl_status.so.2401.0.0 this leads to a build error: https://build.opensuse.org/build/hardware/15.6/x86_64/android-tools/_log Please let me know if you want me to open a separate bug.
(In reply to Paolo Panto from comment #2) > I get something similar for android-tools and Leap 15.6: > > /usr/bin/ld: warning: libabsl_status.so.2308.0.0, needed by > /usr/lib64/libprotobuf.so.25.1.0, may conflict with > libabsl_status.so.2401.0.0 > > protobuf is linked against libabsl_status.so.2308.0.0, but the rest is > linked against libabsl_status.so.2401.0.0 > > this leads to a build error: > https://build.opensuse.org/build/hardware/15.6/x86_64/android-tools/_log > > Please let me know if you want me to open a separate bug. The same error for Leap 15.5, but in my home project with a current build (the last build for Leap 15.5 on hardware/android-tools is from Fri Mar 22 06:59:34 UTC 2024 - without error). https://build.opensuse.org/package/live_build_log/home:munix9/android-tools/15.5/x86_64 https://build.opensuse.org/package/live_build_log/home:munix9/android-tools/15.6/x86_64
We have the same issue. I tried to force an old version of abseil-cpp-devel in the spec file, but OBS could not resolve that: Spec file: ... %if 0%{?sle_version} == 150500 && 0%{?is_opensuse} # on Leap 15.5, libprotobuf is linked against abseil 202308 BuildRequires: abseil-cpp-devel < 20240116 %endif ... OBS says: unresolvable: nothing provides abseil-cpp-devel < 20240116, (got version 20240116.1-150500.13.3.5) this is our project which does not build on 15.5: https://build.opensuse.org/package/show/science:EtherLab/DLS
This might be related: https://github.com/protocolbuffers/protobuf/issues/12292 Adding CONFIG to find_package(Protobuf ...) fixed building apache-arrow 16.0.0 for me (on Tumbleweed). Before that, I got similar errors on undefined absl references.
It's not related. This is on Leap, not Tumbleweed. Already using find_package with CONFIG. Protobuf from devel:tools:building works.
Any news on this topic? As far as I could tell for the android-tools package, the current picture is as follows: Repository Build openSUSE:Leap:15.5 succeeded openSUSE:Leap:15.5:Update failed openSUSE:Leap:15.6 succeeded openSUSE:Leap:15.6:Update succeeded
SUSE-RU-2024:2176-1: An update that has three fixes can now be installed. Category: recommended (moderate) Bug References: 1222261, 1222343, 1222348 Maintenance Incident: [SUSE:Maintenance:33199](https://smelt.suse.de/incident/33199/) Sources used: openSUSE Leap 15.5 (src): re2-20240201-150500.12.2.1, protobuf-25.1-150500.12.2.2, grpc-1.60.0-150500.11.5.16, abseil-cpp-20240116.1-150500.13.7.8, zypper-1.14.73-150500.6.2.1, python-grpcio-1.60.1-150500.12.3.16, libphonenumber-8.12.23-150500.6.2.1, libzypp-17.34.1-150500.6.2.1 SUSE Linux Enterprise High Performance Computing 15 SP5 (src): protobuf-25.1-150500.12.2.2, libzypp-17.34.1-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8 SUSE Linux Enterprise Server 15 SP5 (src): protobuf-25.1-150500.12.2.2, libzypp-17.34.1-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8 SUSE Linux Enterprise Server for SAP Applications 15 SP5 (src): protobuf-25.1-150500.12.2.2, libzypp-17.34.1-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8 SUSE Linux Enterprise Desktop 15 SP5 (src): protobuf-25.1-150500.12.2.2, libzypp-17.34.1-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8 SUSE Linux Enterprise Micro for Rancher 5.4 (src): abseil-cpp-20240116.1-150500.13.7.8 SUSE Linux Enterprise Micro 5.4 (src): abseil-cpp-20240116.1-150500.13.7.8 SUSE Linux Enterprise Micro 5.5 (src): protobuf-25.1-150500.12.2.2, libzypp-17.34.1-150500.6.2.1, zypper-1.14.73-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8 Basesystem Module 15-SP5 (src): zypper-1.14.73-150500.6.2.1, re2-20240201-150500.12.2.1, protobuf-25.1-150500.12.2.2, grpc-1.60.0-150500.11.5.16, libzypp-17.34.1-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8 Development Tools Module 15-SP5 (src): protobuf-25.1-150500.12.2.2, abseil-cpp-20240116.1-150500.13.7.8 SUSE Package Hub 15 15-SP5 (src): protobuf-25.1-150500.12.2.2, libphonenumber-8.12.23-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8 Public Cloud Module 15-SP5 (src): re2-20240201-150500.12.2.1, protobuf-25.1-150500.12.2.2, grpc-1.60.0-150500.11.5.16, python-grpcio-1.60.1-150500.12.3.16 Python 3 Module 15-SP5 (src): protobuf-25.1-150500.12.2.2, python-grpcio-1.60.1-150500.12.3.16 SUSE Linux Enterprise Workstation Extension 15 SP5 (src): libphonenumber-8.12.23-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
LGTM now, thanks!
since one of the last updates (last week) strawberry does not start anymore with the following error message: strawberry: symbol lookup error: strawberry: undefined symbol: _ZN6google8protobuf8internal17AssignDescriptorsEPFPKNS1_15DescriptorTableEvEPN4absl12lts_202308029once_flagERKNS0_8MetadataE strawberry vers 1.0.23, release bp155.2.9.1 installed Di 02 Apr 2024 09:17:19 CEST. So it looks like it is one of the recently updated libprotobufs: libprotobuf-lite25_1_0-25.1-150500.12.2.2.x86_64 libprotobuf25_1_0-25.1-150500.12.2.2.x86_64 Attempts to roll-back one the protobuf libs lead to a non-functioning zypper/yast with additional lookup errors. I could not nail down which one it was. Perhaps strawberry needs a re-compile? Cheers Stefan
*** Bug 1227463 has been marked as a duplicate of this bug. ***
i will get a rebuilt strawberry out
SUSE-RU-2024:2176-2: An update that has three fixes can now be installed. Category: recommended (moderate) Bug References: 1222261, 1222343, 1222348 Maintenance Incident: [SUSE:Maintenance:33199](https://smelt.suse.de/incident/33199/) Sources used: SUSE Linux Enterprise Micro 5.5 (src): libzypp-17.34.1-150500.6.2.1, protobuf-25.1-150500.12.2.2, zypper-1.14.73-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.