-
-
Notifications
You must be signed in to change notification settings - Fork 22k
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
SCons: Fix clang-cl
link/ar flags
#96813
SCons: Fix clang-cl
link/ar flags
#96813
Conversation
If using |
It seems like it does. I'm truthfully not entirely sure what passing those arguments does, beyond that they're accepted as arguments. Excluding those link/ar flags entirely gives comprable buildtimes & identical filesizes. Incidentally, here's the outputs from said builds: release:
lto=none:
time: 04:09.81
exe: 58,270,720
console.exe: 304,640
lto=thin:
time: 04:46.66
exe: 68,056,064
console.exe: 304,640
debug:
lto=none:
time: 04:12.88
exe: 73,480,704
console.exe: 308,224
lto=thin:
time: 05:03.34
exe: 86,334,976
console.exe: 308,224 |
Could you check |
This PR
master
|
Oof. Then maybe we should prevent using |
Note that:
may be a sign of mixing object files compiled with different settings. Did you try a scratch build with |
I tried a from-scratch build, though it's possible that some lingering remnants stuck around somewhere. It's something I'll dig into later, as it's an insane timesink to even attempt to debug |
Yeah and honestly, given current findings on LLVM "full" LTO, I'd be tempted to say we might not even want to offer it as an option. Maybe we should just have |
Thanks! |
lto=auto
prefer ThinLTO over full LTO for LLVM targets #96785While testing LTO in a
clang-cl
environment for the above PR, I realized that the link flags were incorrectly setup:lto=thin
lto=full
This was fixed by changing the arguments to MSVC syntax, as both the linker & AR tools accept the MSVC values.