FS#77017 - Cannot find libatomic.a when building Godot with Pyston, Clang, and LLD

Attached to Project: Arch Linux
Opened by Konnor Kiefer (kiefer8203) - Friday, 06 January 2023, 03:48 GMT
Last edited by Toolybird (Toolybird) - Sunday, 08 January 2023, 01:13 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture x86_64
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description: When building Godot using Pyston, Clang, and LLD, there is an error that prevents building:

/usr/bin/ld: cannot find -l:libatomic.a: No such file or directory
clang-14: error: linker command failed with exit code 1 (use -v to see invocation)
scons: *** [bin/godot.linuxbsd.editor.x86_64.llvm] Error 1
scons: building terminated because of errors.

I think this is caused by extra/libatomic_ops being built with shared libraries rather than static ones.
I solved it by building libatomic_ops with these steps: https://github.com/godotengine/godot/issues/46375#issuecomment-1373075734
The official Godot Game Engine linux compilation instructions are here: https://docs.godotengine.org/en/latest/development/compiling/compiling_for_linuxbsd.html#using-clang-and-lld-for-faster-development

Additional info:
* extra/libatomic_ops 7.6.14-1

Steps to reproduce:
- Build Godot using: scons platform=linuxbsd use_llvm=yes use_lld=yes
This task depends upon

Closed by  Toolybird (Toolybird)
Sunday, 08 January 2023, 01:13 GMT
Reason for closing:  Not a bug
Additional comments about closing:  See comments
Comment by Konnor Kiefer (kiefer8203) - Friday, 06 January 2023, 03:50 GMT
I should also mention that this occurs with Godot master branch: https://github.com/godotengine/godot
Comment by loqs (loqs) - Friday, 06 January 2023, 15:25 GMT Comment by Konnor Kiefer (kiefer8203) - Friday, 06 January 2023, 18:02 GMT
When I disabled use_static_cpp, building completes successfully. However, I would like to have it enabled so the resulting binaries are more portable. I am unsure about other distros, but Fedora's libatomic-static package includes libatomic.a: https://github.com/godotengine/godot-docs/pull/5376
Comment by loqs (loqs) - Friday, 06 January 2023, 18:15 GMT
Arch policy is to only package dynamic libraries where both are available unless the static library is required by a package in the official repositories.
Comment by Konnor Kiefer (kiefer8203) - Saturday, 07 January 2023, 19:54 GMT
Oh okay, that makes sense.

Loading...