Skip to content
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

Disable objc_msgSend stubs in clang. Fixes #16223. #16231

Merged

Conversation

rolfbjarne
Copy link
Member

Clang will by default emit objc_msgSend stubs in Xcode 14, which ld from
earlier Xcodes doesn't understand. We disable this by passing
-fno-objc-msgsend-selector-stubs to clang.

Ref: https://developer.apple.com/videos/play/wwdc2022/110363/
Ref: https://www.wwdcnotes.com/notes/wwdc22/110363/
Ref: llvm/llvm-project#56034

Fixes #16223.

Clang will by default emit objc_msgSend stubs in Xcode 14, which ld from
earlier Xcodes doesn't understand. We disable this by passing
-fno-objc-msgsend-selector-stubs to clang.

Ref: https://developer.apple.com/videos/play/wwdc2022/110363/
Ref: https://www.wwdcnotes.com/notes/wwdc22/110363/
Ref: llvm/llvm-project#56034

Fixes xamarin#16223.
@rolfbjarne rolfbjarne added the bug If an issue is a bug or a pull request a bug fix label Oct 4, 2022
@rolfbjarne
Copy link
Member Author

/sudo backport release/7.0.1xx-xcode14-rc2

@rolfbjarne
Copy link
Member Author

/sudo backport release/net7.0-xcode14

@vs-mobiletools-engineering-service2
Copy link
Collaborator

Backport Job to branch release/7.0.1xx-xcode14-rc2 Created! The magic is happening here

@vs-mobiletools-engineering-service2
Copy link
Collaborator

Backport Job to branch release/net7.0-xcode14 Created! The magic is happening here

@vs-mobiletools-engineering-service2
Copy link
Collaborator

Hooray! Backport succeeded! Please see https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=6778187 for more details.

@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ API diff for current PR / commit

Legacy Xamarin (No breaking changes)
  • iOS (no change detected)
  • tvOS (no change detected)
  • watchOS (no change detected)
  • macOS (no change detected)
NET (empty diffs)
  • iOS: (empty diff detected)
  • tvOS: (empty diff detected)
  • MacCatalyst: (empty diff detected)
  • macOS: (empty diff detected)

❗ API diff vs stable (Breaking changes)

Legacy Xamarin (:heavy_exclamation_mark: Breaking changes :heavy_exclamation_mark:)
.NET (:heavy_exclamation_mark: Breaking changes :heavy_exclamation_mark:)
Legacy Xamarin (stable) vs .NET

✅ Generator diff

Generator diff is empty

Pipeline on Agent
Hash: f21a1085509f233ab03805c67d72d1ff8a9f7199 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

📚 [PR Build] Artifacts 📚

Packages generated

View packages

Pipeline on Agent XAMBOT-1168.Monterey'
Hash: f21a1085509f233ab03805c67d72d1ff8a9f7199 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [PR Build] Tests on macOS Mac Catalina (10.15) passed 💻

All tests on macOS Mac Catalina (10.15) passed.

Pipeline on Agent
Hash: f21a1085509f233ab03805c67d72d1ff8a9f7199 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

❌ [PR Build] Tests on macOS M1 - Mac Big Sur (11.5) failed ❌

Failed tests are:

  • monotouch-test

Pipeline on Agent
Hash: f21a1085509f233ab03805c67d72d1ff8a9f7199 [PR build]

@rolfbjarne
Copy link
Member Author

/sudo backport net7.0-xcode14

@vs-mobiletools-engineering-service2
Copy link
Collaborator

Backport Job to branch net7.0-xcode14 Created! The magic is happening here

@vs-mobiletools-engineering-service2
Copy link
Collaborator

Hooray! Backport succeeded! Please see https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=6778416 for more details.

@vs-mobiletools-engineering-service2
Copy link
Collaborator

🔥 [CI Build] Test results 🔥

Test results

❌ Tests failed on VSTS: simulator tests

0 tests crashed, 7 tests failed, 221 tests passed.

Failures

❌ bcl tests

3 tests failed, 66 tests passed.
  • [NUnit] Mono BCL tests group 1/iOS Unified 64-bits - simulator/Debug: BuildFailure
  • [NUnit] Mono BCL tests group 2/iOS Unified 64-bits - simulator/Debug: BuildFailure
  • [xUnit] Mono SystemCoreXunit Part 2/iOS Unified 64-bits - simulator/Debug: LaunchTimedOut

Html Report (VSDrops) Download

❌ introspection tests

1 tests failed, 12 tests passed.
  • introspection/watchOS 32-bits - simulator/Debug (watchOS 6.0): Crashed Known issue: HE0038)

Html Report (VSDrops) Download

❌ linker tests

2 tests failed, 63 tests passed.
  • link sdk/iOS Unified 64-bits - simulator/Release [dotnet]: LaunchTimedOut
  • link all/iOS Unified 64-bits - simulator/Debug [dotnet]: LaunchTimedOut

Html Report (VSDrops) Download

❌ mtouch tests

1 tests failed, 0 tests passed.
  • MTouch tests/NUnit: Failed (Execution failed with exit code 2)

Html Report (VSDrops) Download

Successes

✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests: All 1 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 7 tests passed. Html Report (VSDrops) Download
✅ framework: All 8 tests passed. Html Report (VSDrops) Download
✅ generator: All 2 tests passed. Html Report (VSDrops) Download
✅ interdependent_binding_projects: All 7 tests passed. Html Report (VSDrops) Download
✅ install_source: All 1 tests passed. Html Report (VSDrops) Download
✅ mac_binding_project: All 1 tests passed. Html Report (VSDrops) Download
✅ mmp: All 2 tests passed. Html Report (VSDrops) Download
✅ mononative: All 12 tests passed. Html Report (VSDrops) Download
✅ monotouch: All 23 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ xammac: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 8 tests passed. Html Report (VSDrops) Download
✅ xtro: All 2 tests passed. Html Report (VSDrops) Download

Pipeline on Agent
Hash: [PR build]

@rolfbjarne
Copy link
Member Author

@rolfbjarne rolfbjarne merged commit 71657cf into xamarin:xcode14.1 Oct 5, 2022
@rolfbjarne rolfbjarne deleted the disable-objc-msgsend-stubs branch October 5, 2022 06:43
rolfbjarne added a commit that referenced this pull request Oct 5, 2022
 #16223. (#16232)

Clang will by default emit objc_msgSend stubs in Xcode 14, which ld from
earlier Xcodes doesn't understand. We disable this by passing
-fno-objc-msgsend-selector-stubs to clang.

Ref: https://developer.apple.com/videos/play/wwdc2022/110363/
Ref: https://www.wwdcnotes.com/notes/wwdc22/110363/
Ref: llvm/llvm-project#56034

Fixes #16223.

Backport of #16231

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
rolfbjarne added a commit that referenced this pull request Oct 5, 2022
…16236)

Clang will by default emit objc_msgSend stubs in Xcode 14, which ld from
earlier Xcodes doesn't understand. We disable this by passing
-fno-objc-msgsend-selector-stubs to clang.

Ref: https://developer.apple.com/videos/play/wwdc2022/110363/
Ref: https://www.wwdcnotes.com/notes/wwdc22/110363/
Ref: llvm/llvm-project#56034

Fixes #16223.

Backport of #16231

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
akoeplinger added a commit to akoeplinger/runtime that referenced this pull request Aug 3, 2023
Applies the same fix as xamarin/xamarin-macios#16231.

We recently started seeing the same issue in our runtime builds, see dotnet#89925.
This is because the AzDO build machines use Xcode 14 but the Helix machines are still using Xcode 13 so linking an Xcode-14-built static library fails.

Fixes dotnet#89925
akoeplinger added a commit to dotnet/runtime that referenced this pull request Aug 3, 2023
Applies the same fix as xamarin/xamarin-macios#16231.

We recently started seeing the same issue in our runtime builds, see #89925. This is because the AzDO build machines use Xcode 14 now but the Helix machines are still using Xcode 13 so linking an Xcode-14-built static library fails.

This happens in e.g. libSystem.Native.a or libSystem.Globalization.Native.a (the two libraries where we're using Objective-C).

Fixes #89925
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug If an issue is a bug or a pull request a bug fix
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants