Convert System.Globalization unix calls to QCalls into coreclr (#32132)
authorSantiago Fernandez Madero <safern@microsoft.com>
Wed, 19 Feb 2020 01:06:11 +0000 (17:06 -0800)
committerGitHub <noreply@github.com>
Wed, 19 Feb 2020 01:06:11 +0000 (17:06 -0800)
commit4365af16fcf99708df04315b19eadee6e533e4bd
treece457d664bab5baa9990d3cdb60506d99461d4ba
parente771456512f1c5a1a8e443c8ff6307a9a3425d62
Convert System.Globalization unix calls to QCalls into coreclr (#32132)

* Convert System.Globalization unix calls to QCalls into coreclr

* Fix build errors, define UChar instead of using uint16_t

* Fix indentation in some header files

* Add libraries-native library to define qcalls entrypoints for libraries native shims

* Change DLLEXPORT to PALEXPORT and declare visibility hidden when in entrypoints.c

* Fix build and PALEXPORT definition

* Fix mono tests

* Fix System.Globalization tests by getting the icu version via NativeLibrary.Load

* Fix full framework build

* PR Feedback

* Revert changes in Interop.Libraries.cs

* Fix build and default version to 0.0.0.0 if pinvoke not found

* Remove __LIB_NATIVE_ENTRYPOINTS define and move icu headers to internal header file

* Add GetICUVersion to trimmer xml for mono and PR Feedback

* PR Feedback: move mono link entry to bottom
102 files changed:
src/coreclr/CMakeLists.txt
src/coreclr/src/System.Private.CoreLib/ILLinkTrim.xml
src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt
src/coreclr/src/libraries-native/CMakeLists.txt
src/coreclr/src/libraries-native/entrypoints.c [new file with mode: 0644]
src/coreclr/src/vm/dllimport.cpp
src/coreclr/src/vm/ecalllist.h
src/coreclr/src/vm/mscorlib.cpp
src/libraries/Common/src/Interop/Unix/System.Globalization.Native/Interop.ICU.cs
src/libraries/Common/tests/CoreFx.Private.TestUtilities/System/PlatformDetection.Unix.cs
src/libraries/Native/AnyOS/zlib/pal_zlib.h
src/libraries/Native/Unix/CMakeLists.txt
src/libraries/Native/Unix/Common/pal_compiler.h
src/libraries/Native/Unix/System.Globalization.Native/pal_calendarData.c
src/libraries/Native/Unix/System.Globalization.Native/pal_calendarData.h
src/libraries/Native/Unix/System.Globalization.Native/pal_casing.c
src/libraries/Native/Unix/System.Globalization.Native/pal_casing.h
src/libraries/Native/Unix/System.Globalization.Native/pal_collation.c
src/libraries/Native/Unix/System.Globalization.Native/pal_collation.h
src/libraries/Native/Unix/System.Globalization.Native/pal_errors.h
src/libraries/Native/Unix/System.Globalization.Native/pal_errors_internal.h [new file with mode: 0644]
src/libraries/Native/Unix/System.Globalization.Native/pal_icushim.c
src/libraries/Native/Unix/System.Globalization.Native/pal_icushim.h
src/libraries/Native/Unix/System.Globalization.Native/pal_icushim_internal.h [new file with mode: 0644]
src/libraries/Native/Unix/System.Globalization.Native/pal_idna.c
src/libraries/Native/Unix/System.Globalization.Native/pal_idna.h
src/libraries/Native/Unix/System.Globalization.Native/pal_locale.c
src/libraries/Native/Unix/System.Globalization.Native/pal_locale.h
src/libraries/Native/Unix/System.Globalization.Native/pal_localeNumberData.c
src/libraries/Native/Unix/System.Globalization.Native/pal_localeNumberData.h
src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.c
src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.h
src/libraries/Native/Unix/System.Globalization.Native/pal_locale_internal.h [new file with mode: 0644]
src/libraries/Native/Unix/System.Globalization.Native/pal_normalization.c
src/libraries/Native/Unix/System.Globalization.Native/pal_normalization.h
src/libraries/Native/Unix/System.Globalization.Native/pal_timeZoneInfo.c
src/libraries/Native/Unix/System.Globalization.Native/pal_timeZoneInfo.h
src/libraries/Native/Unix/System.IO.Ports.Native/pal_serial.h
src/libraries/Native/Unix/System.IO.Ports.Native/pal_termios.h
src/libraries/Native/Unix/System.Native/pal_console.h
src/libraries/Native/Unix/System.Native/pal_datetime.h
src/libraries/Native/Unix/System.Native/pal_errno.h
src/libraries/Native/Unix/System.Native/pal_interfaceaddresses.h
src/libraries/Native/Unix/System.Native/pal_io.h
src/libraries/Native/Unix/System.Native/pal_memory.h
src/libraries/Native/Unix/System.Native/pal_mount.h
src/libraries/Native/Unix/System.Native/pal_networkchange.h
src/libraries/Native/Unix/System.Native/pal_networking.h
src/libraries/Native/Unix/System.Native/pal_networkstatistics.h
src/libraries/Native/Unix/System.Native/pal_process.h
src/libraries/Native/Unix/System.Native/pal_random.h
src/libraries/Native/Unix/System.Native/pal_runtimeextensions.h
src/libraries/Native/Unix/System.Native/pal_runtimeinformation.h
src/libraries/Native/Unix/System.Native/pal_signal.h
src/libraries/Native/Unix/System.Native/pal_string.h
src/libraries/Native/Unix/System.Native/pal_sysctl.h
src/libraries/Native/Unix/System.Native/pal_tcpstate.h
src/libraries/Native/Unix/System.Native/pal_time.h
src/libraries/Native/Unix/System.Native/pal_uid.h
src/libraries/Native/Unix/System.Net.Security.Native/pal_gssapi.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_digest.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ecc.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_hmac.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keyagree.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_random.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_rsa.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_sec.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_seckey.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_signverify.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_ssl.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_symmetric.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_trust.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_x509.h
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/pal_x509chain.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/openssl.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_asn1.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_bignum.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_bio.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_dsa.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_ecc_import_export.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_ecdsa.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_eckey.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_err.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_evp.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_evp_cipher.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_evp_pkey.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_evp_pkey_dsa.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_evp_pkey_ecdh.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_evp_pkey_eckey.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_evp_pkey_rsa.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_hmac.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_ocsp.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_pkcs12.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_pkcs7.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_rsa.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_ssl.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_x509.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_x509_name.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_x509_root.h
src/libraries/Native/Unix/System.Security.Cryptography.Native/pal_x509ext.h
src/mono/netcore/System.Private.CoreLib/src/LinkerDescriptor/System.Private.CoreLib.xml