BuildPlan: infer -lc++
based on run-time triple
#6581
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.
Currently, when cross-compiling from Darwin to platforms that don't expect
-lc++
by default (e.g. most Linux distributions), the build will fail because-lc++
is always passed. When should check the destination triple and not the host triple in the build plan code paths.This leads to confusing build errors when cross-compiling more complex projects like Vapor.
rdar://107487090
Modifications:
Modified
BuildPlan.swift
to check the value of thetriple
property instead ofhostTriple
. Added a test that verifies this cross-compilation case.Result:
Projects that contain C++ can now be cross-compiled from macOS to Linux.