Closed
Description
Description
I've looked through the P/Invokes in System.Private.CoreLib.dll, and these don't have a corresponding native entry point in libSystem.Globalization.Native.a:
GlobalizationNative_GetLatestJapaneseEra
GlobalizationNative_CloseSortHandle
GlobalizationNative_CompareString
GlobalizationNative_IndexOf
GlobalizationNative_LastIndexOf
GlobalizationNative_GetSortKey
GlobalizationNative_GetSortVersion
GlobalizationNative_GetICUVersion
GlobalizationNative_IsNormalized
GlobalizationNative_NormalizeString
GlobalizationNative_GetCalendars
GlobalizationNative_GetCalendarInfo
GlobalizationNative_EnumCalendarInfo
GlobalizationNative_GetJapaneseEraStartDate
GlobalizationNative_ChangeCase
GlobalizationNative_ChangeCaseInvariant
GlobalizationNative_ChangeCaseTurkish
GlobalizationNative_GetSortHandle
GlobalizationNative_StartsWith
GlobalizationNative_EndsWith
GlobalizationNative_GetLocaleName
GlobalizationNative_GetLocaleInfoString
GlobalizationNative_GetDefaultLocaleName
GlobalizationNative_IsPredefinedLocale
GlobalizationNative_GetLocaleTimeFormat
GlobalizationNative_GetLocaleInfoInt
GlobalizationNative_GetLocaleInfoGroupingSizes
GlobalizationNative_GetLocales
GlobalizationNative_GetTimeZoneDisplayName
Tested with: 9.0.0-alpha.1.23619.7
This started happening in this maestro bump: dotnet/macios#19690, which has this range of commits: c282395...6f4f268, and looking through the commits I'm guessing this is the culprit: #93220
CC @mkhamoyan
Reproduction Steps
Do something like this:
cd packages/microsoft.netcore.app.runtime.mono.ios-arm64/9.0.0-alpha.1.23619.7/runtimes/ios-arm64/native
for symbol in $(monodis System.Private.CoreLib.dll | grep 'pinvokeimpl.*libSystem.Globalization.Native' | sed -e 's/.*as "//' -e 's/".*//'); do
if ! nm libSystem.Globalization.Native.a|grep "_$symbol\$">/dev/null; then
echo "NOT FOUND: $symbol"
fi
done
Expected behavior
No symbols should be reported.
Actual behavior
NOT FOUND: GlobalizationNative_GetLatestJapaneseEra
NOT FOUND: GlobalizationNative_CloseSortHandle
NOT FOUND: GlobalizationNative_CompareString
NOT FOUND: GlobalizationNative_IndexOf
NOT FOUND: GlobalizationNative_LastIndexOf
NOT FOUND: GlobalizationNative_GetSortKey
NOT FOUND: GlobalizationNative_GetSortVersion
NOT FOUND: GlobalizationNative_GetICUVersion
NOT FOUND: GlobalizationNative_IsNormalized
NOT FOUND: GlobalizationNative_NormalizeString
NOT FOUND: GlobalizationNative_GetCalendars
NOT FOUND: GlobalizationNative_GetCalendarInfo
NOT FOUND: GlobalizationNative_EnumCalendarInfo
NOT FOUND: GlobalizationNative_GetJapaneseEraStartDate
NOT FOUND: GlobalizationNative_ChangeCase
NOT FOUND: GlobalizationNative_ChangeCaseInvariant
NOT FOUND: GlobalizationNative_ChangeCaseTurkish
NOT FOUND: GlobalizationNative_GetSortHandle
NOT FOUND: GlobalizationNative_StartsWith
NOT FOUND: GlobalizationNative_EndsWith
NOT FOUND: GlobalizationNative_GetLocaleName
NOT FOUND: GlobalizationNative_GetLocaleInfoString
NOT FOUND: GlobalizationNative_GetDefaultLocaleName
NOT FOUND: GlobalizationNative_IsPredefinedLocale
NOT FOUND: GlobalizationNative_GetLocaleTimeFormat
NOT FOUND: GlobalizationNative_GetLocaleInfoInt
NOT FOUND: GlobalizationNative_GetLocaleInfoGroupingSizes
NOT FOUND: GlobalizationNative_GetLocales
NOT FOUND: GlobalizationNative_GetTimeZoneDisplayName
Regression?
Yes.
Known Workarounds
None - note that this is breaking our build, so we can't take any maestro bumps until this is fixed.
Configuration
No response
Other information
No response