Richard Lander [Tue, 17 Mar 2015 18:00:44 +0000 (11:00 -0700)]
Convert document index into more GH-centric format
Jan Kotas [Tue, 17 Mar 2015 17:36:02 +0000 (10:36 -0700)]
Merge pull request #482 from richlander/jack-pappas-dotnet-standards
Respond to feedback for .NET Standards PR #413
Richard Lander [Tue, 17 Mar 2015 16:56:37 +0000 (09:56 -0700)]
Update doc based on @CarolEidt feedback.
Richard Lander [Tue, 17 Mar 2015 16:53:21 +0000 (09:53 -0700)]
Merge branch 'dotnet-standards' of https://github.com/jack-pappas/coreclr into jack-pappas-dotnet-standards
Jan Kotas [Tue, 17 Mar 2015 15:59:40 +0000 (08:59 -0700)]
Merge pull request #476 from jkotas/viva
Fix some of the issues found by Viva64 static analyser
Matt Mitchell [Tue, 17 Mar 2015 15:26:57 +0000 (08:26 -0700)]
Merge pull request #469 from mmitche/mac-ci
Remove travis CI and add Mac badges
Jan Kotas [Tue, 17 Mar 2015 14:32:03 +0000 (07:32 -0700)]
Fix some of the issues found by Viva64 static analyser
Jan Kotas [Tue, 17 Mar 2015 12:22:54 +0000 (05:22 -0700)]
Merge pull request #473 from kangaroo/osx-debuggerpresent
Implement IsDebuggerPresent for OSX
Geoff Norton [Tue, 17 Mar 2015 02:48:39 +0000 (19:48 -0700)]
Implement IsDebuggerPresent for OSX
Mike McLaughlin [Tue, 17 Mar 2015 00:34:14 +0000 (17:34 -0700)]
Merge pull request #466 from mikem8361/printexception
Enable sos's PrintException command
Mike McLaughlin [Tue, 17 Mar 2015 00:07:44 +0000 (17:07 -0700)]
Merge remote-tracking branch 'origin/printexception' into printexception
Mike McLaughlin [Fri, 13 Mar 2015 22:36:02 +0000 (15:36 -0700)]
Build the PrintException command and related support functions.
Undef some temporary code that uses the global pointer table and fixed a pre-existing off by one error getting a managed string.
Fixed unnecessary string length addition.
Implement PAL_IsDebuggerPresent for Linux so the managed DebugBreak stops in native debugger.
Finish the off by one string length change.
@janvorli review feedback addressed: fixed buffer off by one error and use '\0' instead of 0.
@jkotas review feedback addressed: increate the file buffer PAL_IsDebuggerPresent uses to 2K.
Jan Kotas [Mon, 16 Mar 2015 23:18:15 +0000 (16:18 -0700)]
Merge pull request #472 from jkotas/IsPrecodeByAsm
Delete PrecodeStubManager::PrecodeIsPrecodeByAsm method
Jan Kotas [Mon, 16 Mar 2015 22:54:49 +0000 (15:54 -0700)]
Merge pull request #465 from janvorli/nonexistent-context-pointers
Make GC work without context pointers on OSX
Jan Kotas [Mon, 16 Mar 2015 22:51:52 +0000 (15:51 -0700)]
Delete PrecodeStubManager::PrecodeIsPrecodeByAsm method
This method was expensive to port. There was just one place remaining that used. I have replaced it with different implementation.
Jan Kotas [Mon, 16 Mar 2015 22:40:12 +0000 (15:40 -0700)]
Merge pull request #470 from qbit/master
Initial support for OpenBSD
Mike McLaughlin [Mon, 16 Mar 2015 22:11:36 +0000 (15:11 -0700)]
Increate the file buffer PAL_IsDebuggerPresent uses to 2K.
Jan Vorlicek [Sat, 14 Mar 2015 00:06:14 +0000 (01:06 +0100)]
Make GC work without context pointers on OSX
On OSX, the libunwind doesn't have support for getting context pointers.
This change modifies the way GC handles object pointers in registers
so that when the context pointer cannot be obtained, the object is
pinned so that GC doesn't move it and thus doesn't need to update
the object reference in the register value stored on the stack.
Aaron Bieber [Mon, 16 Mar 2015 20:50:38 +0000 (14:50 -0600)]
fix build on OpenBSD
fix indent
more indent
fix indenting
Matt Mitchell [Mon, 16 Mar 2015 21:54:06 +0000 (14:54 -0700)]
Merge pull request #433 from mmitche/fix-indepdent-test-build
Fixes for building tests alone
Matt Mitchell [Mon, 16 Mar 2015 20:43:43 +0000 (13:43 -0700)]
Remove travis CI and add Mac badges
Matt Mitchell [Wed, 11 Mar 2015 18:45:35 +0000 (11:45 -0700)]
Fixes for building tests alone
This change fixes an issue where tests cannot be built alone as well as cleans up the paths. The general path cleanup was done so that the path format and variable names generally follow the main build of the coreclr repo. Some highlights are:
* Don't use Cmake as a directory name for intermediates, use intermediates instead.
* Disable 4820 warning (this is about padding) when building tests. Reduces noise in output significantly
* Some fixes in typos and casing in the project files and build scripts
Mike McLaughlin [Mon, 16 Mar 2015 18:50:25 +0000 (11:50 -0700)]
@janvorli review feedback addressed.
Mike McLaughlin [Mon, 16 Mar 2015 17:27:59 +0000 (10:27 -0700)]
Merge remote-tracking branch 'upstream/master' into printexception
Matt Mitchell [Mon, 16 Mar 2015 15:13:30 +0000 (08:13 -0700)]
Merge pull request #464 from mmitche/remove-ci-script
Remove the CI cmd script, it's unused
Matt Mitchell [Mon, 16 Mar 2015 15:12:28 +0000 (08:12 -0700)]
Remove the CI cmd script. Unused.
Jan Kotas [Mon, 16 Mar 2015 13:36:58 +0000 (06:36 -0700)]
Merge pull request #453 from janhenke/freebsd
Inital build support for FreeBSD.
Jan Henke [Tue, 10 Mar 2015 17:32:52 +0000 (18:32 +0100)]
Inital build support for FreeBSD.
Add FreeBSD to various build scripts, so this platform is detected and properly
configured.
Jan Vorlicek [Mon, 16 Mar 2015 09:54:26 +0000 (10:54 +0100)]
Merge pull request #459 from japj/japj-457
Remove duplicate object code from cordbdi
Jan Vorlicek [Mon, 16 Mar 2015 09:46:31 +0000 (10:46 +0100)]
Merge pull request #449 from jkotas/mounted-binaries
Fix handling of links and non-Linux file systems in Unix corerun
Jan Kotas [Mon, 16 Mar 2015 02:50:48 +0000 (19:50 -0700)]
Merge pull request #460 from japj/japj-458
Fix missing bool type for IsAppXNGen
Jeroen Janssen [Sun, 15 Mar 2015 23:10:33 +0000 (00:10 +0100)]
Fix missing bool type for IsAppXNGen
Jeroen Janssen [Sun, 15 Mar 2015 23:05:53 +0000 (00:05 +0100)]
Remove duplicate object code from cordbdi
eventredirectionpipeline.cpp is #included by platformspecific.cpp,
so remove it from the CMakeLists.txt since that causes linker warnings
Jan Kotas [Sun, 15 Mar 2015 20:32:03 +0000 (13:32 -0700)]
Merge pull request #443 from japj/japj-113
Add check and instruction to build.cmd to run from normal prompt
Jan Kotas [Sun, 15 Mar 2015 20:30:18 +0000 (13:30 -0700)]
Merge pull request #451 from japj/japj-106
Put Marshal.Read/Write with Object under FEATURE_LEGACYSURFACE
Mike McLaughlin [Sun, 15 Mar 2015 19:39:36 +0000 (12:39 -0700)]
Finish the off by one string length change.
Jeroen Janssen [Sun, 15 Mar 2015 19:16:09 +0000 (20:16 +0100)]
Grouped related Read/Write methods + consistent xml tag ending
Jeroen Janssen [Sun, 15 Mar 2015 19:04:46 +0000 (20:04 +0100)]
rephrase into VS Developer Command Prompt
Mike McLaughlin [Sun, 15 Mar 2015 19:03:17 +0000 (12:03 -0700)]
Implement PAL_IsDebuggerPresent for Linux so the managed DebugBreak stops in native debugger.
Jeroen Janssen [Sun, 15 Mar 2015 16:59:54 +0000 (17:59 +0100)]
Put Marshal.Read/Write with Object under FEATURE_LEGACYSURFACE
The Marshal.Read/Write methods with Object arguments are not part of the
refactored .NET Core System.Runtime.InteropServices contract. Mark them
with FEATURE_LEGACYSURFACE so these get physically excluded from
mscorlib.dll on Linux/Mac.
Jan Kotas [Sun, 15 Mar 2015 15:26:59 +0000 (08:26 -0700)]
Fix handling of links and non-Linux file systems in Unix corerun
Jan Kotas [Sun, 15 Mar 2015 03:45:20 +0000 (20:45 -0700)]
Merge pull request #441 from stephentoub/openssl_init
Add OpenSSL initialization routine to PAL
Mike McLaughlin [Sat, 14 Mar 2015 23:21:34 +0000 (16:21 -0700)]
Fixed unnecessary string length addition.
Mike McLaughlin [Sat, 14 Mar 2015 22:56:15 +0000 (15:56 -0700)]
Undef some temporary code that uses the global pointer table and fixed a pre-existing off by one error getting a managed string.
Jeroen Janssen [Sat, 14 Mar 2015 09:36:02 +0000 (10:36 +0100)]
Add check and instruction to build.cmd to run from normal prompt
Mike McLaughlin [Sat, 14 Mar 2015 00:04:50 +0000 (17:04 -0700)]
Merge remote-tracking branch 'upstream/master' into printexception
Mike McLaughlin [Sat, 14 Mar 2015 00:03:40 +0000 (17:03 -0700)]
Merge pull request #437 from mikem8361/clrstack
The sos "ClrStack" command now works
Mike McLaughlin [Fri, 13 Mar 2015 23:04:36 +0000 (16:04 -0700)]
Merge remote-tracking branch 'origin/clrstack' into printexception
Mike McLaughlin [Fri, 13 Mar 2015 22:52:59 +0000 (15:52 -0700)]
Code review feedback.
Mike McLaughlin [Fri, 13 Mar 2015 22:36:02 +0000 (15:36 -0700)]
Build the PrintException command and related support functions.
Mike McLaughlin [Fri, 13 Mar 2015 22:11:51 +0000 (15:11 -0700)]
Merge pull request #4 from kangaroo/clrstack
Fixes OSx problems.
Geoff Norton [Fri, 13 Mar 2015 21:46:11 +0000 (14:46 -0700)]
Change THREADSilentGetCurrentThreadId to return the pthread_threadid, which matches the tid from lldb
Geoff Norton [Fri, 13 Mar 2015 21:45:37 +0000 (14:45 -0700)]
Ensure we find_library on LLDB as well to find LLDB.framework on OSX
Jan Kotas [Fri, 13 Mar 2015 20:57:15 +0000 (13:57 -0700)]
Merge pull request #439 from janvorli/add-unhandled-exception-trace-print
Add unhandled exception stack trace print
Jan Vorlicek [Fri, 13 Mar 2015 19:29:35 +0000 (20:29 +0100)]
Add unhandled exception stack trace print
This change adds printing of unhandled managed exception stack trace to
console before exiting.
Mike McLaughlin [Fri, 13 Mar 2015 18:21:05 +0000 (11:21 -0700)]
Fix CI build failures. Undefined functions.
Jan Vorlicek [Fri, 13 Mar 2015 17:13:05 +0000 (18:13 +0100)]
Merge pull request #438 from janvorli/fix-frames-popping
Fix managed exception unwinding through CallDescrWorkerInternal
Jan Vorlicek [Fri, 13 Mar 2015 16:30:14 +0000 (17:30 +0100)]
Exclude the Frame destructor from DAC build
The destructor is not needed on DAC builds and the definition was not being
built for DAC already. Conditionally disabling the declaration too.
Jan Vorlicek [Fri, 13 Mar 2015 15:06:46 +0000 (16:06 +0100)]
Fix managed exception unwinding through CallDescrWorkerInternal
This change fixes issue with exception unwinding in the case when the unwinding
passed through a frame of the CallDescrWorkerInternal function. This function
had personality routine on it, but a windows style personality routine was specified.
The windows one has a completely different signature, so the code was crashing.
When looking into that, I've found that even if I have implemented a proper
Unix style personality routine, it cannot work the same way on Linux as it
used to work on Windows.
This personality routine's goal is to pop Frames from the Frame list in the current
thread so that all frames upto the frame handling the exception are popped.
There are two problems on Linux. First, unlike on Windows, the personality
routine is not passed the RSP of the frame handling the exception in an official
way. Although it can be extracted from the private_2 member of the exception
object during the 2nd pass, it is an implementation detail that we cannot rely on.
Moreover, even if we used that, it would still not be the right frame in all cases
due to the fact that we implement exception filters by catching and rethrowing and
so the frame we would get would be the frame of a filtering catch in case
there was one.
My solution to this problem is to add destructor to the Frame type and let it
pop the frame being destroyed if it is still in the list in the current thread.
That way the native code unwinding automatically takes care of popping the frames.
As an additional changes, I've added handling of the case when the
Thread::VirtualUnwindToFirstManagedCallFrame walks out of stack, fixed a stack
alignment issue in the recently added StartUnwindingNativeFrames function and
a cosmetic change in the UnwindManagedExceptionPass1.
Stephen Toub [Fri, 13 Mar 2015 09:32:55 +0000 (05:32 -0400)]
Add PAL test for EnsureOpenSslInitialized
This includes removing an unnecessary assert from the function
that was causing the tests to fail, as well as addressing one
piece of PR feedback.
Stephen Toub [Sat, 14 Mar 2015 01:41:36 +0000 (21:41 -0400)]
Add OpenSSL initialization routine to PAL
Several of the CoreFX libraries will be using OpenSSL on Unix for cryptographic needs. In order for this usage to be safe in a multi-threaded context, OpenSSL needs to be initialized with a locking callback that provides the actual locking. For now at least, the plan is to do this initialization in a function in libcoreclr. This commit provides that functionality, which can subsequently be consumed by CoreFX libraries.
Mike McLaughlin [Thu, 12 Mar 2015 23:14:05 +0000 (16:14 -0700)]
Merge remote-tracking branch 'upstream/master' into clrstack
Mike McLaughlin [Thu, 12 Mar 2015 22:11:01 +0000 (15:11 -0700)]
Fix PAL printf functions. Didn't handle "%*.*p" correctly which is supported under windbg/windows runtime. Didn't actually support "*" for the width parameter at all for any format char.
Jan Vorlicek [Thu, 12 Mar 2015 20:49:05 +0000 (21:49 +0100)]
Merge pull request #435 from janvorli/nested-exception-handling
Add support for exceptions crossing native frames
Jan Vorlicek [Thu, 12 Mar 2015 20:41:29 +0000 (21:41 +0100)]
Merge pull request #436 from janvorli/resource-loading-workaround
Workaround native resource string loading temporarily
Jan Vorlicek [Thu, 12 Mar 2015 02:04:01 +0000 (03:04 +0100)]
Add support for exceptions crossing native frames
This change adds support for unwinding exceptions that cross native frames.
These are for example exceptions thrown / rethrown from catch blocks.
The exceptions are unwound in an interleaved manner in this case. First,
all managed frames upto the first native frame are unwound (both the first
and second pass), then the native frames are unwound by standard c++ exception
handling, then the next block of managed frames is unwound etc.
The change also implements RtlCaptureContext and changes the managed exception
handling to use it instead of the GetThreadContext. The difference is that the
RtlCaptureContext gets context of the caller while the GetThreadContext gets
a context somewhere deep in the PAL and so unwinding from such a context to the
first managed frame would be walking old stack frames that can already be corrupted.
As an additional change, I have fixed a problem that prevented unwinding of
assembler functions that use the PROLOG_WITH_TRANSITION_BLOCK macro.
The macro was using CFI annotation for the xmm registers and the libunwind
doesn't support that.
Moreover, the PAL_VirtualUnwind return status was not being checked in the
`Thread::VirtualUnwindToFirstManagedCallFrame`, so the failure resulted in an
infinite loop in there.
Finally, the `debug/di/amd64/floatconversion.S` was including the unixasmmacros.inc
using a relative path, now after I've moved it to a different place, I've removed
the relative path since the new path is in the include paths.
Jan Vorlicek [Thu, 12 Mar 2015 19:49:36 +0000 (20:49 +0100)]
Merge pull request #432 from kangaroo/pal-glccfos
Implement GetLogicalCpuCountFromOS in the PAL for OSX
Jan Vorlicek [Thu, 12 Mar 2015 19:44:54 +0000 (20:44 +0100)]
Reflect feedback
Changed #ifndef FEATURE_PAL to #if 0 since the file is in PAL.
Lubomir Litchev [Thu, 12 Mar 2015 18:07:27 +0000 (11:07 -0700)]
Merge pull request #427 from LLITCHEV/work
Fix some struct passing and tail call Jit problems on System V type of O...
Lubomir Litchev [Tue, 10 Mar 2015 21:27:39 +0000 (14:27 -0700)]
Fix some struct passing and tail call Jit problems on System V type of OSs.
This change set contains the following:
1. Removes the PUSH/POP for RDI/RSI functionality from the Jit for Linux. Replaced with
standard register tracking and spilling by the RA.
2. Initialize the non stack homed, register passed param stack offset to 0
and allow the fixup routines to operate on the offset. Tail calls
implementation depends on the offset of the first param be set properly.
3. Initial work to allow for frame chaining using a FP register.
Geoff Norton [Wed, 11 Mar 2015 17:55:28 +0000 (10:55 -0700)]
Implement GetLogicalCpuCountFromOS in the PAL for OSX
Jan Vorlicek [Thu, 12 Mar 2015 13:11:40 +0000 (14:11 +0100)]
Workaround native resource string loading temporarily
This change is a temporary workaround for native resource string loading until we have
the resource string support implemented.
Instead of asserting in the resource loading methods, return a string representing
the id for the requested resource.
The change implements a similar workaround for the FMTMSG_GetMessageString which now
returns a string containing "Error errorCode" where the errorCode is the error code
passed to the method.
This way, exceptions that use those two functions can be raised without asserting.
Mike McLaughlin [Wed, 11 Mar 2015 23:52:56 +0000 (16:52 -0700)]
The ClrStack command mostly works except for some address formating (related to %p). Needed to change how the PAL got the thread id (pthread_self to gettid) and implemented a simple GetThreadContext function.
Jan Kotas [Wed, 11 Mar 2015 22:04:47 +0000 (15:04 -0700)]
Merge pull request #434 from AlexGhiondea/concurrentDict
Remove the CDS_COMPILE_JUST_THIS define from the ConcurrentDictionary.cs file
AlexGhiondea [Wed, 11 Mar 2015 21:28:52 +0000 (14:28 -0700)]
Merge pull request #418 from AlexGhiondea/AppContextFix
Make sure that AppContext respects CompatibilitySwitches.IsAppSilverlight81 flag
Alex Ghiondea [Wed, 11 Mar 2015 20:48:48 +0000 (13:48 -0700)]
Remove the CDS_COMPILE_JUST_THIS define from the ConcurrentDictionary.cs file.
We are not going to build that file stand-alone anymore.
Jan Vorlicek [Wed, 11 Mar 2015 09:30:11 +0000 (10:30 +0100)]
Merge pull request #429 from jkotas/testfixes
Fix error handling in REGUTIL::EnvGetString
Jan Kotas [Tue, 10 Mar 2015 05:18:27 +0000 (22:18 -0700)]
Fix error handling in REGUTIL::EnvGetString
Matt Ellis [Wed, 11 Mar 2015 05:35:31 +0000 (22:35 -0700)]
Merge pull request #428 from ellismg/custom-entry-point
Add custom entry point support.
Matt Ellis [Tue, 3 Mar 2015 06:48:35 +0000 (22:48 -0800)]
Add custom entry point support.
Hosts like ASP.net don't want to call ExecuteAssembly, because their
entry point is library, not a managed exe. However, forcing cross
platform hosts to actually call CreateAppDomainWithManager and
CreateDelegate themselves requires a bunch of tedious code, since these
hosts don't have access to mscoree.h and the PAL.
This change adds the ability to specificy an assembly, type and method
which can be used as a custom entrypoint. The signiture of the managed
entry point needs to be `static int E(int, char**)`.
Mike McLaughlin [Wed, 11 Mar 2015 00:37:06 +0000 (17:37 -0700)]
Fix some more build problems/missing globals. The ClrStack command builds and almost runs except for a thread id problem.
Mike McLaughlin [Wed, 11 Mar 2015 00:35:51 +0000 (17:35 -0700)]
Fix some missing variables and other build problems. The ClrStack command now builds and almost runs. There is a problem with thread ids between the debugger/DAC and the target/VM/PAL.
Mike McLaughlin [Tue, 10 Mar 2015 22:50:14 +0000 (15:50 -0700)]
The "ClrStack" command and related functions now build.
Rama krishnan Raghupathy [Tue, 10 Mar 2015 21:07:06 +0000 (14:07 -0700)]
Merge pull request #426 from ramarag/merge-from-tfs
Merge from tfs
Rama krishnan Raghupathy [Tue, 10 Mar 2015 19:38:01 +0000 (12:38 -0700)]
Merge remote-tracking branch 'upstream/master' into merge-from-tfs
Resolved Merge Conflict:
tests/src/AllTestProjects.sln
Alex Ghiondea [Mon, 9 Mar 2015 22:15:04 +0000 (15:15 -0700)]
Make sure that AppContext respects CompatibilitySwitches.IsAppSilverlight81 flag.
This flag is used in cases where we don't have a Main() which means we won't be
able to read the TFM. Setting this compatibility flag will force the TFM to be
'WindowsPhone, Version=8.1".
Jan Kotas [Tue, 10 Mar 2015 18:34:54 +0000 (11:34 -0700)]
Merge pull request #425 from jkotas/jitpinvokefix
Fix trashing of P/Invoke return value by GC probe
Matt Mitchell [Tue, 10 Mar 2015 17:05:15 +0000 (10:05 -0700)]
Merge pull request #416 from janhenke/master
Do not hardcode path to bash into the shell scripts.
Jan Kotas [Tue, 10 Mar 2015 16:16:40 +0000 (09:16 -0700)]
Merge pull request #423 from jkotas/timerfix
Avoid call to QueryUnbiasedInterruptTime for PAL
Jan Henke [Mon, 9 Mar 2015 17:55:24 +0000 (18:55 +0100)]
Do not hardcode path to bash into the shell scripts.
Use /usr/bin/env bash to discover bash, independet of actual path. Closes #204.
Jan Kotas [Tue, 10 Mar 2015 05:46:43 +0000 (22:46 -0700)]
Avoid call to QueryUnbiasedInterruptTime for PAL
Mike McLaughlin [Tue, 10 Mar 2015 00:26:52 +0000 (17:26 -0700)]
Merge pull request #400 from mikem8361/dacglobals1
Implement the DAC global pointer table for Linux
Jan Kotas [Mon, 9 Mar 2015 23:17:05 +0000 (16:17 -0700)]
Merge pull request #419 from ellismg/unblock-datetime-now
Return null for GetLocalTzFile
Mike McLaughlin [Mon, 9 Mar 2015 23:06:20 +0000 (16:06 -0700)]
Merge remote-tracking branch 'upstream/master' into dacglobals1
Mike McLaughlin [Mon, 9 Mar 2015 23:05:13 +0000 (16:05 -0700)]
Fix sos on window's build.
Matt Ellis [Mon, 9 Mar 2015 22:09:20 +0000 (15:09 -0700)]
Return null for GetLocalTzFile
Throwing an exception from GetLocalTzFile causes DateTime.Now to throw
an exception and the runtime to tear down. While we are bringing up
the globalization stack on Unix, we can just return null instead of
throwing. This will cause us to use a zero UTC offset, so the local
times will not actually match the local clock, but we will be able to
get further along.
Jan Kotas [Mon, 9 Mar 2015 19:22:10 +0000 (12:22 -0700)]
Merge pull request #415 from jkotas/zapwriter
Fix size computation in ZapWriter::WritePad
Matt Mitchell [Mon, 9 Mar 2015 15:14:29 +0000 (08:14 -0700)]
Merge pull request #411 from ramarag/fix_test_msbuild_warnings
Adding app.config to get rid of the warning MSB3276 in the Test Build
Jan Kotas [Mon, 9 Mar 2015 13:40:13 +0000 (06:40 -0700)]
Fix size computation in ZapWriter::WritePad
Jan Vorlicek [Mon, 9 Mar 2015 09:41:54 +0000 (10:41 +0100)]
Merge pull request #414 from jkotas/assertfix
Make assertion failures to break into debugger