Skip to content

Commit

Permalink
Removefeature globalization (#26)
Browse files Browse the repository at this point in the history
* Android & ARM64: FEATURE_EMULATED_TLS (dotnet#8323)

Android on ARM64 doesn't follow the recommended way how to implement Thread Local Storage (TLS). Instead they are using a custom solution when a __thread variable is used. This solution requires that internally always a C function needs to be called when a TLS variable is access. While the compiler and linker take care of all the c/c++ code the helper code written in assembler needs to be modified. 

This implements the changes for the current thread and thunks data TLS variable. It would work on systems that follow the recommended implementation, too. But as it has a larger overhead compared to the current inlined solution it needs to be activated for systems with this issue by using FEATURE_EMULATED_TLS

* Fix removefeature:Globalization

- Fix for the name of the libary that is used to remove the dependency to the native code
  • Loading branch information
RalfKornmannEnvision authored Sep 14, 2020
1 parent 05adeaa commit 03d9ebb
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/ILCompiler/src/RemovingILProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ owningType is Internal.TypeSystem.Ecma.EcmaType mdType &&
}

// Make sure that there are no ICU dependencies left
if (method.IsPInvoke && method.GetPInvokeMethodMetadata().Module == "System.Globalization.Native")
if (method.IsPInvoke && method.GetPInvokeMethodMetadata().Module == "libSystem.Globalization.Native")
{
return RemoveAction.ConvertToThrow;
}
Expand Down

0 comments on commit 03d9ebb

Please sign in to comment.