-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[Stdlib][Frontend][CMake] Remove SWIFT_DARWIN_ENABLE_STABLE_ABI_BIT option, make it permanently on. #23235
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
[Stdlib][Frontend][CMake] Remove SWIFT_DARWIN_ENABLE_STABLE_ABI_BIT option, make it permanently on. #23235
Conversation
@swift-ci please test |
LGTM modulo the couple of questions. Glad to see that you got around to that bit of review comments :-) |
Class cls = objc_getClass("_TtCs19__EmptyArrayStorage"); | ||
if (!cls) abort(); | ||
uintptr_t *words = (uintptr_t *)cls; | ||
if ((words[4] & 3) != 2) return false; // wrong stable is-Swift bit | ||
return true; | ||
// This check can be removed after SWIFT_CLASS_IS_SWIFT_MASK is made | ||
// static everywhere. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What check is this referring to?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I messed up the change here, and the comment is supposed to replace the removed comment above it and refer to the "wrong stable is-Swift bit" check.
@@ -138,7 +138,7 @@ namespace swift { | |||
|
|||
/// On Darwin platforms, use the pre-stable ABI's mark bit for Swift | |||
/// classes instead of the stable ABI's bit. | |||
bool UseDarwinPreStableABIBit = !bool(SWIFT_DARWIN_ENABLE_STABLE_ABI_BIT); | |||
bool UseDarwinPreStableABIBit = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does this guard at this point?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The compiler still needs to emit the pre-stable ABI bit when targeting OSes prior to 10.14.4 and corresponding releases. This option controls that. It gets set based on the target OS version here: https://github.com/apple/swift/pull/23235/files#diff-487c2f92307618024a8f8f553589405dR431
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would you mind putting a reference to that in a comment? It seems like it would be something that could get dropped at some point (when 10.14.4 is EOL'ed).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, I'll do that. Given that we still support 10.9 that might be a while, but it would be good to explain.
d7aaad3
to
e4514da
Compare
@swift-ci please test |
Build failed |
Build failed |
…ption, make it permanently on.
e4514da
to
597dcd8
Compare
@swift-ci please smoke test and merge |
1 similar comment
@swift-ci please smoke test and merge |
No description provided.