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
47 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
KristofferC pushed a commit that referenced this pull request Oct 10, 2025
…50874)" (#59736)

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+

(cherry picked from commit 1cba9c2)
KristofferC pushed a commit that referenced this pull request Oct 12, 2025
…50874)" (#59736)

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+

(cherry picked from commit 1cba9c2)
KristofferC pushed a commit that referenced this pull request Oct 14, 2025
…50874)" (#59736)

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+

(cherry picked from commit 1cba9c2)
@KristofferC KristofferC mentioned this pull request Oct 21, 2025
35 tasks
@KristofferC KristofferC removed the backport 1.12 Change should be backported to release-1.12 label Oct 23, 2025
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support multi-threading for large images on Windows.

4 participants