Closed magreenblatt closed 3 months ago
Related to issue #2470 where we disabled thin archive support on Windows.
It's likely sufficient to disable thin archives for the cef_sandbox build only, since that's the only archive that we distribute with the CEF binary distribution.
ld: warning: ignoring duplicate libraries: '../../third_party/llvm-build/Release+Asserts/lib/clang/19/lib/darwin/libclang_rt.osx.a' ld: fatal warning(s) induced error (-fatal_warnings)
That can be fixed by adding GN arg fatal_linker_warnings=false
Looks like https://github.com/chromiumembedded/cef/commit/54a9c26b92271ca060793ed3de5348bb0f42c06c broke #2470 again, as the new logic now just accounts for cef_sandbox
while restoring the initial is_win && use_lld
block.
As a result, I've started seeing the same error as #2470 when running make_distrib
from M125 on Windows.
But at least now there's a GN arg exposed so I could fix the packaging by adding use_thin_archives=false
to my GN_DEFINES (at the cost of a rebuild though). Still, might be worth adjusting the patch to disable the option by default for windows to retain the previous behavior.
Looks like https://github.com/chromiumembedded/cef/commit/54a9c26b92271ca060793ed3de5348bb0f42c06c broke https://github.com/chromiumembedded/cef/issues/2470 again
Sorry about that. You can create a compatible cef_sandbox build by following the instructions here. Or, build for distribution using the Official/automated instructions here.
oh I see, we weren't building the cef_sandbox
target in the separate *__GN_x64_sandbox
folder (for reasons unknown to me), and it was working by chance until your latest patch. If I build it there then the make_distrib.py
script will pick that one up for combine_libs
instead of the regular build folder.
Now it makes sense, thanks for the pointer!
Describe the bug Build cef_sandbox on Mac as described here. The make_distrib step fails with:
Expected behavior All steps should succeed.
Versions (please complete the following information):
Additional context Chromium builds with lld by default (GN arg use_lld=true). A recent change enabled the use of thin archives (
-T
argument) with lld. However, the system/Xcode version of "ld" does not appear to support thin archives. This is confirmed by the error message, where the hex value means "thin archive":Building cef_sandbox with
use_lld=false
also fails:Additonally, shipping thin archives (which contain just the symbol table and the path to find the original .o files) would cause issues for client applications.