-
Notifications
You must be signed in to change notification settings - Fork 117
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
[FR] Support LLVM toolchain on Windows in prebuilt SDK #793
Comments
The issue can also be reproduced using the auth sample project from quickstart-cpp like this:
|
HI @triplef, It's unclear if this is a build configuration mismatch between the toolchain used to precompile and link the Firebase C++ SDK libraries, and the toolchain you're using to link the final application. Or, it could be a bug in one of the toolchains. The best way forward to resolve this issue is to build and link the libraries from the source in the repository using the same toolchain you're using in the final app. I hope this helps! |
Hey @triplef. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically. If you have more information that will help us get to the bottom of this, just add a comment! |
Thanks for your feedback @DellaBitta. I’ll try building from source and report back after the holidays. |
Building from source using the official instructions and Visual Studio 2022 (with MSVC) fixes the linker errors for us. Not sure how our setup would differ from the official builds. Is there any chance the LLVM toolchain (which is officially supported by Visual Studio) could be supported by this project? We'd much rather use pre-built binaries than having to build ourselves. Please let me know if there is anything else I can provide towards this. |
Hi @triplef If you need to use LLVM, you will need to build from source. Currently pre-built version does not support it. Seems like you were able to build it from source with no problem. I will mark it as a FR for now. |
The current release of firebase is built in a way that makes debugging impossible as trying to use DWARF debug information would yield undefined symbols (see firebase/firebase-cpp-sdk#793, llvm/llvm-project#62182).
The current release of firebase is built in a way that makes debugging impossible as trying to use DWARF debug information would yield undefined symbols (see firebase/firebase-cpp-sdk#793, llvm/llvm-project#62182).
I managed to debug and reproduce the issue locally. One one hand, the root issue is caused by the packaging script that uses (binutils) I think if someone was willing to add |
Thank you @aganea for tracking this down! Much appreciated. 🙏 Could you elaborate how the |
As for the Ubuntu image, the release log points to this image, which doesn't contain the LLVM binutils. LLVM needs to be added if we want |
Thanks for the clarification! I’ve opened #1427 with what I think are the required changes. |
[REQUIRED] Please fill in the following fields:
[REQUIRED] Please describe the issue here:
Using the LLVM toolchain (specifically lld-link) instead of MSVC (link.exe) results in linker errors "relocation against symbol in discarded section: ..." from lld-link (see logs below).
Using link.exe instead of lld-link works fine, and it does not matter whether the source was built with MSVC or clang-cl.
As we have technical requirements to use lld-link in our projects and this is blocking us from using the Firebase C++ SDK.
Steps to reproduce with sample project:
Steps to reproduce manually:
Error Logs
The text was updated successfully, but these errors were encountered: