-
-
Notifications
You must be signed in to change notification settings - Fork 26
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
Error: libatomic.so.1: cannot open shared object file: No such file or directory #44
Comments
@MatthewCroughan the plugin is a shared library. On Linux, it depends on libatomic which should be installed on most systems, since you don't provide any information about your OS, I can't help much further. |
Note that it likely only depends on libatomic if it was built with Clang, otherwise it's part of GCC. It could be statically linked like done for Godot itself: |
@Faless Is there anything we can do to not rely on host libraries? It is not possible on NixOS to rely on shared libraries, since the practical goal of NixOS is to do away with that practice. |
To clarify, on NixOS, I'd have to create a derivation (package) for this, in order to specify the libraries it needs, then provide it to Godot at runtime, and integrate the whole thing. Which is trivial enough, and I'm willing to do it. However, it would be better if this simply didn't rely on host libraries so that it could be a real plugin rather than something that must be integrated into the package ecosystem as I just laid out. This will fail in other scenarios than just Nix, you just haven't discovered those scenarios yet, since you are just trusting that libatomic is around. |
I just got bitten by this one when trying to get up and running on a completely fresh ubuntu install. I eventually worked out I needed to do:
|
You can workaround this issue on NixOS by using patchelf to link the unincluded library to a locally built one. The following assumes that the static object you want to fix the problem in is in the current directory, such as
|
Closing as fixed after #51 , you can test the alpha release. |
@Faless Can we re-open this issue for Godot 4 as there is an issue on NixOS with the This is what it does on startup for me.
(Why is it taking the debug library and not the release version? Does this mean my version of Godot has been compiled as a debug, so this is the compatible one?) I hacked it so it worked by following @MatthewCroughan's method above: $ nix build github:nixos/nixpkgs/nixos-unstable#gcc-unwrapped.lib
$ readlink -f result-lib/lib64/libstdc++.so.6
/nix/store/v286z87irid5vn13y2z6fphfrzmgj0kf-gcc-12.3.0-lib/lib/libstdc++.so.6.0.30
$ patchelf --replace-needed libstdc++.so.6 /nix/store/v286z87irid5vn13y2z6fphfrzmgj0kf-gcc-12.3.0-lib/lib/libstdc++.so.6.0.30 ./libwebrtc_native.linux.template_debug.x86_64.so
$ ldd libwebrtc_native.linux.template_debug.x86_64.so
linux-vdso.so.1 (0x00007ffc346fb000)
/nix/store/v286z87irid5vn13y2z6fphfrzmgj0kf-gcc-12.3.0-lib/lib/libstdc++.so.6.0.30 (0x00007ffa3caa4000)
libm.so.6 => /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libm.so.6 (0x00007ffa3c9c4000)
libgcc_s.so.1 => /nix/store/0fvh2p4irz0lw0cpy2ll1rf2hbhbym3g-xgcc-12.2.0-libgcc/lib/libgcc_s.so.1 (0x00007ffa3c9a3000)
libc.so.6 => /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libc.so.6 (0x00007ffa3c7bd000)
/nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib64/ld-linux-x86-64.so.2 (0x00007ffa3d54f000) Now it works, but just for me. |
It's better to open a new issue, since this is not about |
I've opened #110 to track it |
Are the releases really static, or do they depend on libraries existing on the host? Is there anything we can do about this?
The text was updated successfully, but these errors were encountered: