You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
zig c++ -target x86_64-linux-gnu main.cpp -o main -flto -fuse-ld=lld -v -Wl,-mllvm,-lto-embed-bitcode=optimized
Expected Behavior
Zig should include -mllvm -lto-embed-bitcode=optimized in the ld.lld command line.
Using the following command line on Linux works fine:
clang++ main.cpp -o main -flto -fuse-ld=lld -v -Wl,-mllvm,-lto-embed-bitcode=optimized
An alternative command line (also rejected) is: -Wl,--plugin-opt=-lto-embed-bitcode=optimized
This option is used to add a .llvmbc section to the final executable, which contains all of the bitcode, but there are other options as well. Related issue: #11204, related pull request llvm/llvm-project#79390 (attempt to add the linker command line as well as the working directory to this embedded bitcode file, which would allow reproducing the linking process after modifying the bitcode).
Note that we're planning on dropping the LLD dependency Real Soon Now, so this option would only be supportable when using LLD through the Zig build system, and with Zig's LLVM backend. Usage of Zig's self-hosted linker and/or self-hosted backend(s) is fundamentally incompatible with this.
(Does Apple still require apps to ship with embedded bitcode?)
Yeah this is for usage with zig c++ only. I do not need to embed the bitcode for Apple, it's to do my own post-processing on bitcode of the whole binary and zig is the most convenient cross compiler to play around with things!
Activity
alexrp commentedon Dec 22, 2024
Note that we're planning on dropping the LLD dependency Real Soon Now, so this option would only be supportable when using LLD through the Zig build system, and with Zig's LLVM backend. Usage of Zig's self-hosted linker and/or self-hosted backend(s) is fundamentally incompatible with this.
(Does Apple still require apps to ship with embedded bitcode?)
mrexodia commentedon Dec 23, 2024
Yeah this is for usage with
zig c++only. I do not need to embed the bitcode for Apple, it's to do my own post-processing on bitcode of the whole binary and zig is the most convenient cross compiler to play around with things!