[5.6][build] Make it easier to cross-compile the stdlib and use it #40976
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.
Cherrypick of #40633 and #40707
Explanation: Cross-compiling the stdlib and using it as an external SDK, ie not within any toolchain, had these installation blemishes. The symlink to the clang headers would assume the stdlib was installed in a Swift toolchain alongside clang so it used a relative path before, but no longer does when building a standalone stdlib. It would also assume that the cross-compiled toolchain needed to be kept separate from a native one so it appended a subdirectory named after the cross-compile target to the install destdir, which I added a flag to disable.
Scope: This is all build-related and only used for cross-compilation, with most of it disabled by default because of the new build flag.
SR Issue: None
Risk: Low, disabled by default or for common build configurations
Testing: I apply both pulls on my daily Android CI when cross-compiling the stdlib.
Reviewer: @compnerd