Skip to content

Numerous GlobalizationNative P/Invokes in System.Private.CoreLib.dll don't have a corresponding native function anymore #96251

Closed
@rolfbjarne

Description

@rolfbjarne

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

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions