[PATCH v20 0/17] MR7111: support building Wine with LTO
relevant bug reports: - https://bugs.winehq.org/show_bug.cgi?id=41712 - https://bugs.winehq.org/show_bug.cgi?id=51051 -- v20: ntoskrnl: move i386 specific Rtl*ByteSwap() into separate source. ntoskrnl: move _chkstk() / __chkstk() into separate source. msvcrt: move i386 specific _ftol() into separate source. kernel32: move x86-64 specific GetProcAddress() into separate source. kernel32: move i386 specific Interlocked*() into separate source. kernel32: move i386 specific ExitProcess() into separate source. kernelbase: move x86-64 specific GetProcAddress() into separate source. ntdll: move i386 specific Rtl*ByteSwap() into separate source. tools: add LTO quirks. makedep: support skipping/disabling LTO. configure: enable building Wine with LTO. makedep: support LTO builds. winegcc: support LTO builds. winebuild: support LTO builds. tools: helper functions for LTO builds. ntdll: add attribute "used" to a few symbols that should not be discarded. loader: add attribute "used" to a few symbols that should not be discarded. This merge request has too many patches to be relayed via email. Please visit the URL below to see the contents of the merge request. https://gitlab.winehq.org/wine/wine/-/merge_requests/7111
The rebase against d671927488486b8541cc235a73c94989a21e9caa does not link for me using lto with new WOW64 enabled. It errors out complaining about \__wine_setjmpex and \__wine_longjmp on x86_64. It seems that those are used in dlls/msvcrt/except_i386.c, dlls/msvcrt/except_x86_64.c, dlls/winecrt0/exception.c, include/wine/exception.h in addition to the already excluded dlls/winecrt0/setjmp.c. In tools/widl/typegen.c it is also generating idl's with it somewhere. I tried adding all of those to the exclude list but it still errors the same during link phase. Maybe because many things are inheriting include/wine/exception.h? This PR seems kinda broken at the moment for new WOW64. Is there some way to avoid notifying all the @'d parties and reviewers? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7111#note_125484
@servantoftestator this PR was fully working as of 10.20 release. Currently I can't test it due to heavy work on MinGW-W64 toolchain (nitpicking here and there), maybe I'll reach Wine on this weekend. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7111#note_125521
participants (2)
-
Konstantin Demin (@rockdrilla) -
servantoftestator (@servantoftestator)