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

Fails to link ricochet-refresh due to missing symbol related to abseil #178

Closed
odiferousmint opened this issue Oct 17, 2023 · 4 comments · May be fixed by #182
Closed

Fails to link ricochet-refresh due to missing symbol related to abseil #178

odiferousmint opened this issue Oct 17, 2023 · 4 comments · May be fixed by #182

Comments

@odiferousmint
Copy link

odiferousmint commented Oct 17, 2023

Hello.

When trying to compile, I get the following error:

[100%] Linking CXX executable ricochet-refresh/ricochet-refresh
/usr/bin/ld: ../libtego/libtego.a(ControlChannel.pb.cc.o): undefined reference to symbol '_ZN4absl12lts_2023080212log_internal17MakeCheckOpStringIllEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc'
/usr/bin/ld: /usr/lib/libabsl_log_internal_check_op.so.2308.0.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [ricochet-refresh/CMakeFiles/ricochet-refresh.dir/build.make:433: ricochet-refresh/ricochet-refresh/ricochet-refresh] Error 1
make[1]: *** [CMakeFiles/Makefile2:305: ricochet-refresh/CMakeFiles/ricochet-refresh.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Any ideas?

@morganava
Copy link
Collaborator

The abseil dependency is coming from protobuf which was added in the 3.22 series (which is why we build against the 3.21 series in the official releases: https://github.com/blueprint-freespeech/ricochet-build/blob/6cec75b70cfdd6d237ceb2d66328960afb33b073/rbm.conf#L66)

For a local build you should be able to install the abseil the abseil dev package for your distro.

@odiferousmint
Copy link
Author

The abseil dependency is coming from protobuf which was added in the 3.22 series (which is why we build against the 3.21 series in the official releases: https://github.com/blueprint-freespeech/ricochet-build/blob/6cec75b70cfdd6d237ceb2d66328960afb33b073/rbm.conf#L66)

For a local build you should be able to install the abseil the abseil dev package for your distro.

Yeah, I have it installed yet I get the error. Perhaps the installed version is too old or new (https://voidlinux.org/packages/?arch=x86_64&q=abseil). Installed version is 20230802.1. I will try with a different version.

@odiferousmint
Copy link
Author

odiferousmint commented Oct 17, 2023

Alright, so:

[ 70%] Built target ricochet-refresh_autogen
[ 71%] Linking CXX executable ricochet-refresh/ricochet-refresh
/usr/bin/ld: ../libtego/libtego.a(ControlChannel.pb.cc.o): undefined reference to symbol '_ZN4absl12lts_2023080212log_internal17MakeCheckOpStringIllEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc'
/usr/bin/ld: /usr/lib/libabsl_log_internal_check_op.so.2308.0.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [ricochet-refresh/CMakeFiles/ricochet-refresh.dir/build.make:433: ricochet-refresh/ricochet-refresh/ricochet-refresh] Error 1
make[1]: *** [CMakeFiles/Makefile2:305: ricochet-refresh/CMakeFiles/ricochet-refresh.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
$ objdump -S /usr/lib/libabsl_log_internal_check_op.so | grep _ZN4absl12lts_2023080212log_internal17MakeCheckOpStringIllEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc

0000000000004000 <_ZN4absl12lts_2023080212log_internal17MakeCheckOpStringIllEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc@@Base>:
    4099:	74 0e                	je     40a9 <_ZN4absl12lts_2023080212log_internal17MakeCheckOpStringIllEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc@@Base+0xa9>
    4109:	75 0f                	jne    411a <_ZN4absl12lts_2023080212log_internal17MakeCheckOpStringIllEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc@@Base+0x11a>

It seems like that the .so file mentioned in the linking error includes the relevant symbols.

Any ideas where to go from here?

@milahu
Copy link

milahu commented Jan 29, 2024

fixed in #182

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

Successfully merging a pull request may close this issue.

3 participants