SwiftDriver: enable response files on LinkJobs #999
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The non-Darwin targets use clang as the linker driver. As a result, the
non-Darwin targets implicitly support response files (clang will expand
it if the linker does not support response files or file lists).
Unfortunately, the Darwin target manually invokes ld, which requires
re-implementing the handling there. To complicate things further, older
ld64 does not support response files, but does support linker file
lists, while newer ld64 supports both. Ideally, Darwin would also use
clang as the linker driver to homogenise the paths.
This is required for Windows support as the command line limit is much
lower on Windows than on Linux - nearing 4k which is possible to exceed
when building a larger project (e.g. swift-driver).