Skip to content

[5.9] fix apple and darwin triples disambiguation #6722

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 19, 2023

Conversation

MaxDesiatov
Copy link
Contributor

@MaxDesiatov MaxDesiatov commented Jul 18, 2023

Cherry-pick of #6478.

Fixes a bug where all triples with vendor apple are considered to be OS variants of darwin. This change special cases apple-none to not match Triple.isDarwin(), but all other "apple-*" triples will still be considered to be a variant darwin.

Fixes some fallout of making the above change to check for the newly added Triple.isApple() instead of Triple.isDarwin() to allow the triple apple-none to opt into behaviors like dead stripping, using libtool, etc.

As a result of these changes SwiftPM no longer appends a macOS version number to the armv7em-apple-none-macho triple (e.g. armv7em-apple-none-macho10.13) removing the work around of passing -target armv7em-apple-none-macho as CLI options or via a toolset.json.

Additionally SwiftPM no longer passes unexpected -rpath args to the linker when building a static binary for armv7em-apple-none-macho.

# Conflicts:
#	Tests/BasicsTests/TripleTests.swift

Cherry-pick of #6478.

Fixes a bug where all triples with vendor `apple` are considered to be OS variants of `darwin`. This change special cases `apple-none` to not match `Triple.isDarwin()`, but all other "apple-*" triples will still be
considered to be a variant `darwin`.

Fixes some fallout of making the above change to check for the newly added `Triple.isApple()` instead of `Triple.isDarwin()` to allow the triple `apple-none` to opt into behaviors like dead stripping, using
libtool, etc.

As a result of these changes SwiftPM no longer appends a macOS version number to the `armv7em-apple-none-macho` triple (e.g. `armv7em-apple-none-macho10.13`) removing the work around of passing `-target armv7em-apple-none-macho` via cli args or via a `toolset.json`.

Additionally SwiftPM no longer passes unexpected `-rpath` args to the linker when building a static binary for `armv7em-apple-none-macho`.

# Conflicts:
#	Tests/BasicsTests/TripleTests.swift
@MaxDesiatov MaxDesiatov added bug swift 5.9 This PR targets the 5.9 branch cross-compilation labels Jul 18, 2023
@MaxDesiatov MaxDesiatov requested a review from rauhul July 18, 2023 21:59
@MaxDesiatov
Copy link
Contributor Author

@swift-ci smoke test

@MaxDesiatov MaxDesiatov merged commit 26b0b77 into release/5.9 Jul 19, 2023
@MaxDesiatov MaxDesiatov deleted the maxd/apple-triples branch July 19, 2023 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug cross-compilation swift 5.9 This PR targets the 5.9 branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants