platform/upstream/coreclr.git
9 years agoDefine PAL_CS_NATIVE_DATA_SIZE for FreeBSD x86_64
Jostein Kjonigsen [Thu, 26 Mar 2015 06:43:17 +0000 (06:43 +0000)]
Define PAL_CS_NATIVE_DATA_SIZE for FreeBSD x86_64

Based on patch from @Aesthetikx which uses the program
[defined here](https://github.com/dotnet/coreclr/issues/60#issuecomment-73670124)
to determine the correct native size.

9 years agoFix debug-pal on FreeBSD.
Jostein Kjonigsen [Wed, 25 Mar 2015 17:02:21 +0000 (17:02 +0000)]
Fix debug-pal on FreeBSD.

This define is required to enable getline() on FreeBSD.

9 years agoDelete cppmunge
Jan Kotas [Wed, 25 Mar 2015 18:08:15 +0000 (11:08 -0700)]
Delete cppmunge

We have used this tool to boostrap the Unix build, but it is not used anymore.

9 years agoMerge pull request #543 from janvorli/native-resources
Jan Vorlicek [Wed, 25 Mar 2015 15:33:51 +0000 (16:33 +0100)]
Merge pull request #543 from janvorli/native-resources

Add native resources compilation on Linux

9 years agoPropagate bindtextdomain status to the caller
Jan Vorlicek [Wed, 25 Mar 2015 15:07:45 +0000 (16:07 +0100)]
Propagate bindtextdomain status to the caller

The bindtextdomain can fail due to OOM. Propagate the status out of the
PAL_BindResources.

9 years agoMerge pull request #557 from josteink/master
Jan Kotas [Wed, 25 Mar 2015 15:07:10 +0000 (08:07 -0700)]
Merge pull request #557 from josteink/master

build.sh: Fix CPU-count detection on FreeBSD.

9 years agoMerge pull request #556 from janhenke/freebsd-0325
Jan Vorlicek [Wed, 25 Mar 2015 14:50:00 +0000 (15:50 +0100)]
Merge pull request #556 from janhenke/freebsd-0325

Detect AMD64 Architecture on FreeBSD

9 years agoDetect AMD64 Architecture on FreeBSD
Jan Henke [Wed, 25 Mar 2015 09:39:26 +0000 (09:39 +0000)]
Detect AMD64 Architecture on FreeBSD

In contrast to Linux and Darwin, FreeBSD identifies the AMD64 architecture with
the "amd64" string. Extend the checks in CMakeLists to accept either "x86_64"
or "amd64" as AMD/Intel 64bit architecture.

9 years agobuild.sh: Fix CPU-count detection on FreeBSD.
Jostein Kjonigsen [Wed, 25 Mar 2015 10:40:02 +0000 (10:40 +0000)]
build.sh: Fix CPU-count detection on FreeBSD.

9 years agoMerge pull request #553 from Djuffin/dbi-linux
Eugene Zemtsov [Tue, 24 Mar 2015 23:48:01 +0000 (16:48 -0700)]
Merge pull request #553 from Djuffin/dbi-linux

Various DBI related fixes that make it possible to load DBI on Linux

9 years agoMake code comments more accurate
Eugene Zemtsov [Tue, 24 Mar 2015 22:34:20 +0000 (15:34 -0700)]
Make code comments more accurate

9 years agoGet rid of EventRedirectionPipeline() call on Unix
Eugene Zemtsov [Tue, 24 Mar 2015 21:58:11 +0000 (14:58 -0700)]
Get rid of EventRedirectionPipeline() call on Unix

9 years agoVarious DBI related fixes that make it possible to load DBI on Linux and attach to...
Eugene Zemtsov [Fri, 20 Mar 2015 04:10:56 +0000 (21:10 -0700)]
Various DBI related fixes that make it possible to load DBI on Linux and attach to a living CoreCLR process

9 years agoMerge pull request #551 from cmckinsey/ldnull-ldelem-ver-fix
Jan Kotas [Tue, 24 Mar 2015 21:02:11 +0000 (14:02 -0700)]
Merge pull request #551 from cmckinsey/ldnull-ldelem-ver-fix

Normalize array element type of ldnull to stack size for verification

9 years agoMerge pull request #548 from cmckinsey/nulltype
Jan Kotas [Tue, 24 Mar 2015 21:01:42 +0000 (14:01 -0700)]
Merge pull request #548 from cmckinsey/nulltype

Change null constant type to be TYP_REF for isinst nullcheck expansion

9 years agoMerge pull request #550 from janhenke/freebsd-buildsupport
Jan Kotas [Tue, 24 Mar 2015 20:48:32 +0000 (13:48 -0700)]
Merge pull request #550 from janhenke/freebsd-buildsupport

Force /usr/local/include as search path on FreeBSD

9 years agoTF#1144615 - Normalize array element type of ldnull to stack size for verification...
Chris McKinsey [Tue, 24 Mar 2015 19:33:47 +0000 (12:33 -0700)]
TF#1144615 - Normalize array element type of ldnull to stack size for verification purposes.

Stephen Toub reported a RyuJIT assertion failure in System.Linq.Expressions.Tests.dll on unix.
The debug assertion was firing to ensure that the verification element type is normalized to
the stack slot sized type for verification purpose in later code that expects this convention.

Testing: DDR_And_JitSelfHost_diffs al clean with no asm diffs.
Performance: 0 asm diffs so no impact

9 years agoForce /usr/local/include as search path on FreeBSD
Jan Henke [Tue, 24 Mar 2015 15:24:16 +0000 (15:24 +0000)]
Force /usr/local/include as search path on FreeBSD

CMake does not find headers installed in /usr/local/include by default. On
FreeBSD this is the default location for libunwind.h though. Define
CMAKE_REQUIERED_INCLUDE to include both /usr/local/include and /usr/include.
This change only affects FreeBSD. Also FreeBSD (like Darwin) does not work with
_DEFAULT_SOURCE or _POSIX_C_SOURCE defined. Closes #547

9 years agoMerge pull request #546 from stephentoub/expand_env_vars
Jan Kotas [Tue, 24 Mar 2015 12:34:21 +0000 (05:34 -0700)]
Merge pull request #546 from stephentoub/expand_env_vars

Implement ExpandEnvironmentVariables on Unix

9 years agoAdd native resources compilation on Linux
Jan Vorlicek [Thu, 19 Mar 2015 20:06:20 +0000 (21:06 +0100)]
Add native resources compilation on Linux

This change adds compilation of native resources into a gettext binary format and
loading of string resources in coreclr on Linux.
On OSX, the resource string still contains just a formatted resource id.

9 years agoImplement ExpandEnvironmentVariables on Unix
Stephen Toub [Tue, 24 Mar 2015 06:32:55 +0000 (23:32 -0700)]
Implement ExpandEnvironmentVariables on Unix

The Environment type exposes ExpandEnvironmentVariables, but the corresponding Win32 function isn't available in the PAL, and thus calling Environment.ExpandEnvironmentVariables fails with an EntryPointNotFoundException for ExpandEnvironmentVariables from libcoreclr.dll.

This commit provides a basic implementation of the function in the managed ExpandEnvironmentVariables method on Unix.  It passes all of the corresponding tests in System.Runtime.Extensions.Tests.dll.

9 years agoMerge pull request #544 from stephentoub/fix_textinfo
Jan Kotas [Tue, 24 Mar 2015 05:36:49 +0000 (22:36 -0700)]
Merge pull request #544 from stephentoub/fix_textinfo

Initialize TextInfo's m_textInfoName in stubbed out globalization on Unix

9 years agoInitialize TextInfo's m_textInfoName in stubbed out globalization
Stephen Toub [Tue, 24 Mar 2015 05:18:33 +0000 (22:18 -0700)]
Initialize TextInfo's m_textInfoName in stubbed out globalization

Some System.Runtime.Extensions tests are failing due to IsAsciiCasingSameAsInvariant trying to use a null m_textInfoName.

9 years agoChange null constant type to be TYP_REF for isinst nullcheck expansion
Chris McKinsey [Tue, 24 Mar 2015 02:20:32 +0000 (19:20 -0700)]
Change null constant type to be TYP_REF for isinst nullcheck expansion

In the importer when inlining the fast expansion sequence for
isinst/castclass, the code was typing the constant 0 source of the
compare with TYP_I_IMPL instead of TYP_REF. Not only does this create
an inconsistently typed compare but it causes value-numbering of
the same constants with different types to not be equal. This blocks
later assertion propagation that propagates null-checks and prevents
many cases from being eliminated.

This change changes the type of the constant gtNode to be TYP_REF.
With this change there are many good diffs in the frameworks and
other assemblies.

Ran testing in desktop branch including SuperPMI asm diffs. Asm
diffs show hundreds of methods with improvements in framework
, Roslyn, and other internal assemblies. 1% code size reduction in
the methods that have changes. All diffs are elimination of redundant
null-checks.

9 years agoMerge pull request #525 from Djuffin/thread_id
Jan Kotas [Tue, 24 Mar 2015 00:22:16 +0000 (17:22 -0700)]
Merge pull request #525 from Djuffin/thread_id

Clean up PLA thread id usage.

9 years agoMerge pull request #524 from ellismg/stat-in-pal
Matt Ellis [Mon, 23 Mar 2015 22:47:17 +0000 (15:47 -0700)]
Merge pull request #524 from ellismg/stat-in-pal

Add Stat like methods to CoreFX PAL

9 years agoPrefer stat64 if present
Matt Ellis [Sat, 21 Mar 2015 02:26:03 +0000 (19:26 -0700)]
Prefer stat64 if present

Probe for the existence of stat64 and use it over stat if it
exists.  Aditionally, update the check around having a birthtime to be
more portable.

9 years agoRefactoring similar pieces of code into a function
Eugene Zemtsov [Mon, 23 Mar 2015 21:46:25 +0000 (14:46 -0700)]
Refactoring similar pieces of code into a function

9 years agoAdd Stat like methods to CoreFX PAL
Matt Ellis [Fri, 20 Mar 2015 07:31:06 +0000 (00:31 -0700)]
Add Stat like methods to CoreFX PAL

CoreFX would like to be able to call stat(2) and fstat(2) but directly
pinvoking to them from managed code is a bit of a chore, since the calls
depend on both the platform and architecture of the target platform.

This change adds stable versions of these APIs that the managed code can
interact with, internally the runtime calls the APIs using the platform
specific APIs and structures.

Long term it might be a good idea to move some of this stuff out of the
runtime and to a native helper library in CoreFX, so we have one less
dependency on the runtime and the ABI between managed and native code
for these methods can version withour reving the runtime, but for now we
put them in the runtime, like our other CoreFX PAL functions, since we
don't have a great way of building native code (let alone platform
specific native code) in CoreFX.

9 years agoMerge pull request #540 from dotnet-bot/from-tfs
Jan Kotas [Mon, 23 Mar 2015 19:47:17 +0000 (12:47 -0700)]
Merge pull request #540 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoMerge pull request #539 from jkotas/glob
Jan Kotas [Mon, 23 Mar 2015 18:43:16 +0000 (11:43 -0700)]
Merge pull request #539 from jkotas/glob

More stubbed out globalization

9 years agoMore stubbed out globalization
Jan Kotas [Mon, 23 Mar 2015 18:17:16 +0000 (11:17 -0700)]
More stubbed out globalization

9 years agoMerge pull request #531 from mikem8361/name2ee
Mike McLaughlin [Mon, 23 Mar 2015 17:37:38 +0000 (10:37 -0700)]
Merge pull request #531 from mikem8361/name2ee

Enable DumpLog and Name2EE sos commands

9 years agoMerge pull request #538 from sergiy-k/context-flags
Jan Kotas [Mon, 23 Mar 2015 15:49:45 +0000 (08:49 -0700)]
Merge pull request #538 from sergiy-k/context-flags

Fix CONTEXT_CaptureContext to correctly store the processor flags

9 years agoMerge pull request #527 from jkotas/macunwind
Jan Kotas [Mon, 23 Mar 2015 15:49:02 +0000 (08:49 -0700)]
Merge pull request #527 from jkotas/macunwind

Fix reporting of callee saved registers with nongnu libuwind

9 years agoFix compilation of context.cpp
Eugene Zemtsov [Sat, 21 Mar 2015 03:06:05 +0000 (20:06 -0700)]
Fix compilation of context.cpp

9 years agoClean up PLA thread id usage.
Eugene Zemtsov [Fri, 20 Mar 2015 10:30:56 +0000 (03:30 -0700)]
Clean up PLA thread id usage.

CPalThread::GetThreadId() was inconsistent with GetCurrentThread() that sometimes led to issues like CreateThread returning incorrect thread id.
This changes makes a clean distinction between thread id and pthread handle (pthread_t), both get stored in CPalThread and both can be appropriately used when necessary.
General direction is that gettip() is used for communication with the outer world, and pthread_self() is used for internal work with pthread API.

9 years agoFix CONTEXT_CaptureContext to correctly store the processor flags
Sergiy Kuryata [Mon, 23 Mar 2015 01:25:29 +0000 (18:25 -0700)]
Fix CONTEXT_CaptureContext to correctly store the processor flags

The CONTEXT_CaptureContext function did not correctly captured the value of EFlags. The problem was that there were calls to the test instruction before reading EFlags. This change fixes it.

9 years agoIncorporated codereview feedback
Jan Kotas [Mon, 23 Mar 2015 00:52:27 +0000 (17:52 -0700)]
Incorporated codereview feedback

9 years agoMerge pull request #535 from Djuffin/stress_log
Jan Kotas [Mon, 23 Mar 2015 00:45:46 +0000 (17:45 -0700)]
Merge pull request #535 from Djuffin/stress_log

Make stresslog work for libraries other than CoreClr (I need it for DBI)

9 years agoMerge pull request #532 from jkotas/slotassert
Jan Kotas [Mon, 23 Mar 2015 00:10:31 +0000 (17:10 -0700)]
Merge pull request #532 from jkotas/slotassert

Fix invocation of shared generic multicast delegate

9 years agoMerge pull request #537 from stephentoub/comparison_fixes
Jan Kotas [Mon, 23 Mar 2015 00:09:58 +0000 (17:09 -0700)]
Merge pull request #537 from stephentoub/comparison_fixes

Fixes to string comparison in stubbed out Unix globalization

9 years agoReplace PAL_GetCoreClrModuleBase() with PAL_GetPalModuleBase()
Eugene Zemtsov [Mon, 23 Mar 2015 00:07:17 +0000 (17:07 -0700)]
Replace PAL_GetCoreClrModuleBase() with PAL_GetPalModuleBase()

9 years agoMake stresslog work for libraries other than CoreClr (I need it for DBI)
Eugene Zemtsov [Fri, 20 Mar 2015 09:22:02 +0000 (02:22 -0700)]
Make stresslog work for libraries other than CoreClr (I need it for DBI)

Introducing of PAL_GetPalModuleBase removes dependency on CoreCLR name for
stress log module address.

9 years agoFix string.ToUpper/ToLower to use the computed result
Stephen Toub [Sun, 22 Mar 2015 20:04:45 +0000 (16:04 -0400)]
Fix string.ToUpper/ToLower to use the computed result

Amazing the difference a single character can make :)

9 years agoFix CompareStringOrdinalAscii to support !ignoreCase
Stephen Toub [Sun, 22 Mar 2015 19:08:16 +0000 (15:08 -0400)]
Fix CompareStringOrdinalAscii to support !ignoreCase

CompareStringOrdinalAscii is using the ignoreCase argument to decide whether to normalize the input characters to upper case.  But the function then mistakenly ignores the result of this and always normalizes.  This commit just changes the implementation to use the chars the resulted from deciding whether to normalize or not.

9 years agoMerge pull request #533 from jkotas/glob
Stephen Toub [Sun, 22 Mar 2015 20:35:48 +0000 (16:35 -0400)]
Merge pull request #533 from jkotas/glob

Initialize number separators in stubbed out globalization

9 years agoMerge pull request #534 from jfrijters/botr-typos
Jan Kotas [Sun, 22 Mar 2015 13:24:37 +0000 (06:24 -0700)]
Merge pull request #534 from jfrijters/botr-typos

Fixed two typos in BoTR clr-code-guide.md.

9 years agoFixed two typos.
Jeroen Frijters [Sat, 21 Mar 2015 08:12:31 +0000 (09:12 +0100)]
Fixed two typos.

9 years agoFixed typo.
Mike McLaughlin [Sun, 22 Mar 2015 00:55:10 +0000 (17:55 -0700)]
Fixed typo.

9 years agoInitialize number separators in stubbed out globalization
Jan Kotas [Sun, 22 Mar 2015 00:41:36 +0000 (17:41 -0700)]
Initialize number separators in stubbed out globalization

9 years agoFix invocation of shared generic multicast delegate
Jan Kotas [Sat, 21 Mar 2015 23:43:47 +0000 (16:43 -0700)]
Fix invocation of shared generic multicast delegate

JITing of IL stubs for invocation of shared generic multicast delegates
 e.g. Action<string> a = .. + ..; a(); crashed in JIT on security check
because of IL stubs have non-standard MethodDesc. The security check is
unnecessary for IL stubs - the fix is to shortcircuit it for IL stubs.

9 years agoAdd host flag to disable transparency checks in CoreCLR
Jan Kotas [Sat, 21 Mar 2015 22:40:51 +0000 (15:40 -0700)]
Add host flag to disable transparency checks in CoreCLR

A lot of security transparency annotations in corefx is missing or inconsistent. People keep running into MethodAccessExceptions because of that. It is not easy (nor cheap) to fix the annotations to make them consistent, and they are not actually required for any of the .NET Core scenarios.

This change is introducing a hosting flag to disable security transparency checks on CoreCLR, and adds this flag to all .NET Core hosts. The .NET Core hosts outside of the CoreCLR tree (e.g. ASP.NET 5) will need this flag added as well.

[tfs-changeset: 1437325]

9 years agoMerge remote-tracking branch 'upstream/master' into name2ee
Mike McLaughlin [Sat, 21 Mar 2015 22:17:01 +0000 (15:17 -0700)]
Merge remote-tracking branch 'upstream/master' into name2ee

9 years agoEnable DumpLog.
Mike McLaughlin [Fri, 20 Mar 2015 19:54:21 +0000 (12:54 -0700)]
Enable DumpLog.

Implemented DebugClient::GetNameByOffset for the DumpLog command.

Implemented stressLogDump.cpp's getTime for Linux by just formatting the system time.

Removed PAL_FormatDateW because there is no implementation.

Fix expression parsing to better default to hex (without the 0x) since most of the addresses and hex values printed by the sos commands don't have the 0x.

9 years agoMerge pull request #530 from stephentoub/fix_indexofordinal
Jan Kotas [Sat, 21 Mar 2015 18:43:19 +0000 (11:43 -0700)]
Merge pull request #530 from stephentoub/fix_indexofordinal

Fix an IndexOutOfRangeException in IndexOfOrdinal on Unix

9 years agoFix an IndexOutOfRangeException in IndexOfOrdinal
Stephen Toub [Sat, 21 Mar 2015 17:05:30 +0000 (13:05 -0400)]
Fix an IndexOutOfRangeException in IndexOfOrdinal

In the temporary implementation of CompareInfo.IndexOfOrdinal on Unix, we sometimes hit an IndexOutOfRangeException as the inner loop tries to go past the end of the source string.

9 years agoMerge pull request #529 from stephentoub/tweak_glob_stubs
Stephen Toub [Sat, 21 Mar 2015 15:03:07 +0000 (11:03 -0400)]
Merge pull request #529 from stephentoub/tweak_glob_stubs

Stub out more globalization with values rather than with exceptions

9 years agoStub out more globalization with values rather than with exceptions
Stephen Toub [Sat, 21 Mar 2015 13:45:10 +0000 (09:45 -0400)]
Stub out more globalization with values rather than with exceptions

Much of our globalization support is not yet implemented and is appropriately throwing NotImplementedException.  However, this is hindering progress in other areas of the system that end up relying on globalization.  This commit just changes the common cases where we were throwing NotImplementedException to instead return a default value; the "TODO: Implement this" comments have been left in place.

9 years agoMerge pull request #526 from kangaroo/issue-263
Jan Kotas [Sat, 21 Mar 2015 04:53:23 +0000 (21:53 -0700)]
Merge pull request #526 from kangaroo/issue-263

Correct #if conditional for WRITE_0_BYTES_HANGS_TTY

9 years agoCorrect #if conditional for WRITE_0_BYTES_HANGS_TTY
Geoff Norton [Sat, 21 Mar 2015 04:17:53 +0000 (21:17 -0700)]
Correct #if conditional for WRITE_0_BYTES_HANGS_TTY

9 years agoFix reporting of callee saved registers with nongnu libuwind
Jan Kotas [Sat, 21 Mar 2015 04:08:31 +0000 (21:08 -0700)]
Fix reporting of callee saved registers with nongnu libuwind

The callee saved registers were not preserved for GC stackwalk with nongnu
libunwind that does not provide context pointers. Fixed by adding an extra
space to MachState to preserve them.

To avoid large amounts of copy&pasted code, introduced macro to enumerate
all callee saved registers, similar to existing macro to enumerate all
argument registers. This macro makes the code to copy the register values
between different structures more compact, and less prone to typos.

9 years agoMerge pull request #511 from kangaroo/unwind-fix-two
Jan Kotas [Fri, 20 Mar 2015 16:32:14 +0000 (09:32 -0700)]
Merge pull request #511 from kangaroo/unwind-fix-two

Fix unwinding past main on OSX

9 years agoFix unwinding past main on OSX
Geoff Norton [Thu, 19 Mar 2015 03:58:12 +0000 (20:58 -0700)]
Fix unwinding past main on OSX

When reaching the bottom of the real stack, OSX does not change the $pc
to 0x0, like llvm libunwind.  It returns 0 from unw_step, and leaves the
$pc unchanged, so we will track cur and prev pc and guard for this as well
Fixes Localloc codegen test, and also verified a simple throw from main
works as expected.

9 years agoMerge pull request #522 from jkotas/gcstress
Jan Kotas [Fri, 20 Mar 2015 14:05:27 +0000 (07:05 -0700)]
Merge pull request #522 from jkotas/gcstress

Workaround for DECIMAL calling convention in FCalls

9 years agoMerge pull request #520 from kangaroo/build-fix
Jan Kotas [Fri, 20 Mar 2015 12:18:28 +0000 (05:18 -0700)]
Merge pull request #520 from kangaroo/build-fix

Fix the build on OSX.  std::string is used without <string>

9 years agoWorkaround for DECIMAL calling convention in FCalls
Jan Kotas [Fri, 20 Mar 2015 12:15:51 +0000 (05:15 -0700)]
Workaround for DECIMAL calling convention in FCalls

9 years agoMerge pull request #521 from dotnet-bot/from-tfs
Jan Kotas [Fri, 20 Mar 2015 11:43:16 +0000 (04:43 -0700)]
Merge pull request #521 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoMerge pull request #514 from soimort/fix-glibc-2.18-and-earlier
Jan Kotas [Fri, 20 Mar 2015 11:42:38 +0000 (04:42 -0700)]
Merge pull request #514 from soimort/fix-glibc-2.18-and-earlier

Fix build on glibc versions prior to 2.19

9 years agoMerge pull request #519 from jkotas/gcstress
Jan Kotas [Fri, 20 Mar 2015 11:40:47 +0000 (04:40 -0700)]
Merge pull request #519 from jkotas/gcstress

Correct order of argument registers

9 years agoFix contract for ETW::TypeSystemLog::FlushObjectAllocationEvents
Jan Kotas [Fri, 20 Mar 2015 11:16:15 +0000 (04:16 -0700)]
Fix contract for ETW::TypeSystemLog::FlushObjectAllocationEvents

[tfs-changeset: 1436668]

9 years agoMerge pull request #518 from janvorli/fix-personality-routines
Jan Kotas [Fri, 20 Mar 2015 10:55:36 +0000 (03:55 -0700)]
Merge pull request #518 from janvorli/fix-personality-routines

Fix Unix asm stubs personality routines

9 years agoFix Unix asm stubs personality routines
Jan Vorlicek [Fri, 20 Mar 2015 00:51:53 +0000 (01:51 +0100)]
Fix Unix asm stubs personality routines

The Unix asm stubs had personality routines that were the windows personality
routines. This was incorrect since the signature of the Unix ones is completely
different. Moreover, some of these personality routines were not necessary
on Unix at all and two of them should dump the stack and terminate the process
instead of the handling that was necessary on Windows.
Finally, I've fixed an issue in the HandleHardwareException that contains
_ASSERTE in case the hardware exception was unhandled. But _ASSERTE contains
a debugger break instruction, which in the absence of the debugger invokes
the HandleHardwareException again. So I've added detection of the
breakpoint.

9 years agoCorrect order of argument registers
Jan Kotas [Fri, 20 Mar 2015 04:10:37 +0000 (21:10 -0700)]
Correct order of argument registers

9 years agoMerge pull request #515 from stephentoub/pal_startprocess
Stephen Toub [Fri, 20 Mar 2015 04:04:05 +0000 (00:04 -0400)]
Merge pull request #515 from stephentoub/pal_startprocess

Add ForkAndExecProcess to PAL to support CoreFX

9 years agoFix the build on OSX. std::string is used without <string>
Geoff Norton [Fri, 20 Mar 2015 03:22:16 +0000 (20:22 -0700)]
Fix the build on OSX.  std::string is used without <string>

9 years agoAdd ForkAndExecProcess to PAL to support CoreFX
Stephen Toub [Thu, 19 Mar 2015 15:16:13 +0000 (11:16 -0400)]
Add ForkAndExecProcess to PAL to support CoreFX

System.Diagnostics.Process.Start needs to fork/execve
in order to create the process, but fork is unsafe
in managed code.  This commit pushes the core logic
needed to fork/execve into native code; a separate commit
in CoreFX will then take advantage of this function.

For now, I'm putting this in the runtime.  Longer-term we
can evaluate whether it makes sense to distribute a separate
library with System.Diagnostics.Process just for this function.

9 years agoMerge pull request #517 from jaredpar/fix-build-unixmscorlib
Jan Kotas [Fri, 20 Mar 2015 02:41:56 +0000 (19:41 -0700)]
Merge pull request #517 from jaredpar/fix-build-unixmscorlib

Build unixmscorlib without CMake

9 years agoDo not use _POSIX_C_SOURCE on Darwin
Mort Yao [Fri, 20 Mar 2015 01:56:18 +0000 (09:56 +0800)]
Do not use _POSIX_C_SOURCE on Darwin

9 years agoExplicitly specify POSIX.1-2008 conformance
Mort Yao [Thu, 19 Mar 2015 10:57:48 +0000 (18:57 +0800)]
Explicitly specify POSIX.1-2008 conformance
- Fix build on glibc versions prior to 2.19

9 years agoBuild unixmscorlib without CMake
Jared Parsons [Thu, 19 Mar 2015 23:59:26 +0000 (16:59 -0700)]
Build unixmscorlib without CMake

The Linux build instructions don't list CMake as a pre-requisite for
building mscorlib yet build.cmd errors out if it is not present on the
machine.  CMake isn't actually necessary for this particular build so
instead of requiring users to install CMake when not needed I added code
to skip the CMake detection logic in this case.

9 years agoMerge pull request #516 from jkotas/assemblyloadcontextfix
Jan Kotas [Thu, 19 Mar 2015 22:32:58 +0000 (15:32 -0700)]
Merge pull request #516 from jkotas/assemblyloadcontextfix

Throw FileNotFoundException in AssemblyLoadContext for unresolved Assemb...

9 years agoMerge pull request #500 from mikem8361/dumpcmds
Mike McLaughlin [Thu, 19 Mar 2015 22:27:26 +0000 (15:27 -0700)]
Merge pull request #500 from mikem8361/dumpcmds

Enable the rest of the sos dump commands and supporting functions.

9 years agoMerge remote-tracking branch 'upstream/master' into dumpcmds
Mike McLaughlin [Thu, 19 Mar 2015 21:55:18 +0000 (14:55 -0700)]
Merge remote-tracking branch 'upstream/master' into dumpcmds

9 years agoEnable the rest of the Dump commands and supporting functions.
Mike McLaughlin [Mon, 16 Mar 2015 22:02:02 +0000 (15:02 -0700)]
Enable the rest of the Dump commands and supporting functions.

Undo some mistakes made in my previous commits.

Don't create the sync manager,  seh threads and seh itself.

Addressed @jkotas, @sergiy-k and @janvorli review feedback.  Added a set of PAL_Initialize flags that control what gets initialized and a new PAL_InitializeDLL entry point that the SOS and DAC module use.  This new entry point only does the subset of PAL init that is needed for a module outside of the coreclr runtime.

Fixed GetCurrentFrame() to get the current selected stack frame.

Used @janvorli suggestion of installing a PAL hardware exception and having it throw a C++ exception so the DAC can cause invalid pointers.

9 years agoThrow FileNotFoundException in AssemblyLoadContext for unresolved AssemblyName
Jan Kotas [Thu, 19 Mar 2015 21:36:11 +0000 (14:36 -0700)]
Throw FileNotFoundException in AssemblyLoadContext for unresolved AssemblyName

FileLoadException thrown internally by AssemblyLoadContext for unresolved AssemblyName was escaping from Type.GetType(..., throwOnError:false).

The fix is to throw FileNotFoundException instead that is one of the specific types specifically filtered out for throwOnError:false.

9 years agoMerge pull request #468 from LLITCHEV/work
Lubomir Litchev [Thu, 19 Mar 2015 21:27:14 +0000 (14:27 -0700)]
Merge pull request #468 from LLITCHEV/work

Enable ETW_EBP_FRAMED flag on System V systems.

9 years agoMerge pull request #508 from dotnet-bot/from-tfs
Eugene [Thu, 19 Mar 2015 02:03:29 +0000 (19:03 -0700)]
Merge pull request #508 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoAdding one more missing changes for ICastable
Eugene Zemtsov [Thu, 19 Mar 2015 01:38:09 +0000 (18:38 -0700)]
Adding one more missing changes for ICastable

[tfs-changeset: 1435505]

9 years agoMerge pull request #507 from dotnet-bot/from-tfs
Jan Kotas [Thu, 19 Mar 2015 01:28:18 +0000 (18:28 -0700)]
Merge pull request #507 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoMerge pull request #496 from dotnet-bot/from-tfs
Jan Kotas [Thu, 19 Mar 2015 01:19:38 +0000 (18:19 -0700)]
Merge pull request #496 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoActivating ICastable for CoreClr
Eugene Zemtsov [Thu, 19 Mar 2015 00:59:02 +0000 (17:59 -0700)]
Activating ICastable for CoreClr

[tfs-changeset: 1435446]

9 years agoMerge pull request #495 from kangaroo/issue-452
Jan Kotas [Thu, 19 Mar 2015 00:34:21 +0000 (17:34 -0700)]
Merge pull request #495 from kangaroo/issue-452

Fix unwinding through assembly helpers

9 years agoMerge pull request #498 from kangaroo/issue-192
Jan Kotas [Thu, 19 Mar 2015 00:33:59 +0000 (17:33 -0700)]
Merge pull request #498 from kangaroo/issue-192

Implement hardware exception handling for OSX

9 years agoImplement hardware exception handling for OSX
Geoff Norton [Wed, 18 Mar 2015 23:14:56 +0000 (16:14 -0700)]
Implement hardware exception handling for OSX

As a first pass this keeps the existing old PAL_DispatchException
machinery, but directs it to the new hardware exception handler
registered by the runtime.  A future optimization can probably
eliminate the PAL_DispatchExceptionWrapper as we do not need to
work around the unwinding problems cited anymore.

9 years agoImplement runtime support for ICastable interface
Eugene Zemtsov [Wed, 18 Mar 2015 21:40:26 +0000 (14:40 -0700)]
Implement runtime support for ICastable interface

The goal of this change is to facilitate an alternative (MCG based) way of doing COM interop, we're going to use it on Unix platforms.
New ICastable interface allows objects to pretend at runtime that they support an interface and to provide an alternative type that is used to resolve actual calls to interface methods.
BE VERY CAREFUL: This is a very dangerous feature, and at this stage it can easily lead to memory corruption without any native code involved.
Reviewers: Yi Zhang, Noah Falk, Jan Kotas. DDR clean.

[tfs-changeset: 1435198]

9 years agoEnable ETW_EBP_FRAMED flag on System V systems.
Lubomir Litchev [Fri, 13 Mar 2015 15:34:17 +0000 (08:34 -0700)]
Enable ETW_EBP_FRAMED flag on System V systems.
Enable the ETW_EBP_FRAMED flag on System V systems to allow for using
frame pointer (RBP) for mostly all functions.
The change includes:
1. Removing RBP from all the lists of registers that the RA uses to assign
to tmps/vars/etc.
2. Enable generation of unwind info for pushing of REG_FPBASE even if not included in callee-save list
of registers.
3 Fixed a conservative assert - for System V systems stack offset for reg
passed argument can be 0 or even positive.

9 years agoFix unwinding through assembly helpers
Geoff Norton [Wed, 18 Mar 2015 21:06:02 +0000 (14:06 -0700)]
Fix unwinding through assembly helpers

NESTED_ENTRY/NESTED_END assembly helpers are currently using cfi ops
that are not supported by Apple's compact unwind format.  Additionally
the apple linker appears to be doing the wrong thing, and mapping functions
like CallDescrWorkerInternal to an invalid compatc unwind encoding.  This
patch manually emits the __compact_unwind section manually for the affected
functions, and points the unwinder to parse the DWARF instead of using the
compact table.

9 years agoMerge pull request #494 from richlander/rich-introclr
Rich Lander [Wed, 18 Mar 2015 20:53:57 +0000 (13:53 -0700)]
Merge pull request #494 from richlander/rich-introclr

Add heading to intro

9 years agoMerge pull request #492 from jkotas/vsprompt
Jan Kotas [Wed, 18 Mar 2015 19:20:55 +0000 (12:20 -0700)]
Merge pull request #492 from jkotas/vsprompt

Remove check for VS Developer Command Prompt