|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
871a78ee |
| 18-Jul-2022 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Implement the --exclude-symbols option
This adds support for the existing GNU ld command line option, which allows excluding individual symbols from autoexport (when linking a DLL and
[LLD] [MinGW] Implement the --exclude-symbols option
This adds support for the existing GNU ld command line option, which allows excluding individual symbols from autoexport (when linking a DLL and no symbols are marked explicitly as dllexported).
Differential Revision: https://reviews.llvm.org/D130118
(cherry picked from commit d1da6469f9ea9b078276ee2e098241f0440468be)
show more ...
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5 |
|
| #
aefa1116 |
| 10-Jun-2022 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Implement --disable-reloc-section, mapped to /fixed
Since binutils 2.36, GNU ld defaults to emitting base relocations, and that version added the new option --disable-reloc-section to
[LLD] [MinGW] Implement --disable-reloc-section, mapped to /fixed
Since binutils 2.36, GNU ld defaults to emitting base relocations, and that version added the new option --disable-reloc-section to disable it.
Differential Revision: https://reviews.llvm.org/D127478
show more ...
|
|
Revision tags: llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init |
|
| #
460830a9 |
| 29-Jan-2022 |
Mateusz Mikuła <[email protected]> |
[LLD][MinGW] Add --heap argument support
Noticed in https://github.com/msys2/MINGW-packages/pull/10567.
Differential Revision: https://reviews.llvm.org/D118405
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
| #
83d59e05 |
| 20-Jan-2022 |
Alexandre Ganea <[email protected]> |
Re-land [LLD] Remove global state in lldCommon
Move all variables at file-scope or function-static-scope into a hosting structure (lld::CommonLinkerContext) that lives at lldMain()-scope. Drivers wi
Re-land [LLD] Remove global state in lldCommon
Move all variables at file-scope or function-static-scope into a hosting structure (lld::CommonLinkerContext) that lives at lldMain()-scope. Drivers will inherit from this structure and add their own global state, in the same way as for the existing COFFLinkerContext.
See discussion in https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html
The previous land f860fe362282ed69b9d4503a20e5d20b9a041189 caused issues in https://lab.llvm.org/buildbot/#/builders/123/builds/8383, fixed by 22ee510dac9440a74b2e5b3fe3ff13ccdbf55af3.
Differential Revision: https://reviews.llvm.org/D108850
show more ...
|
| #
e6b15394 |
| 16-Jan-2022 |
Alexandre Ganea <[email protected]> |
Revert [LLD] Remove global state in lldCommon
It seems to be causing issues on https://lab.llvm.org/buildbot/#/builders/123/builds/8383
|
| #
f860fe36 |
| 16-Jan-2022 |
Alexandre Ganea <[email protected]> |
[LLD] Remove global state in lldCommon
Move all variables at file-scope or function-static-scope into a hosting structure (lld::CommonLinkerContext) that lives at lldMain()-scope. Drivers will inher
[LLD] Remove global state in lldCommon
Move all variables at file-scope or function-static-scope into a hosting structure (lld::CommonLinkerContext) that lives at lldMain()-scope. Drivers will inherit from this structure and add their own global state, in the same way as for the existing COFFLinkerContext.
See discussion in https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html
Differential Revision: https://reviews.llvm.org/D108850
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2 |
|
| #
f8340c8c |
| 11-Aug-2021 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Add more options for disabling flags in the executable
In e72403f96de7f1c681acd5968f72aa986412dfce, we added the flag "--no-dynamicbase" for disabling the dynamicbase flag which we set
[LLD] [MinGW] Add more options for disabling flags in the executable
In e72403f96de7f1c681acd5968f72aa986412dfce, we added the flag "--no-dynamicbase" for disabling the dynamicbase flag which we set by default. At the time, ld.bfd didn't have any corresponding option (as ld.bfd defaulted to not setting the flag). Almost at the same time, corresponding options were added to ld.bfd for disabling it (while it was being enabled by default), with a different name, "--disable-dynamicbase".
Thus add the "--disable-dynamicbase" option. Make this default one advertised in the help listing, but keep the "--no-dynamicbase" form as an alias. Also improve checking for the last option set if there are multiple ones on the same command line.
Also add corresponding disable options for a lot of other flags that we set by default, also added in ld.bfd in the same commit: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=514b4e191d5f46de8e142fe216e677a35fa9c4bb
Differential Revision: https://reviews.llvm.org/D107930
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3 |
|
| #
ce211c50 |
| 17-Jun-2021 |
Martin Storsjö <[email protected]> |
[LLD] [COFF] Fix up missing stdcall decorations in MinGW mode
If linking directly against a DLL without an import library, the DLL export symbols might not contain stdcall decorations.
If we have a
[LLD] [COFF] Fix up missing stdcall decorations in MinGW mode
If linking directly against a DLL without an import library, the DLL export symbols might not contain stdcall decorations.
If we have an undefined symbol with decoration, and we happen to have a matching undecorated symbol (which either is lazy and can be loaded, or already defined), then alias it against that instead.
This matches what's done in reverse, when we have a def file declaring to export a symbol without decoration, but we only have a defined decorated symbol. In that case we do a fuzzy match (SymbolTable::findMangle). This case is more straightforward; if we have a decorated undefined symbol, just strip the decoration and look for the corresponding undecorated symbol name.
Add warnings and options for either silencing the warning or disabling the whole feature, corresponding to how ld.bfd does it.
(This feature works for any symbol decoration mismatch, not only when linking against a DLL directly; ld.bfd also tolerates it anywhere, and also fixes up mismatches in the other direction, like SymbolTable::findMangle, for any symbol, not only exports. But in practice, at least for lld, it would primarily end up used for linking against DLLs.)
Differential Revision: https://reviews.llvm.org/D104532
show more ...
|
| #
c09e5e50 |
| 17-Jun-2021 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Allow linking to DLLs directly
As the COFF linker is capable of linking directly against a DLL now (after D104530, as long as it is running in mingw mode), don't error out here but suc
[LLD] [MinGW] Allow linking to DLLs directly
As the COFF linker is capable of linking directly against a DLL now (after D104530, as long as it is running in mingw mode), don't error out here but successfully load libraries specified with "-l" from DLLs if that's what ld.bfd would have matched.
Differential Revision: https://reviews.llvm.org/D104531
show more ...
|
| #
f1e2d585 |
| 24-Jun-2021 |
Fangrui Song <[email protected]> |
[OptTable] Rename PrintHelp to printHelp
To be consistent with other member functions and match the coding standard.
|
| #
3c6f8ca7 |
| 24-Jun-2021 |
Martin Storsjö <[email protected]> |
[lld] Rename StringRef _lower() method calls to _insensitive()
|
| #
fdf54f5c |
| 18-Jun-2021 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Print the lld-link command to stderr
This is consistent with how clang prints its internal commands with -### and -v.
When linking with -verbose, we get log messages from the actual l
[LLD] [MinGW] Print the lld-link command to stderr
This is consistent with how clang prints its internal commands with -### and -v.
When linking with -verbose, we get log messages from the actual linking written to stderr. By printing the command to the same stream, we make sure they appear in a sensible chronological order.
Differential Revision: https://reviews.llvm.org/D104527
show more ...
|
| #
1c8bb625 |
| 18-Jun-2021 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Print errors/warnings in lld-link with a "ld.lld" prefix
Pass the original argv[0] to the coff linker, as the coff linker uses the basename of argv[0] as the log prefix.
This makes er
[LLD] [MinGW] Print errors/warnings in lld-link with a "ld.lld" prefix
Pass the original argv[0] to the coff linker, as the coff linker uses the basename of argv[0] as the log prefix.
This makes error messages to be printed with a "ld.lld:" prefix instead of "lld-link:". The current "lld-link:" prefix can be confusing to users, as they're invoking the MinGW linker (and might not even have a lld-link executable).
Keep the first argument as lld-link when printing the command line, to make it an actually reproducible standalone command.
Differential Revision: https://reviews.llvm.org/D104526
show more ...
|
|
Revision tags: llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
| #
dd7575ba |
| 18-May-2021 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Pass the canExitEarly parameter through properly
The MinGW driver passed a hardcoded true to this parameter since 6f4e255219f2a7878d3, but when the MinGW driver got the canExitEarly pa
[LLD] [MinGW] Pass the canExitEarly parameter through properly
The MinGW driver passed a hardcoded true to this parameter since 6f4e255219f2a7878d3, but when the MinGW driver got the canExitEarly parameter for consistency in b11386f9be9b2dc7276, this call was missed so it wasn't passed on properly.
show more ...
|
| #
84306ef9 |
| 17-May-2021 |
Mateusz Mikuła <[email protected]> |
[LLD][MinGW] Add --fatal-warnings and --no-fatal-warnings flags
Differential Revision: https://reviews.llvm.org/D102514
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1 |
|
| #
248e3450 |
| 30-Dec-2020 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Pass the --demangle and --no-demangle options to the COFF linker
Differential Revision: https://reviews.llvm.org/D93950
|
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6 |
|
| #
3785a413 |
| 06-Oct-2020 |
Martin Storsjö <[email protected]> |
Reapply [LLD] [COFF] Implement a GNU/ELF like -wrap option
Add a simple forwarding option in the MinGW frontend, and implement the private -wrap option in the COFF linker.
The feature in lld-link i
Reapply [LLD] [COFF] Implement a GNU/ELF like -wrap option
Add a simple forwarding option in the MinGW frontend, and implement the private -wrap option in the COFF linker.
The feature in lld-link isn't gated by the -lldmingw option, but the option is left as a private, undocumented option primarily used by the MinGW driver.
The implementation is significantly based on the support for --wrap in the ELF linker, but many small nuance details are different between the ELF and COFF linkers, ending up with more than a few implementation differences.
This fixes https://bugs.llvm.org/show_bug.cgi?id=47384.
Differential Revision: https://reviews.llvm.org/D89004
Reapplied with the bitfield member canInline fixed so it doesn't break builds targeting windows.
show more ...
|
| #
3d338f68 |
| 15-Oct-2020 |
Arthur Eubanks <[email protected]> |
Revert "[LLD] [COFF] Implement a GNU/ELF like -wrap option"
This reverts commit a012c704b5e5b60f9d2a7304d27cbc84a3619571.
Breaks Windows builds.
C:\src\llvm-mint\lld\COFF\Symbols.cpp(26,1): error:
Revert "[LLD] [COFF] Implement a GNU/ELF like -wrap option"
This reverts commit a012c704b5e5b60f9d2a7304d27cbc84a3619571.
Breaks Windows builds.
C:\src\llvm-mint\lld\COFF\Symbols.cpp(26,1): error: static_assert failed due to requirement 'sizeof(lld::coff::SymbolUnion) <= 48' "symbols should be optimized for memory usage" static_assert(sizeof(SymbolUnion) <= 48,
show more ...
|
| #
a012c704 |
| 06-Oct-2020 |
Martin Storsjö <[email protected]> |
[LLD] [COFF] Implement a GNU/ELF like -wrap option
Add a simple forwarding option in the MinGW frontend, and implement the private -wrap option in the COFF linker.
The feature in lld-link isn't gat
[LLD] [COFF] Implement a GNU/ELF like -wrap option
Add a simple forwarding option in the MinGW frontend, and implement the private -wrap option in the COFF linker.
The feature in lld-link isn't gated by the -lldmingw option, but the option is left as a private, undocumented option primarily used by the MinGW driver.
The implementation is significantly based on the support for --wrap in the ELF linker, but many small nuance details are different between the ELF and COFF linkers, ending up with more than a few implementation differences.
This fixes https://bugs.llvm.org/show_bug.cgi?id=47384.
Differential Revision: https://reviews.llvm.org/D89004
show more ...
|
| #
61e2f9fa |
| 04-Oct-2020 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Support setting the subsystem version via the subsystem argument
If a version is specified both with --{major,minor}-subsystem-version and with --subsystem <name>:<version>, the one sp
[LLD] [MinGW] Support setting the subsystem version via the subsystem argument
If a version is specified both with --{major,minor}-subsystem-version and with --subsystem <name>:<version>, the one specified last (that actually sets a version) takes precedance in GNU ld; thus doing the same here.
Differential Revision: https://reviews.llvm.org/D88804
show more ...
|
| #
bc8f3b42 |
| 04-Oct-2020 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Simplify handling of os/subsystem version
As they can be set independently after D88802, we can get rid of a bit of extra code - simplifying the logic here before adding more complicat
[LLD] [MinGW] Simplify handling of os/subsystem version
As they can be set independently after D88802, we can get rid of a bit of extra code - simplifying the logic here before adding more complication to it later.
Differential Revision: https://reviews.llvm.org/D88803
show more ...
|
|
Revision tags: llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3 |
|
| #
e72403f9 |
| 26-Aug-2020 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Enable dynamicbase by default
This matches lld-link's own default.
Add a new command line option --no-dynamicbase for disabling it. (Unfortunately, GNU ld doesn't yet have a matching
[LLD] [MinGW] Enable dynamicbase by default
This matches lld-link's own default.
Add a new command line option --no-dynamicbase for disabling it. (Unfortunately, GNU ld doesn't yet have a matching --no-dynamicbase option, as that's the default there.)
Differential Revision: https://reviews.llvm.org/D86654
show more ...
|
| #
c82078b5 |
| 26-Aug-2020 |
Mateusz Mikuła <[email protected]> |
[LLD][MinGW] Handle allow-multiple-definition flag
Basically copied from ELF driver.
Differential Revision: https://reviews.llvm.org/D86512
|
|
Revision tags: llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1 |
|
| #
745eb024 |
| 27-Jul-2020 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Implement the --no-seh flag
Previously this flag was just ignored. If set, set the IMAGE_DLL_CHARACTERISTICS_NO_SEH bit, regardless of the normal safeSEH machinery.
In mingw configura
[LLD] [MinGW] Implement the --no-seh flag
Previously this flag was just ignored. If set, set the IMAGE_DLL_CHARACTERISTICS_NO_SEH bit, regardless of the normal safeSEH machinery.
In mingw configurations, the safeSEH bit might not be set in e.g. object files built from handwritten assembly, making it impossible to use the normal safeseh flag. As mingw setups don't generally use SEH on 32 bit x86 at all, it should be fine to set that flag bit though - hook up the existing GNU ld flag for controlling that.
Differential Revision: https://reviews.llvm.org/D84701
show more ...
|
|
Revision tags: llvmorg-12-init |
|
| #
92f7bd3a |
| 13-Jul-2020 |
Martin Storsjö <[email protected]> |
[LLD] [MinGW] Implement the --file-alignment and --section-alignment options
Differential Revision: https://reviews.llvm.org/D83720
|