Skip to content

[mono] [net7] Stop exporting ICU symbols from Mono #100063

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

Conversation

matouskozak
Copy link
Member

@matouskozak matouskozak commented Mar 21, 2024

Description

This is a .NET 7 version of #99449 fix for #98941.

Customer Impact

  • Customer reported
  • Found internally

When running against the latest XCode, the iOS 17.4 simulator causes our apps to crash due to a symbols clash between their version of ICU and our version. Prior to this change, by default we had been exporting all our symbols and been lucky due to the ICU versions matching. To fix, we hide our symbols via -hidden-lx so that there is no longer a clash.

NOTE 1: There is no known workaround for .NET 7 at the moment. The .NET 8 workaround to link Mono statically from #98941 doesn't work. (cc @rolfbjarne)

NOTE 2: This does not impact .NET 9 as we have moved away from shipping our own version of ICU on iOS.

Regression

  • Yes
  • No

Testing

We verified the fix thru manually copying new version of libmonosgen-2.0.dylib into local version of dotnet (/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64/7.0.17/runtimes/iossimulator-arm64/native) and re-building the crashing app. Currently, we are unable to verify this E2E by using a template iOS app with custom runtime due to issues with trampolines.

Risk

Low, but since we were unable to verify E2E with a template app, there may be more churn required if the iOS SDK team finds any issues.


Contributed: @ivanpovazan
fyi: @vitek-karas @akoeplinger @steveisok @dalexsoto @mkhamoyan @rolfbjarne

Copy link
Contributor

Tagging subscribers to this area: @directhex
See info in area-owners.md if you want to be subscribed.

@matouskozak matouskozak added this to the 7.0.x milestone Mar 21, 2024
@matouskozak matouskozak added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Mar 21, 2024
@matouskozak matouskozak marked this pull request as ready for review March 21, 2024 08:35
@steveisok steveisok added the Servicing-consider Issue for next servicing release review label Mar 21, 2024
@jeffschwMSFT jeffschwMSFT removed the Servicing-consider Issue for next servicing release review label Mar 21, 2024
@matouskozak matouskozak removed the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Mar 25, 2024
@jeffschwMSFT jeffschwMSFT added the Servicing-consider Issue for next servicing release review label Mar 25, 2024
@matouskozak
Copy link
Member Author

/azp run runtime-extra-platforms

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants