Skip to content

Conversation

topolarity
Copy link
Member

This reverts commit eb4416b.

As of LLVM 16, we automatically emit:

.drectve `-exclude-symbols:"<symbol>"`

which mitigates this issue where it is supported by the linker (GCC 11+ and LLD 14+ are tested working)

PackageCompiler on Windows now ships GCC 14 (JuliaLang/PackageCompiler.jl#1012), so we should no longer need this workaround that can make a 15-minute sysimage compilation take an hour+

@topolarity topolarity linked an issue Oct 3, 2025 that may be closed by this pull request
@topolarity topolarity added backport 1.11 Change should be backported to release-1.11 backport 1.12 Change should be backported to release-1.12 labels Oct 3, 2025
@DilumAluthge
Copy link
Member

So, with this reversion, PackageCompiler will have a new GCC version requirement (GCC 11+), right? Does that requirement only apply to Windows, or does it also apply to Linux and maCOS?

@topolarity
Copy link
Member Author

PackageCompiler will have a new GCC version requirement (GCC 11+), right?

Yes - slightly older might be OK too, but GCC 8 is definitely not supported. It spits out:

Warning: .drectve `-exclude-symbols:jl_fvar_count_9 ' unrecognized
Warning: .drectve `-exclude-symbols:jl_fvar_ptrs_9 ' unrecognized
Warning: .drectve `-exclude-symbols:jl_clone_slots_9 ' unrecognized
Warning: .drectve `-exclude-symbols:jl_clone_idxs_9 ' unrecognized

when used on Julia 1.11+ (JuliaLang/PackageCompiler.jl#918)

Does that requirement only apply to Windows, or does it also apply to Linux and maCOS?

It should only apply to Windows / COFF (where we rely on these directives)

…50874)"

This reverts commit eb4416b.

As of LLVM 16, we automatically emit:
.drectve `-exclude-symbols:"<symbol>"`

which mitigates this issue where it is supported by the linker (which
is the case for at least GCC 11+ and LLD 14+). PackageCompiler on Windows
now ships GCC 14 (JuliaLang/PackageCompiler.jl#1012),
so we should no longer need this workaround that can make a 15-minute
sysimage compilation take an hour+
@DilumAluthge
Copy link
Member

SGTM. We bundle the gcc on Windows. In theory people could override with their own gcc, so in theory we should document the Windows-specfici gcc 11+ requirement somewhere. But most people will use the bundled gcc on Windows, so it's not super pressing to add the docs.

@KristofferC KristofferC mentioned this pull request Oct 6, 2025
44 tasks
@topolarity topolarity merged commit 1cba9c2 into master Oct 7, 2025
7 checks passed
@topolarity topolarity deleted the ct/revert-50874 branch October 7, 2025 13:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport 1.11 Change should be backported to release-1.11 backport 1.12 Change should be backported to release-1.12
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support multi-threading for large images on Windows.
2 participants