summaryrefslogtreecommitdiff
path: root/src/corefx
AgeCommit message (Collapse)AuthorFilesLines
2018-11-19Fix Getting Max Japanese Era (#21087)Tarek Mahmoud Sayed1-1/+2
We were using the ICU API ucal_getLimit and askin gto get the maximum value of the Japanese eras. it looks this API is just return the era matching the current system clock which prevent returning any future defined era in the system (which ICU 63.1 can support with some environment variable). We raised the issue to the ICU owners but would be better just to get the era of Gregorian year 9999 which always should return the max era anyway.
2018-09-07Fix ICU load on OpenSUSE Tumbleweed (#19812)Jan Vorlicek1-25/+36
For some reason, OpenSUSE Tumbleweed has decided to prefix the version number in the SO name of the ICU libraries by "suse". That prevents our ICU version detection code from working. This change adds scanning for SO names that contain that prefix too.
2018-04-09Adding dlerr() diagnostics for libicu dlsym errors (#17454)Debayan Ghosh1-1/+1
2018-02-17delete unused mirror files (#16423)Sergey Andreenko1-1/+0
2018-01-15Fix Android build (#15868)Jan Vorlicek1-2/+2
There were the following issues: * The current versions of packages available at the termux site were obsolete. * The libintl.h was removed from the Android SDK, so the dgettext and bindtextdomain are not available. But they were dummy implementations before anyways, so we can remove their usage on Android. * The detection of the ucol_setMaxVariable needs to be done using the check_cxx_symbol_exists instead of check_symbol_exists, since on Android, the ICU libraries now depend on C++ runtime. * The SIZE_T_MAX is already defined in Android headers, so the definition in cgroup.cpp was colliding with it. * The pthread_condattr_setclock detection was using pthread library, but on Android, it is located in the "c" library instead. So it was not being detected.
2017-12-29Remove lib prefix for System.Globalization.Native.a to match all other ↵Jan Kotas1-3/+4
libraries (#15667)
2017-12-22icushim: try using the build-time libicu version (#15562)Tom Deseyn1-62/+61
* icushim: try using the build-time libicu version * Based on ICU packaging doc, use major instead of (major, minor) * Verify we can look-up symbols on the build version * First find Major; add FEATURE_FIXED_ICU_VERSION * Move FindSymbolVersion check in OpenICULibraries * Remove FEATURE_FIXED_ICU_VERSION
2017-12-01Unix: Remove MaxPath, MaxName (#15229)Tom Deseyn1-14/+0
* Unix: Remove MaxPath, MaxName PATH_MAX is not an upper bound on path lengths on Unix. system function return values should be used to determine behavior, instead of limiting the path length. NAME_MAX depends on the file system used. Its value depends on the path, it is not constant for the entire system. * PR feedback * Sync with corefx Interop.ReadLink * Deal with /etc/localtime link containing relative path
2017-08-15Get sort version dynamically and expose ICU version from native component ↵Tarek Mahmoud Sayed3-6/+33
(#13382) * Support ICU Version * Add the assert
2017-05-02Added missing icu headers for Android (#11325)Cyd Haselton1-0/+2
urename.h and ustring.h contain the u_stncpy and its definition. If they are not in the list of icushim.h headers, Android build fails.
2017-03-25Enable global invariant on OSX (#10470)Tarek Mahmoud Sayed3-45/+59
* Enable Globalization Invariant on OSX * Fix typo * Fix small typo * Remove static link to ICU lib * Addressing the feedback
2017-03-19Invariant globalization (#10264)Tarek Mahmoud Sayed1-7/+9
* Invariant Globalization Work * Convert the testing Exceptions to asserts * Remove un-needed comment * Fix typos * Fix unrelated typo * Address the PR feedback * More feedback addressing * More feedback addressing * Fix Linux break * More feedback addressing * cleanup
2017-03-07Enhance ICU version scan (#9993)Jan Vorlicek1-3/+21
The scanning that tries to find locally installed ICU version was not considering the case when only ICU library files with major version component were present (like libicuuc.so.52). This is a rare case that I've seen so far only when people built and installed ICU manually. But it is worth to add checks for such case as a fallback, which is what this change does. I have also added checks for minorVersion and subVersion being -1 when trying to detect the symbol versioning used. While the pre-existing code would still work fine, it would unnecessarily try nonsensical version.
2017-03-07Fix ICU detection in System.Globalization.Native build (#9990)Jan Vorlicek1-4/+2
The config.cmake was not getting the ICU library paths it requires to build a code that detects presence of the ucol_setMaxVariable. I have excluded the libraries detection from the CMakeLists.txt some time ago since they are not used in the build itself anymore, but I have not realized that they are needed for this detection script that's included from the CMakeLists.txt.
2017-02-24typo in CMakeLists.txt (#9763)John Gorter1-1/+1
2017-02-14Add case-insensitive String.Replace overloads (#9316)Erti-Chris Eelmaa1-1/+9
Added overloads for String.Replace so that they now accept StringComparison and CultureInfo as input parameters.
2017-01-10Add Microsoft.NETCore.Native package (2nd attempt) (#8882)Sedar Gokbulut1-0/+16
* Adding Microsoft.NETCore.Native package (#8791) * "Adding Microsoft.NETCore.Native package" * Adding generic linux configuration to Microsoft.NETCore.Native package * Fixing the OSX pkgproj of Microsoft.NETCore.Native to include S.Globalization.Native.dylib and not .so * Fixing the osx release build.
2017-01-06Use POSIX "command" instead of non-standard "which" (#8823)Jürgen Hötzel1-4/+4
GNU which might not be installed on a minimal GNU/Linux installation. Refs #6994 and #7025.
2017-01-05Revert "Adding Microsoft.NETCore.Native package (#8791)"Sedar Gokbulut1-16/+0
This reverts commit eea7b4691c0a489435814e48a257a9d047475006.
2017-01-04Adding Microsoft.NETCore.Native package (#8791)Sedar Gokbulut1-0/+16
* "Adding Microsoft.NETCore.Native package" * Adding generic linux configuration to Microsoft.NETCore.Native package * Fixing the OSX pkgproj of Microsoft.NETCore.Native to include S.Globalization.Native.dylib and not .so
2016-11-29Fix shared library dependencies verification on some platforms (#8349)Jan Vorlicek1-0/+6
The existing way of verifying shared library dependencies, used for System.Globalization.Native.so, doesn't work on platforms that don't have ldd or where ldd doesn't support the `-r` option. This change makes the check happen on non-Alpine Linux only for now. It also refactors the way the check is performed. Instead of doing it post build in the build.sh, it is now performed as a postbuild phase of the System.Globalization.Native target and it is also generalized so that we can easily add such verification to other build targets. The new verify-so.sh script is also used in corefx.
2016-11-08Avoid failures when allocate memory in native (#8028)Tarek Mahmoud Sayed2-8/+22
* Avoid failures when allocate memory in native using new in the native side can throw and the app will shutdown. instead we detect the failure and throw a managed exception * Use same mechanism we return the error code from GetSortHandle * Add assert * Dispose the safeHandle
2016-11-01Enable the rest of netstandard1.7 globalization APIs (#7935)Tarek Mahmoud Sayed1-0/+6
* Enable more netstandard 1.7 Globalization APIs * Enable Windows support for the new APIs * Fix spaces and line alignments
2016-10-27Add the missing ICU APIs to the ICU shim (#7840)Tarek Mahmoud Sayed1-0/+6
there was a change done by the PR #7773 which removed the dependency on ICU version. and there is another PR #7811 which used more ICU APIs not listed in the shim. the change here is to add these APIs to the shim
2016-10-26Enable CultureInfo netstandard 1.7 APIs on Linux (#7811)Tarek Mahmoud Sayed2-5/+76
* Enable CultureInfo netstandard 1.7 APIs on Linux * fix spaces * Use Array.Empty<CultureInfo> instead of CultureInfo[0]
2016-10-26Remove dependency of System.Globalization.Native.so on specific ICU version ↵Jan Vorlicek15-33/+499
(#7773) Remove dependency of System.Globalization.Native.so on specific ICU version
2016-10-14Enable RegionInfo netstandard 1.7 APIs (#7604)Tarek Mahmoud Sayed3-4/+77
* Enable RegionInfo netstandard 1.7 APIs * Fix the typo * lowercase TRUE and FALSE
2016-05-30Fix ucol_setMaxVariable detection for Gentoo Linux (#5309)Peter Jas1-0/+7
The issue was the symbol is exported by the ICU lib. Including headers was not enough. The linker requires the libraries to succeed. With this fix, CoreCLR successfully builds on Gentoo Linux 100%. Tested with LXC gentoo container on Ubuntu machine. Steps to configure and build: https://gist.github.com/jasonwilliams200OK/1a2e2c0e904ffa95faf6333fcd88d9b8 Fix #5160
2016-05-19Ignore empty collation elements in EndsWithMatt Ellis1-29/+41
We should ignore empty collaction elements at the end of the string when doing our EndsWith checks. This means the match ICU finds might not span to the end of string, but the only elements after the match before the end are completely ignorable. U+00AD (SOFT HYPHEN) is one such case where the codepoint is completely ignorable. Fixes dotnet/corefx#3467
2016-04-25Change how we detect the default localeMatt Ellis3-3/+49
Previously, we would just ask ICU what it thought the default locale was, since that seemed like a reasonable thing to do. However, in cases where LANG, LC_MESSAGES and LC_ALL where unset and setlocale(3) returned "C", ICU would use "en-US-POSIX" as a default locale. The above case is actually what happens by default when you are running in docker and en-US-POSIX has very odd collation rules (ASCII characters which differ only by case are still treated as seperate letters) which trip folks up. So in this case, we'll use Invariant. If setlocale(3) returns a non C/POSIX locale or any of LANG, LC_MESSAGES, or LC_ALL are set to non empty values, we'll continue to let ICU figure out what to do.
2016-04-18enable build of cross target components.Rahul Kumar2-1/+3
Currently only enabled for arm64
2016-04-06Avoid assert on buffer overflowSteve Harter1-1/+1
2016-03-22Strip symbols on release builds into separate binariesMike McLaughlin1-1/+2
Issue #3669 Created a common cmake strip_symbols function that all the modules and programs use to strip the symbols out of the main into a separate .dbg (Linux) or .dSYM (OSX) file. Added an install_clr cmake function to encapsulate the install logic. Changed all the library module cmake install lines from a TARGETS to a FILES one. The TARGETS based install directives caused cmake to relink the binary and copy the unstripped version to the install path. Left the all programs like corerun or ildasm as TARGETS installs because on OSX FILES type installs don't get marked as executable. Need to use "get_property(strip_source_file TARGET ${targetName} PROPERTY LOCATION)" for the older versions of cmake and "set(strip_source_file $<TARGET_FILE:${targetName}>)" on newer versions (v3 or greater).
2016-02-08Revert "Add un-prefixed signatures as temporary workaround"Jan Kotas2-36/+0
This reverts commit fb80bad2ed19970472ddefe539520abef42a52d0.
2016-02-02TimeZoneInfo.DisplayName values are not localized on LinuxEric Erhardt3-45/+84
Fixed by calling ICU's ucal_getTimeZoneDisplayName to read the display names for the current locale. Fix https://github.com/dotnet/corefx/issues/2748
2016-01-30Revert "Revert "Add un-prefixed signatures as temporary workaround""Jan Kotas2-0/+36
2016-01-30Revert "Add un-prefixed signatures as temporary workaround"Jan Kotas2-36/+0
This reverts commit 6b1d2938ec4a5a2c64fd849797ec7800ed3ab575.
2016-01-29Add un-prefixed signatures as temporary workaroundJan Kotas2-0/+36
2016-01-29Unique names for GlobalizationNative exportsJan Kotas10-166/+168
For consistency and to enable eventual sharing of the same code with CoreRT, I have changed the naming convention for System.Globalization.Native exports to match dotnet/corefx#4818.
2016-01-27Update license headersdotnet-bot11-44/+33
2016-01-13IdnMapping GetUnicode conformance tests failEric Erhardt1-1/+2
The IdnaConformanceTests fail on Unix because \u00DF, \u200C and \u200D characters are not being handled as specified in the http://www.unicode.org/Public/idna/6.0.0/IdnaTest.txt file. The fix is to use UIDNA_NONTRANSITIONAL_TO_UNICODE and UIDNA_CHECK_CONTEXTJ options when calling uidna_openUTS46. Partial fix for https://github.com/dotnet/corefx/issues/3406.
2016-01-11CompareOptions.IgnoreSymbols only ignores punctuation on Unix, but not other ↵Eric Erhardt4-2/+33
symbols By default, ICU alternate shifted collation handling only ignores punctuation, not all symbols, so change the "variable top" to include all symbols and currency characters. Fix #4907
2016-01-08Convert System.Globalization.Native to use a configure.cmake and .h.in files.Eric Erhardt4-17/+17
2015-12-24GC OS interface refactoringJan Vorlicek1-0/+1
This change replaces all calls of OS specific functions in the GC by a call to a platform agnostic interface. Critical sections were abstracted too. The logging file access was changed to use CRT functions instead of Windows specific APIs. A "size" member was added to the card_table_info so that we can pass the right size to the VirtualRelease method when destroying the card table. I have also fixed a bug in the gc_heap::make_card_table error path where when VirtualCommit failed, it called VirtualRelease with size that was not the reserved size, but the committed size. Other related changes - All interlocked operations moved to Interlocked class as static methods - Removed unused function prototypes - Shuffled stuff in the root CMakeLists.txt to enable building the GC sample using the settings inherited from the root CMakeLists.txt and to clean up some things that have rotted over time, like the FEATURE_xxx macros not being in one alphabetically ordered block - Fixed the VOLATILE_MEMORY_BARRIER macro in the gcenv.base.h - Replaced uint32_t thread id by EEThreadId - Removed thread handles storage (g_gc_thread) from the GC. The thread handle is closed right after the thread is launched. That allowed me to get rid of the GCThreadHandle - Renamed the methods of the EEThreadId to be easier to understand - Moved the gcenv.windows.cpp and gcenv.unix.cpp to the sample folder
2015-12-09Fixing collation for the following scenarios:Eric Erhardt1-29/+56
1. When IgnoreSymbols is true, ensure we still ignore half and fullwidth characters that are symbols. 2. Hiragana-Katakana characters differ at the tertiary strength, fixing the rule. 3. Fix collation on OSX which uses ICU 55.1. ICU 55 doesn't support having certain unicode characters using primary '<' rules. These characters are not necessary in the rules, since Windows always treats them the same. Removing 0x3099 and 0x309A from the half/full width rules.
2015-12-07Address PR feedback.Eric Erhardt1-21/+28
2015-12-07Ensure the collator map is thread safe on SortHandle.Eric Erhardt1-0/+9
2015-12-07Adding support for String CompareOptions IgnoreKanaType and IgnoreWidth on Unix.Eric Erhardt1-3/+160
2015-12-07Adding support for String CompareOptions IgnoreNonSpace and IgnoreSymbols.Eric Erhardt1-5/+33
2015-12-07Convert SortHandle to use a std::map to cache UCollators per option that is ↵Eric Erhardt1-19/+36
passed in. This is in preparation of creating different UCollators for each option.