-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
[release/8.0-staging] Always keep global symbols on ApplePlatforms #99650
[release/8.0-staging] Always keep global symbols on ApplePlatforms #99650
Conversation
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas |
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.
approved. we will treat this one as tell mode. please get a code review
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.
LGTM
quick question before merging - what, if any, is the expected impact on output size? Marginal increase? |
@am11 Did you happen to check the binary size impact of this change? |
The problem was that on macOS, we weren't exporting
Yes #99504 (comment) (32-48 bytes increase depending on alignment?). We are only exporting one symbol by default for executables:
If user is setting IlcExportUnmanagedEntrypoints=true without OutputType=Exe, and the app has lots of exported symbols, then it will add 32-48 bytes for each. Those preconditions are unlikely and the size overhead is negligible. |
failures are known issues |
Backport of #99504 to release/8.0-staging
/cc @mikem8361 @am11
Customer Impact
The Native AOT SOS support will not work on MacOS without this fix.
Regression
Testing
Manual testing by creating a Native AOT MacOS core dump with this change and running the Native AOT SOS support.
Risk
Low. It only changes the symbol stripping logic to not strip export symbols.