Skip to content

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 dotnet#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 dotnet: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 dotnet/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 dotnet/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