Eugene Zemtsov [Tue, 28 Apr 2015 04:21:49 +0000 (21:21 -0700)]
Get rid of *scanf_unsafe function which do nothing useful and incorrectly pass arguments to real scanf functions
Eugene Zemtsov [Thu, 23 Apr 2015 07:20:03 +0000 (00:20 -0700)]
Proper CLR module discovery in dbgshim on POSIX systems
Eugene Zemtsov [Mon, 27 Apr 2015 19:14:03 +0000 (12:14 -0700)]
Mark dbgshim functions as extern "C", for easier load via GetProcAddress
Jan Kotas [Mon, 27 Apr 2015 17:58:29 +0000 (10:58 -0700)]
Merge pull request #836 from dotnet-bot/from-tfs
Merge changes from TFS
Jan Kotas [Mon, 27 Apr 2015 16:44:52 +0000 (09:44 -0700)]
Fix build break
[tfs-changeset: 1460550]
Jan Kotas [Mon, 27 Apr 2015 16:05:43 +0000 (09:05 -0700)]
Merge pull request #830 from taylorjonl/freebsd-docs
Updated paths that contained Unix to Linux
taylorjonl [Mon, 27 Apr 2015 15:31:55 +0000 (09:31 -0600)]
Updated paths that contained Unix to Linux
Jan Kotas [Mon, 27 Apr 2015 14:57:57 +0000 (07:57 -0700)]
Merge pull request #829 from janvorli/fix-secondary-thread-gc
Fix GC of other thread during native frames unwinding
Jan Vorlicek [Mon, 27 Apr 2015 00:28:22 +0000 (17:28 -0700)]
Fix GC of other thread during native frames unwinding
This change fixes a problem when the GC is attempting to scan a stack
of another thread that have just performed the native stack segment
unwind, but didn't have a chance to update the exception tracker
to reflect the fact that the stack range from m_pInitialExplicitFrame
and m_pLimitFrame is in the reclaimed part of the stack and is waiting
for the GC to complete (it uses the GCX_COOP).
The GC then attempts to scan explicit frames in the already reclaimed
part of the stack and crashes.
Besides fixing the issue, I have noticed that we are missing GCX_COOP
to enter the cooperative mode when unwinding frame chain in the
UnwindManagedExceptionPass1. I have also found that we don't have the
GCX_COOP in the HandleHardwareException properly scoped.
So I have fixed those as well.
Jan Kotas [Sun, 26 Apr 2015 23:45:02 +0000 (16:45 -0700)]
Merge pull request #825 from DickvdBrink/remove_deprecated_hash_map
Replace hash_map/set with unordered_map/set
Jan Kotas [Sun, 26 Apr 2015 23:28:55 +0000 (16:28 -0700)]
Merge pull request #826 from dotnet/richlander-patch-1
Update windows-instructions.md
Jan Kotas [Sun, 26 Apr 2015 23:27:08 +0000 (16:27 -0700)]
Merge pull request #827 from kangaroo/freebsd-bringup
Complete FreeBSD bringup
Geoff Norton [Sun, 26 Apr 2015 22:32:22 +0000 (15:32 -0700)]
Complete FreeBSD bringup
Fixes issue #801 which was caused by the CoreCLR and PAL being
dlopened, but pthread not being initialized by the runtime linker yet.
FreeBSD requires that the main executable load pthread, rather than a
downstream dependency. Also fixed a few missing calls to pthread_attr_init
which was causing asserts() on FBSD.
Rich Lander [Sun, 26 Apr 2015 22:26:40 +0000 (15:26 -0700)]
Update windows-instructions.md
- Added reference to issue #30 so that people can "watch at home" on this issue.
Dick van den Brink [Sun, 26 Apr 2015 22:24:55 +0000 (00:24 +0200)]
Replace hash_map/set with unordered_map/set
hash_map/hash_set are deprecated in VS 2015
fix #821
Jan Kotas [Sun, 26 Apr 2015 20:50:09 +0000 (13:50 -0700)]
Merge pull request #822 from DickvdBrink/vs2015-build
Allow building with VS2015 installed
Jan Kotas [Sun, 26 Apr 2015 20:47:22 +0000 (13:47 -0700)]
Merge pull request #823 from stephentoub/filesecuritystate_path_unix
Fix FileSecurityState.VerifyPath on Unix
Dick van den Brink [Sun, 26 Apr 2015 17:36:42 +0000 (19:36 +0200)]
Allow building with VS2015 installed
Previous it was required to have VS2013 but now VS2015 can also be used. The default is still 2013 though.
On a machine with both version installed it is possible to force VS2013/VS2015 with a parameter.
Note: Still some work has to be done to make compilation successfull on VS2015.
Stephen Toub [Sun, 26 Apr 2015 14:15:55 +0000 (10:15 -0400)]
Fix FileSecurityState.VerifyPath on Unix
FileSecurityState.VerifyPath is throwing an exception if a path contains '?' or '*', but these are valid characters in paths on Unix. This commit just uses PLATFORM_UNIX to remove this code when compiling for Linux or OSX.
Jan Kotas [Sun, 26 Apr 2015 13:21:32 +0000 (06:21 -0700)]
Merge pull request #819 from ajensenwaud/freebsd-lldb1
Fixed lldb header related build errors on FreeBSD
Anders Jensen-Waud [Sat, 25 Apr 2015 22:49:55 +0000 (08:49 +1000)]
Fixed lldb header related build errors on FreeBSD
Include C standard libraries in order for build
to work properly on FreeBSD 10.1 when linking
against LLDB.
Rich Lander [Sat, 25 Apr 2015 23:00:23 +0000 (16:00 -0700)]
Merge pull request #809 from richlander/rich-getcoreclr
Add NuGet and DNVM links to readme
Mike McLaughlin [Sat, 25 Apr 2015 18:27:47 +0000 (11:27 -0700)]
Merge pull request #807 from mikem8361/testcoreclrindebugger
Implemented hardware exception chaining.
Jan Vorlicek [Sat, 25 Apr 2015 18:00:43 +0000 (11:00 -0700)]
Merge pull request #813 from janvorli/fix-osx-hw-exceptions
Fix OSX hardware exception handling
Jan Vorlicek [Sat, 25 Apr 2015 16:43:34 +0000 (09:43 -0700)]
Fix OSX hardware exception handling
This change fixes a bug in the OSX hardware exception handling. The catch_exception_raise
function in machexceptions.cpp creates a stack frame that allows stack unwinder to
walk to the place where the hardware exception happened from the actual exception
handling code.
The problem was that this method stores the address of the faulting instruction
PLUS 1 as the return address on the stack. There was a long comment about the
reasons for doing so, but these reasons are not valid for jitted code that we
unwind using the windows style unwinder and the "+1" breaks the unwinder in
some cases.
In the case that we've hit, there was an idiv instruction with instruction code
0xF7 0xFF, followed by instruction code 0x25. The windows style unwinder got
the address of the second byte of the instruction code, the 0xFF, which followed
by the 0x25 is an unconditional indirect jump. So the unwinder decided based on
that that it is in the epilogue of the function and returned an unwound context
containing an invalid instruction pointer.
The fix is to not to increase the instruction by one in the catch_exception_raise.
We don't do that in the Linux exception handling either.
We may need to do this fixup at other place for exceptions happening in the debugger
libraries where a hardware exception can happen and be handled in our C++ code as well.
Rich Lander [Sat, 25 Apr 2015 07:34:12 +0000 (00:34 -0700)]
Merge pull request #811 from richlander/rich-dnx
Fix typo
Richard Lander [Sat, 25 Apr 2015 06:53:14 +0000 (23:53 -0700)]
Fix typo
Richard Lander [Sat, 25 Apr 2015 05:48:56 +0000 (22:48 -0700)]
Add NuGet and DNVM links to readme
Rich Lander [Sat, 25 Apr 2015 05:18:00 +0000 (22:18 -0700)]
Merge pull request #806 from richlander/rich-getcoreclr
Update binary distribution instructions
Rich Lander [Fri, 24 Apr 2015 23:28:04 +0000 (16:28 -0700)]
Update binary distribution instructions
Mike McLaughlin [Tue, 21 Apr 2015 22:25:24 +0000 (15:25 -0700)]
Implemented hardware exception chaining.
Test CLR hosting under a debugger (lldb). In order to test the debugger modules and coreclr running together in the same process, add the test command "corerun" to the lldb plugin that uses the CLR hosting apis to run managed code in the lldb process.
Fixed a problem where the dac module was picking up an constructor in the coreclr module instead of using the dac version. This is because the corerun code was dlopen'ing coreclr with RTLD_GLOBAL which exposed all the symbols to the reset of the dynamic modules loaded. Changing it to RTLD_LOCAL (the default) fixes this problem.
Changed from an ASSERT to an ERROR in the hardware exception handler because ASSERT does an SIGTRAP (DebugBreak) that keeps recursively being hit.
Removed all signals that installed a fatal_signal_handler especially SIGINT which was interfering with lldb's. The rest of the signals, the default action should be good enough.
Checked if the EE was started in the VM's hardware exception handler just to make sure everything is ready before the managed exception chain is called.
Cleanup signal thread masking. Only wait for SIGINT/SIGQUIT explicitly instead of trying to mask all the signals we don't want to wait on.
Rich Lander [Fri, 24 Apr 2015 22:44:39 +0000 (15:44 -0700)]
Merge pull request #804 from janhenke/patch-1
Update main README.md to include FreeBSD
Jan Vorlicek [Fri, 24 Apr 2015 22:31:06 +0000 (15:31 -0700)]
Merge pull request #805 from janvorli/fix-div-handling
Fix div by 0 detection
Bengu Li [Fri, 24 Apr 2015 22:09:19 +0000 (15:09 -0700)]
Merge pull request #802 from libengu/Exclusion
Implement a runtest exclusion mechanism for individual tests
Jan Vorlicek [Fri, 24 Apr 2015 21:43:46 +0000 (14:43 -0700)]
Fix div by 0 detection
This change adds check for the DIV instruction code as well. The existing
check to distinguish between div by 0 and division overflow was checking
just the IDIV instruction.
Jan Henke [Fri, 24 Apr 2015 21:03:09 +0000 (23:03 +0200)]
Update main README.md to include FreeBSD
This PR adds FreeBSD to the main README.md.
Bengu Li [Fri, 24 Apr 2015 19:44:21 +0000 (12:44 -0700)]
Implement a runtest exclusion mechanism for individual tests
Existing runtest.cmd and runtest.proj does not support excluding
individual tests from running thus a JIT testing that wants to
do so has to hard delete the built tests which caused a bunch
of potential issue and developer inconvinience. This change
implements a solution that developer can specify excluded tests
through a msbuild .targets file with ItemGroup ExcludeList.
Existing runtest builds XunitWrapper.dll for each top level test
directory and run the tests at the granularity of XunitWrapper.dll
level. The implmentaiton controls how many test cases are included
when XunitWrapper.dll is built. No more hard deletion. Passed
tests with and without exclusion.
Rich Lander [Fri, 24 Apr 2015 19:10:54 +0000 (12:10 -0700)]
Merge pull request #800 from janhenke/fbsd-doc
Initial FreeBSD instructions based on the Linux instructions.
Jan Henke [Fri, 24 Apr 2015 15:53:51 +0000 (17:53 +0200)]
Initial FreeBSD instructions based on the Linux instructions.
This file is a copy of the Linux instructions, modified for the differences
between Linux and FreeBSD. It is not perfect yet, we are still missing some
parts on FreeBSD (LLDB, CoreFX). Also the package download with NuGet.exe does
not work yet due to a problem with importing CA certs. Nevertheless this is a
start and better than nothing. Closes #799.
Jan Vorlicek [Fri, 24 Apr 2015 15:02:34 +0000 (08:02 -0700)]
Merge pull request #798 from justincormack/netbsd
basic NetBSD platform support
Justin Cormack [Fri, 24 Apr 2015 12:28:07 +0000 (12:28 +0000)]
basic NetBSD platform support
Rich Lander [Fri, 24 Apr 2015 05:51:30 +0000 (22:51 -0700)]
Merge pull request #790 from richlander/rich-readme
Add source instructions more prominently
Richard Lander [Thu, 23 Apr 2015 05:03:23 +0000 (22:03 -0700)]
Add source instructions more prominently
Rich Lander [Fri, 24 Apr 2015 05:46:45 +0000 (22:46 -0700)]
Merge pull request #795 from richlander/rich-windowsnuget
Add instructions for acquiring binaries for Windows via NuGet
Rich Lander [Fri, 24 Apr 2015 00:32:33 +0000 (17:32 -0700)]
Add instructions for acquiring binaries for Windows via NuGet
Matt Ellis [Fri, 24 Apr 2015 04:23:02 +0000 (21:23 -0700)]
Merge pull request #796 from stephentoub/temp_currency_symbol
Temporarily change invariant currency symbol on Unix for demo purposes
Stephen Toub [Fri, 24 Apr 2015 03:14:56 +0000 (23:14 -0400)]
Temporarily change invariant currency symbol on Unix for demo purposes
mscorlib's globalization stack on Unix is a temporary implementation, good enough to help unblock getting the rest of the system up and running and for some basic demos. However, such demos are hindered slightly by the use of the international monetary symbol "\x00a4" when rendering currency. This commit just makes a temporary tweak to instead use "$".
Jan Vorlicek [Fri, 24 Apr 2015 01:14:07 +0000 (18:14 -0700)]
Merge pull request #794 from dotnet/fix-gc-issue
Fix GC stack unwinding issue
Jan Vorlicek [Fri, 24 Apr 2015 00:23:07 +0000 (17:23 -0700)]
Fix GC stack unwinding issue
This change fixes a GC stack unwinding issue when a GC is
triggered in a catch handler that caught a rethrown
exception.
The problem was that we need to propagate the m_fFixupCallerSPForGCReporting
to the new exception tracker created when interleaved exception handling
starts processing a block of managed frames after processing another
block of managed frames followed by a block of native frames.
Without this flag, the m_EnclosingClauseInfoForGCReporting's
caller SP is not updated when the target unwind frame is found and
such an update is needed.
Matt Ellis [Thu, 23 Apr 2015 21:33:32 +0000 (14:33 -0700)]
Merge pull request #788 from ellismg/fix-pal-dylib-loading
Fix loading of PAL on OSX
Jonathan Miller [Thu, 23 Apr 2015 21:02:46 +0000 (14:02 -0700)]
Merge pull request #787 from sokket/master
Fixing an issue in FILECanonicalizePath where some paths did not canonicalize properly
Eugene Zemtsov [Thu, 23 Apr 2015 20:17:01 +0000 (13:17 -0700)]
Merge pull request #783 from Djuffin/dbi-linux
CoreCLR DBI automatically detects CLR instance to attach to
Matt Ellis [Thu, 23 Apr 2015 00:00:41 +0000 (17:00 -0700)]
Fix loading of PAL on OSX
On OSX our trick to preload the PAL from the host before trying to load
coreclr doesn't actually cause the OSX loader to correctly resolve the
dependency.
This change moves to use rpath and then add an entry to the rpath list
for libcoreclr to @loader_path.
This way, we can load libcoreclr even in cases where the path to the PAL
is not on DYLD_LIBRARY_PATH and your CWD is not the doesn't have a copy.
Related issues are #709 and #719
Jonathan Miller [Thu, 23 Apr 2015 18:43:46 +0000 (11:43 -0700)]
Addressing PR feedback in the test cases and fixing casing for test case runs
Eugene Zemtsov [Wed, 22 Apr 2015 21:00:23 +0000 (14:00 -0700)]
CoreCLR DBI automatically detects CLR instance to attach to (when possible)
Jan Kotas [Thu, 23 Apr 2015 17:24:09 +0000 (10:24 -0700)]
Merge pull request #791 from janhenke/freebsd-linking
Fix the two remaining linker errors on FreeBSD.
Mike McLaughlin [Thu, 23 Apr 2015 17:02:55 +0000 (10:02 -0700)]
Merge pull request #789 from mikem8361/dactablefix
Fixed the dac table file problem
Jan Henke [Thu, 23 Apr 2015 16:51:47 +0000 (02:51 +1000)]
Fix the two remaining linker errors on FreeBSD.
Thanks to Jan Vorlicek for finding the source of the first linker error. Those
linker options need to be passed to the linker on FreeBSD too.
The second linker error is caused by the fact that FreeBSD has no libdl, the
functionality is instead implemented in libc. Thus do not add the -ldl option
to the linker on FreeBSD. Fixes #739
This is fixes the build on FreeBSD completely!
Bengu Li [Thu, 23 Apr 2015 16:44:12 +0000 (09:44 -0700)]
Merge pull request #786 from libengu/TestStructPromote
Add Directed/StructPromote test cases for JIT
Bengu Li [Thu, 23 Apr 2015 16:43:58 +0000 (09:43 -0700)]
Merge pull request #784 from libengu/TestGenericsFields
Add Generics/Fields test cases for JIT
Mike McLaughlin [Thu, 23 Apr 2015 04:27:10 +0000 (21:27 -0700)]
Fixed the dac table file problem. The file name used isn't unique if there is more than one process running managed code. As a temporary fix (using a file is very temporary anyway), use the CLR module base address in the file name. Even if there is more than one process with managed code/coreclr running if the base address is the same the dac table address will be the same. Moved the dac table initialization to be sooner in the EE initialization because SOS/DAC can need it even before the EE debugger support is started. Also fixed the dac table file cleanup. We can't actually remove the dac file now that the base address is part of the name because multiple processes could be using it.
Matthew Whilden [Thu, 23 Apr 2015 10:20:47 +0000 (03:20 -0700)]
Merge pull request #773 from janhenke/build-args
Add optional arguments for choosing clang version and verbose build output
Mike McLaughlin [Thu, 23 Apr 2015 04:27:43 +0000 (21:27 -0700)]
Merge pull request #771 from mikem8361/hwexcept
Share hardware exception between coreclr and DAC
Mike McLaughlin [Wed, 15 Apr 2015 23:59:56 +0000 (16:59 -0700)]
Changed the VM's hardware exception to return if not in manged code. For DAC's hardware exception handling, add
hardware exception holder used to determine if a C++ exception should be thrown for a hardware exception. Cleaned
up PAL initialization interactions between the debugger modules (PAL_InitializeDLL) and coreclr (PAL_InitializeCoreCLR).
Jonathan Miller [Thu, 23 Apr 2015 01:31:16 +0000 (18:31 -0700)]
Addressing PR feedback
Jonathan Miller [Wed, 22 Apr 2015 23:18:00 +0000 (16:18 -0700)]
Fixing an issue in FILECanonicalizePath where paths like /Test/..
would not be properly canonicalized due to a missing check to
ensure the function doesn't truncate the root slash
Jan Kotas [Wed, 22 Apr 2015 22:24:22 +0000 (15:24 -0700)]
Merge pull request #785 from DickvdBrink/SOS-plugin-build
Fixed lldb not found error on fedora
Bengu Li [Wed, 22 Apr 2015 21:31:36 +0000 (14:31 -0700)]
Add Directed/StructPromote test cases for JIT
Add Directed/StructPromote test cases for JIT. Related proj, config files
added. Solution file update is delayed to later PRs for parallel working.
Passed build, buildtest, runtest.
Dick van den Brink [Wed, 22 Apr 2015 21:23:46 +0000 (23:23 +0200)]
Fixed lldb not found error on fedora
liblldb is installed in /usr/lib64/llvm/liblldb.so
Bengu Li [Wed, 22 Apr 2015 21:13:34 +0000 (14:13 -0700)]
Add Generics/Fields test cases for JIT
Add Generics/Fields test cases for JIT. Related proj, config, and sln files
added and updated. Passed build, buildtest, runtest.
Jan Kotas [Wed, 22 Apr 2015 20:21:58 +0000 (13:21 -0700)]
Merge pull request #759 from brianrob/perfmap
Enable perf_events to resolve JIT compiled code addresses
Jan Henke [Wed, 22 Apr 2015 10:47:11 +0000 (12:47 +0200)]
Add optional arguments for choosing clang version and verbose build output
This commit adds two optional arguments to build.sh. The "verbose" option
enables verbose build output. This can be useful to debug build failures by
seeing the complete command line used to invoke the build.
The other option is "clangx.y", which allows to specify the clang version used
for the build. This makes it easy to test different clang versions and aid
future migration to newer clang releases and other platforms. Closes #740
Bengu Li [Wed, 22 Apr 2015 18:18:30 +0000 (11:18 -0700)]
Merge pull request #776 from libengu/TestInlineOpt
Add Inline test cases for JIT
Jan Kotas [Wed, 22 Apr 2015 18:18:10 +0000 (11:18 -0700)]
Merge pull request #774 from dotnet-bot/from-tfs
Merge changes from TFS
Bengu Li [Wed, 22 Apr 2015 17:36:50 +0000 (10:36 -0700)]
Add Inline test cases for JIT
Add inlining optimizaiton test cases for JIT. Related proj, config, and sln files
added and updated. Passed build, buildtest, runtest.
Prem Ramanathan [Wed, 22 Apr 2015 17:32:01 +0000 (10:32 -0700)]
Merge pull request #750 from fieryorc/pull/add-apis
Add few pal APIs to pal library
Prem Ramanathan [Tue, 21 Apr 2015 00:07:19 +0000 (17:07 -0700)]
Add few pal APIs needed for debugger code.
Added APIs:
InterlockedBitTestAndReset
InterlockedBitTestAndSet
InitializeCriticalSectionEx
Added test for the first two APIs.
Matt Mitchell [Wed, 22 Apr 2015 17:22:36 +0000 (10:22 -0700)]
Merge pull request #775 from mmitche/run-cppcheck
Initial commit of script to run cppcheck.
Matt Mitchell [Wed, 22 Apr 2015 16:23:46 +0000 (09:23 -0700)]
Initial commit of script to run cppcheck.
This script runs the cppcheck and sloccount tools for static analysis. The lab runs this script with the default arguments
Mark script as executable
Brian Robbins [Mon, 13 Apr 2015 23:18:16 +0000 (16:18 -0700)]
Adds support for resolving JIT compiled managed call frames in perf_events.
Matt Mitchell [Wed, 22 Apr 2015 15:11:45 +0000 (08:11 -0700)]
Merge pull request #768 from libengu/TestGenericsArrays
Add Generics/Arrays test cases for JIT
Jan Kotas [Tue, 21 Apr 2015 23:43:12 +0000 (16:43 -0700)]
Merge pull request #765 from DickvdBrink/llvm_locate_fix
Fixed locating llvm tools on fedora
Ryan Byington [Tue, 21 Apr 2015 23:15:59 +0000 (16:15 -0700)]
Update framework assembly for System.Uri WinRT projection from System.dll to Internal.Uri.dll
For NetCore for CoreCLR System.Uri was moved from System.dll to Internal.Uri.dll. This change updates the WinRT projection for this change.
This is a temporary workaround while we investigate a complete fix and will break phone and .NET 4.6 scenarios.
[tfs-changeset: 1457678]
Bengu Li [Tue, 21 Apr 2015 23:10:40 +0000 (16:10 -0700)]
Add Generics/Arrays test cases for JIT
Add test cases in directory JIT/Generics/Arrays. Related proj, config, and sln files
added and updated. Passed build, buildtest, runtest.
Bengu Li [Tue, 21 Apr 2015 22:40:41 +0000 (15:40 -0700)]
Merge pull request #766 from libengu/cmov
Add test cases in directory Directed/cmov
Bengu Li [Tue, 21 Apr 2015 18:42:30 +0000 (11:42 -0700)]
Add test cases in directory Directed/cmov
Add test cases in directory Directed/cmov. Logical operator
tests where many of the operations emit cmov instruciton on
x86\x64. Related proj, config, and sln files added and updated.
Passed build, buildtest, runtest.
Carol Eidt [Tue, 21 Apr 2015 18:23:21 +0000 (11:23 -0700)]
Merge pull request #752 from CarolEidt/PrecedenceFixes
Issue #609 & #610: Fix precedence issues
Jan Kotas [Tue, 21 Apr 2015 05:29:04 +0000 (22:29 -0700)]
Merge pull request #754 from jkotas/unnecessaryfile
Delete unnecessary .gitmirror file
Jan Kotas [Tue, 21 Apr 2015 05:23:07 +0000 (22:23 -0700)]
Delete unnecessary .gitmirror file
Jan Kotas [Tue, 21 Apr 2015 05:21:28 +0000 (22:21 -0700)]
Merge pull request #753 from dotnet-bot/from-tfs
Merge changes from TFS
Jan Kotas [Tue, 21 Apr 2015 04:09:22 +0000 (21:09 -0700)]
Use more appropriate mirror setting for src\corefx
[tfs-changeset: 1457001]
Jan Kotas [Tue, 21 Apr 2015 02:19:46 +0000 (19:19 -0700)]
Merge pull request #745 from bartonjs/crypto-interop-library
Create native interop library System.Security.Cryptography.Native
Dick van den Brink [Tue, 21 Apr 2015 00:51:59 +0000 (02:51 +0200)]
Fixed locating llvm tools on fedora
The locate_llvm_exec function was missing the $llvm_prefix
Bengu Li [Mon, 20 Apr 2015 23:26:51 +0000 (16:26 -0700)]
Merge pull request #746 from libengu/TestCheckedCtor
Add CSharp Base/Peer Constructor test cases
Jeremy Barton [Mon, 20 Apr 2015 23:03:44 +0000 (16:03 -0700)]
Create native interop library System.Security.Cryptography.Native
Bengu Li [Mon, 20 Apr 2015 21:38:27 +0000 (14:38 -0700)]
Add CSharp Base/Peer Constructor test cases
Add CSharp Base/Peer Constructor test cases. Related proj, config,
and sln files added and updated. Passed build, buildtest, runtest.
Carol Eidt [Mon, 20 Apr 2015 19:19:29 +0000 (12:19 -0700)]
Issue #609 & #610: Fix precedence issues
Near line 6089 in importer.cpp, enforcing the precedence indicated by
the indentation resulted in no diffs, which at first seemed surprising.
However, this is because we never encounter the other mask values
without calli.
Near line 10483, this is where we convert (dup, stloc) to (stloc, ldloc).
This was clearly intended only for non-debug mode, but the original code
in the importer was like this:
if (!opts.compDbgCode &&
(nextOpcode == CEE_STLOC) ||
(nextOpcode == CEE_STLOC_S) ||
((nextOpcode >= CEE_STLOC_0) &&
(nextOpcode <= CEE_STLOC_3)))
{
insertLdloc = true;
Due to the fact that the parens don't support the apparent intended
precedence, the condition is equivalent to:
if ((!opts.compDbgCode && (nextOpcode == CEE_STLOC) ||
(nextOpcode == CEE_STLOC_S) ||
((nextOpcode >= CEE_STLOC_0) && (nextOpcode <= CEE_STLOC_3)))
Changing it the apparent original meaning caused regressions. This is
because it is often cheaper to load a local (i.e. the insertLdloc case)
than to do a dup, which may 1) cause a temp to be created to store the
value on the stack, or 2) result in a tree (e.g. a large constant) which
is cloneable but which is more expensive in code bytes than a ldloc.
The original code clearly intended to do this only in the non-debug case,
but with the incorrect parens it was doing it for any short stloc. I'm
not sure that it is 100% OK to do this transformation on dbg code, but
we've apparently been doing it for some time (it's the same way in
jit32).
Adding the apparently intended parens caused regressions (158392 bytes
over all the MCH files). The change in this shelveset has a net
improvement (3848 bytes over all jitAsmDiffs). (Doing this
transformation in all cases, i.e. just eliminating the !opts.compDbgCode,
causes zero diffs, indicating that we don't have any instances of dups
followed by non-short stlocs.)
Fix #609
Fix #610
John Chen [Mon, 20 Apr 2015 16:21:19 +0000 (09:21 -0700)]
Merge pull request #742 from dotnet-bot/from-tfs
Merge changes from TFS
John Chen [Mon, 20 Apr 2015 15:36:31 +0000 (08:36 -0700)]
Enable build crossgen.exe from build.cmd.
Adds and modifies CMakeLists.txt files to enable building of crossgen.exe from build.cmd for x64 processor on Windows. Also adds a step in build.cmd to generate native image for mscorlib.
[tfs-changeset: 1456454]
Matt Ellis [Mon, 20 Apr 2015 05:17:54 +0000 (22:17 -0700)]
Merge pull request #736 from ellismg/hardcode-utf8-in-pal
Hardcode CP_ACP to UTF-8 on Linux