summaryrefslogtreecommitdiff
path: root/src/coreclr
AgeCommit message (Collapse)AuthorFilesLines
2020-06-26Fix TPA map hash calculation. (#288)Mikhail Kurinnoi/AI Compiler Lab /SRR/Staff Engineer/Samsung Electronics2-0/+51
* Fix TPA map hash calculation. The point of issue is "the Turkish-I Problem". After locale changed, towupper() provide another result for "i" and different hash are calculated in case if file name have "i" letter. * Regression test for #37910
2020-04-16Fix PIE options (#26323)submit/tizen/20200415.223728accepted/tizen/unified/20200416.080052Jan Vorlicek4-8/+0
* Fix PIE options We were missing passing the -pie linker option. That means that while we were compiling our code as position independent, the executables (not shared libraries) were not marked as position independent and ASLR was not applied to them. They were always loaded to fixed addresses. This change adds the missing -pie option and also replaces all the individual settings of -fPIE / -fPIC on the targets we build by a centralized setting of CMAKE_POSITION_INDEPENDENT_CODE variable that causes cmake to add the appropriate compiler options everywhere. * Fix native parts of coreclr tests build The native parts of the tests are not built using the root CMakeLists.txt so I am moving enabling the position independent code to configurecompiler.cmake Change-Id: Ieafff8984ec23e5fdb00fb0c2fb017e53afbce88
2020-03-25[Tizen] Add coreclr_preload_assembly to CoreCLR host APIKonstantin Baladurin1-0/+3
2020-03-25[Tizen] skip dotnet specific arguments in corerunKonstantin Baladurin1-0/+13
Now we use corerun to run corefx tests instead of dotnet, because last one isn't available for Tizen/armel. So we need to skip dotnet specific arguments, we patch corerun for it because Microsoft.DotNet.RemoteExecutor tries to execute binary that it gets from /proc/self/maps, so we need a binary that will behave like dotnet.
2019-05-23Use auxiliary vector to obtain the executable path name (#24696)Leandro A. F. Pereira5-1/+36
This vector is populated by the kernel while loading an ELF, and is available to user land without requiring any system calls. This is specially interesting if programs are executed under a chroot where /proc isn't available (and thus realpath("/proc/self/exe"), the current method of obtaining the full path name for the executable).
2019-04-30Remove FreeLibrary call to unload CoreCLR (#24317)Next Turn2-18/+0
2019-04-09Remove dlclose call to unload CoreCLR (#23863)Next Turn1-5/+0
2019-04-09Alter CCW wrapping semantics (#23709)Aaron Robinson3-1/+54
* Update CCW semantics to not unwrap when a managed COM server was activated from a managed COM client. This is a functional change from .NET Framework. * Add support for CoreShim to "attach" to the existing CLR instance when running from a CoreRun scenario. * Add testing for NET COM client activating a NET COM server
2019-04-02Change tests to not modify Core_Root (#23470)Jeremy Koritzinsky3-34/+100
Redesign tests that needed to modify Core_Root to no longer do so. - Loader.FromNativePaths: Use `CORE_LIBRARIES` instead of `COREROOT` - Loader.AssemblyDependencyResolver: Split out the invalid hosting test that needs hostpolicy to not be preloaded. Have `CoreRun` and `CoreShim` preload hostpolicy when a path to a hostpolicy is specified in the `MOCK_HOSTPOLICY` environment variable. - Add a `CLRTest.MockHosting.targets` file that is imported when a test requires hostpolicy. It adds the reference to the mock hostpolicy and ensures that the `MOCK_HOSTPOLICY` environment variable is correctly set in the test scripts. Fixes #23429.
2019-03-14 Fix the calling convention for P/Invokes and delegates to hostpolicy (#23249)Aaron Robinson1-1/+1
* Fix the calling convention for P/Invokes and delegates * Update mock library to match official hostpolicy calling conventions
2019-03-02Revert "Revert "Improve coreclrhost.h header" (#22955)" (#22973)Jarret Shook1-2/+72
This reverts commit 831cb13f1432aac09e66a8543831d3ed55b4bddf.
2019-03-02Revert "Improve coreclrhost.h header" (#22955)Jarret Shook1-72/+2
2019-03-01Merge pull request #22801 from janvorli/improve-coreclrhost-headerJan Vorlicek1-2/+72
Improve coreclrhost.h header
2019-02-25Use function pointer term in the coreclr_create_delegate docJan Vorlicek1-2/+2
2019-02-24Fix comparison and narrowing errors reported by GCCAdeel1-1/+1
2019-02-23Rename the CALLING_CONVENTIONJan Vorlicek1-4/+4
2019-02-23Fix the stdcall to be present only for x86 WindowsJan Vorlicek1-2/+8
2019-02-22Improve coreclrhost.h headerJan Vorlicek1-2/+66
The header didn't contain comments on the APIs, which was pointed out in Also, the function declarations and pointers didn't include __stdcall and so it caused crashes when someone developing his own host on x86 Windows used __cdecl as the default calling convention (#22217)
2019-02-12Update COM Activator class (#22317)Aaron Robinson3-14/+104
* Update COM Activator to use ALCs * Update tests to now supply an assembly name rather than an binary "path" since the COM activator is now using ALCs. * Add test for non-rooted assembly path. * Move the hostpolicy mock project to a Common area Move hostpolicy mock API to CoreCLR test library * Add test for COM server isolation * Move ComActivator class and logic to Internal namespace.
2018-09-13Dev16 removed the static_cast<> in a std::basic_string constructor so need ↵Aaron Robinson1-13/+24
to explicit convert string to wstring to avoid warning. (#19947)
2018-09-10Basic implementation for testing of COM activation of a .NET class (#19760)Aaron Robinson6-0/+592
* Rough outline of managed implementation for COM activation in SPCL * Add property for finding interop common Add property to exclude default assertion file Display exe ExeLaunchProgram class is going to launch * Add a native client for the NETServer Consume the ExeLauncherProgram.cs file as a wrapper for the native test * Update COM Server contracts to use 'int' instead of 'long' * Complete symmetric testing coverage for .NET server and native client. * Block EXE launch from running on non-Windows machines * Disable COM testing in helix since it has issues on Windows Nano and there is no way to determine that is the platform. * Update tests based on CLSID mapping manifest approach.
2018-07-02Set the activation context for the CoreRun application to what is defined ↵Aaron Robinson1-7/+69
(#18728) in the target managed assembly. This allows RegFree COM scenarios and ensures the intended app manifest is used for the 'exe' scenario.
2018-04-30GC env vars (#17837)Sung Yoon Whang2-3/+3
* update server gc export for runtest.sh * remove CORECLR_SERVER_GC * Change CORECLR_CONCURRENT_GC to COMPlus_gcConcurrent as well * Remove it from coreruncommon.cpp
2018-03-21Fix strings from being concatenated (#17040)Frank Gambino1-1/+1
2018-02-17delete unused mirror files (#16423)Sergey Andreenko9-9/+0
2017-09-13Fix AV in corerun on invalid filenameJan Kotas1-1/+1
Before this fix, corerun would AV on certain invalid paths e.g.: corerun test.exe\
2017-08-27Remove dead HResults.cs (#13611)Dan Moseley1-1/+1
* Fix old copy paste mistake * Remove dead HResults.cs * Rename __HResults to HResults * Rename other two __HResults classes * Combine into single HResults class, to match CoreRT * Make hex consistently uppercase * Sort HResults
2017-04-24Ensure using the given executable path. (#10525)Jim Ma2-1/+23
* Ensure using the given executable path. Fix the bug that corerun trying to load the executable from current directory even if the user has specified a full path of the executable. Fix #5631 * Revert "Ensure using the given executable path." This reverts commit d237e6329f85132429176a0644cf6d93c9437ff4. * Partially implemented. * Ensure app context using correct IL file path. Extracting simple name from the given file path and look up its value in tpa list. If the value does not equal to the given file path, we update the value with correct given file path. Fix #5631 * Re-arrange the slashIndex to eliminate unneccessary code. * A few performance improvement with a memory leak bug fixed. * Added the absolute path of target assembly to tpa list. Fix #5631 * Added the path of target assembly to tpa on Windows. Fix #5631
2017-04-20Enable corerun to select Globalization Invariant mode (#11097)SaeHie Park1-7/+21
* Enable corerun to select Globalization Invariant mode * Support 'true' also
2017-04-19Change ICLRRuntimeHost2 to ICLRRuntimeHost4 for Windows corerun. (#10967)Jim Ma2-22/+26
* Change ICLRRuntimeHost2 to ICLRRuntimeHost4 for Windows corerun. Since we've introduced ICLRRuntimeHost4 in PR #10842 for Unix, we apply it for Windows corerun as well. Fix #10960
2017-04-13Ensure Environment.ExitCode works correctly after app domain unloaded. (#10842)Jim Ma2-3/+14
* Ensure Environment.ExitCode works correctly after app domain unloaded. This PR addresses 2 problems of Environment.ExitCode: 1. Can't get correct exit code of main function. 2. Can't set %errorlevel%. Details can be found on #6206 Fix #6206
2017-04-08Fix corerun issue when loaded from PATH (#10745)Hadi Brais3-29/+7
2017-03-29Fix dependency to coreclr and mscorrc in Linux (#10138)Hyeongseok Oh2-8/+0
* Fix dependency to coreclr and mscorrc in Linux Remove dependency with coreclr in some projects for Linux Recover build mscorrc for cross architecture in Linux * Fix CMakeLists.txt in src/dlls minimize uses of CLR_CROSS_COMPONENTS_BUILD flag in CMakeLists.txt Modify root/CMakeLists.txt to exclude corerun and coreconsole build during cross component build
2017-01-31Support cross-building CoreCLR for arm64 Android (#9173)Frederik Carlier2-4/+15
* Support cross-building CoreCLR for arm64 Android * Link gcc_s before libunwind
2017-01-13Fixes to make runtime work on ARM64 Linux (#8947)Jan Vorlicek1-1/+1
This is a result of attempt to bring up CoreCLR on ARM64 Android. The bring up is on hold now, but I want to check in the changes that added ARM64 asm helpers and fixed general Linux ARM64 issues.
2017-01-03Only add CORE_LIBRARIES to TPA list if it is different from clrFilesAbsolutePathEric Mellino1-1/+4
This avoids placing duplicate entries on the TPA list.
2016-12-29Add CORE_LIBRARIES to the TPA list if it's set in unixcoreruncommonEric Mellino1-1/+2
2016-12-26Remove files related to legacy build system (#8723)Robert4-121/+0
2016-11-09Memory growth algorithm improvement in coreconsole (#7870)Roman Shchekin1-1/+1
* Now Append will work properly if strLen is big (for example 3xm_capacity). And value 1.5 is better for memory growth. * Correct way of calculating 1.5 (without floating point calculation, thanks mikedn) * After long discussion we decided that simple and aggressive allocation is better for this case
2016-10-28C++ conformance. (building with /permissive-) (#7855)Phil Christensen2-6/+6
These issues were found when building with the /permissive- flag in the latest version of MSVC. No tests were added/modified because this does not change any behavior. There are a few types of language conformance issues fixed in this: 1) Strict string conversion (this is also covered by the /Zc:strictStrings flag) The 'const' is not implicitly dropped by string literals, which means the following is not allowed: char str = "const string literal"; //error: cannot convert a 'const char' to a 'char*' This fix to to make str 'const char*'. (This can have a domino effect depending on where str is used) 2) Fully qualified inline declarations members inside class struct A { void A::f() { } // Error: illegal qualified name in member declaration, remove redundant 'A::' to fix }; 3) MSVC by default will allows name lookup in a dependent base. This is disabled by /permissive- template <class T> struct B { void f(); }; template <class T> struct D : public B<T> //B is a dependent base because its type depends on the type of T in D<T>. { //One possible fix is to uncomment the following line. If this //were a type we should have 'using typename'... //using B<T>::f; void g() { f(); //Error: identifier not found, one possible fix is change it to 'this->f();' } }; void h() { D<int> d; d.g(); } 4) Warning 4800 has been removed in version 19.1 (1910) of the compiler. For backwards compatability, surround the usage of 4800. This is not related to C++ conformance. #if _MSC_VER <= 1900 // 'BOOL' forcing value to bool 'true' or 'false' #pragma warning(disable: 4800) #endif
2016-10-19Remove the UseLatestBehaviorWhenTFMNotSpecified compat switch (#5708)AlexGhiondea3-9/+0
* Default to latest behavior when a TFM is not specified Instead of requiring that a compatibility switch is set in order to get the latest behavior for all AppContext switches that are based on TFM, have that behavior on by default. * Remove the UseLatestBehaviorWhenTFMNotSpecified compat switch
2016-08-16Apply correct symbolic name _ARM_ instead of _TARGET_ARM_ (#6756)Hyung-Kyu Choi1-2/+2
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
2016-08-11ARM: disable stack unwinding using DWARF (#6700)hqueue1-0/+14
libunwind for ARM does not interpret ARM vfpv3/NEON registers in DWARF format correctly. Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
2016-07-19Fix self-process identification for FreeBSD (#6314)Jostein Kjønigsen1-1/+23
FreeBSD does not come with procfs enabled by default, and should use sysctl() for this purpose. While it has similarities with NetBSD's implementation, there are a few subtle differences, which justifies leaving this implementation under its own guard. It's also worth noting that on FreeBSD sysctl.h MUST be present, which is unlike NetBSD. Therefore the HAVE_SYS_SYSCTL_H define is not checked for or used. This commit fixes https://github.com/dotnet/coreclr/issues/6184. This commit is based on the following commit from core-setup: https://github.com/dotnet/core-setup/commit/d5ce08014a174b006a3b409b8bb93d003ae583a0
2016-06-15Initial support of breakpoint setting by source file + line on Linux using ↵Evgeny Pavlov1-1/+2
portable pdb reader (#5688) * Initial support of breakpoint setting by source + line on Linux * Fix macro redefinition error in OSX build * Fix after review from Mike McLaughlin
2016-06-11Add check for sys/sysctl.h (#5726)Peter Jas1-0/+2
On some operating systems `<sys/sysctl.h>`is not present yet `sysct` function in available. One example is Alpine Linux which uses musl-libc as opposed to GNU libc. Ref: dotnet/corefx#6253
2016-05-26Linux/ARM: Regression fix in release build since "UNW_ARM_UNWIND_METHOD=6" ↵Geunsik Lim1-14/+0
(#5126) > https://github.com/dotnet/coreclr/pull/3502/ > Fix Stack Unwind Behavior of Libunwind-ARM We have been getting the 300+ failures(in ./JIT/ directory) in release-build mode whenever we have always run CoreCLR unit-test since https://github.com/myungjoo/coreclr/commit/35b5df6888f1574e6ef9313c6bc8522d1817573d. (Reference - https://wiki.linaro.org/KenWerner/Sandbox/libunwind#overhead_of_the_ARM_specific_unwind-tables) With recent fixes on stack unwindings, it appears that we no more send ambiguous requests to libunwind-arm.(Checked by @myungjoo, with cases of #3462) From now on, let's remove the unwind environment variable (e.g., UNW_ARM_UNWIND_METHOD=6) Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com> Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com> CC: Ben Pye <@benpye> CC: Jan Kotas <@jkotas> CC: Matt Mitchell <@mmitche>
2016-05-25Merge pull request #5220 from adityamandaleeka/force_gc_concurrentAditya Mandaleeka1-18/+2
Check CLRConfig value explicitly to determine whether concurrent GC was forced
2016-05-25Remove CORECLR_CONCURRENT_GC from Unix coreruncommon.Aditya Mandaleeka1-18/+2
2016-05-24Support the CORE_LIBRARIES environment variable on Unix (#5112)Manu1-0/+7
Mimic the Windows behavior by adding to the search path of native dlls the content of the CORE_LIBRARIES environment variable.