platform/upstream/coreclr.git
8 years agoMerge pull request #2047 from eerhardt/ShortDate
Eric Erhardt [Thu, 19 Nov 2015 22:31:22 +0000 (16:31 -0600)]
Merge pull request #2047 from eerhardt/ShortDate

DateTimeFormat.ShortDatePattern should use CLDR 'short' format on Unix.

8 years agoMerge pull request #2100 from gsfreema/master
Jan Kotas [Thu, 19 Nov 2015 21:48:41 +0000 (13:48 -0800)]
Merge pull request #2100 from gsfreema/master

Fixing a typo in developer-guide.md.

8 years agoMerge pull request #2104 from wtgodbe/deleteTests
Jan Kotas [Thu, 19 Nov 2015 21:47:54 +0000 (13:47 -0800)]
Merge pull request #2104 from wtgodbe/deleteTests

Deleted duplicate globalization and localization tests from coreclr

8 years agoMerge pull request #2102 from dotnet-bot/from-tfs
Jan Kotas [Thu, 19 Nov 2015 21:46:21 +0000 (13:46 -0800)]
Merge pull request #2102 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #1981 from pgavlin/SysV
Pat Gavlin [Thu, 19 Nov 2015 20:33:53 +0000 (12:33 -0800)]
Merge pull request #1981 from pgavlin/SysV

Fix struct padding issues with SysV struct classification.

8 years agoDeleted duplicate globalization and localization tests from coreclr
William Godbe [Thu, 19 Nov 2015 20:09:07 +0000 (12:09 -0800)]
Deleted duplicate globalization and localization tests from coreclr

8 years agoFix ARM64 build break
Jan Kotas [Thu, 19 Nov 2015 17:55:12 +0000 (09:55 -0800)]
Fix ARM64 build break

[tfs-changeset: 1550309]

8 years agoFixing a typo in developer-guide.md.
Gerald Scott Freeman [Thu, 19 Nov 2015 16:37:16 +0000 (11:37 -0500)]
Fixing a typo in developer-guide.md.

The words 'are' and 'and' were mistyped and need to be switched.

8 years agoMerge pull request #2098 from janvorli/fix-threadpool-shiftwaitarray
Jan Vorlicek [Thu, 19 Nov 2015 10:36:25 +0000 (11:36 +0100)]
Merge pull request #2098 from janvorli/fix-threadpool-shiftwaitarray

Fix issue with threadpool and wait for multiple objects on Linux

8 years agoFix issue with threadpool and wait for multiple objects on Linux
Jan Vorlicek [Thu, 19 Nov 2015 08:16:34 +0000 (09:16 +0100)]
Fix issue with threadpool and wait for multiple objects on Linux

There is a method ThreadpoolMgr::ShiftWaitArray which uses memcpy to do
a move a segment of the waitPointer and waitHandle arrays one position
down, so the source and destination ranges overlap. However, it uses
memcpy, which on Linux copies items starting from the last one. So
the arrays get corrupted after the memcpy, containing multiple copies
of the last element and not containig some elements that were expected
to move.
The fix is to use memmove which should be used when the source and
destination memory regions overlap.

8 years agoUpdate osx-instructions.md
Chris McKinsey [Thu, 19 Nov 2015 05:01:22 +0000 (21:01 -0800)]
Update osx-instructions.md

Added text to describe increasing the file limit so mscorlib will not fail during build with file limit errors.

8 years agoMerge pull request #2092 from BruceForstall/CleanupTargetHIfdefs
Bruce Forstall [Thu, 19 Nov 2015 02:28:44 +0000 (18:28 -0800)]
Merge pull request #2092 from BruceForstall/CleanupTargetHIfdefs

Simplify JIT target.h #ifdefs for ETW_EBP_FRAMED

8 years agoMerge pull request #2094 from rahku/master
Jan Kotas [Thu, 19 Nov 2015 00:52:54 +0000 (16:52 -0800)]
Merge pull request #2094 from rahku/master

Fix dac verification errors caused by 48617ae

8 years agoMerge pull request #2091 from mikem8361/fixfreebsd
Mike McLaughlin [Wed, 18 Nov 2015 23:06:19 +0000 (15:06 -0800)]
Merge pull request #2091 from mikem8361/fixfreebsd

Fixed FreeBSD sos plugin build.

8 years agoFix dac verification errors caused by 48617ae
Rahul Kumar [Wed, 18 Nov 2015 22:25:22 +0000 (14:25 -0800)]
Fix dac verification errors caused by 48617ae

8 years agoSimplify JIT target.h #ifdefs for ETW_EBP_FRAMED
Bruce Forstall [Wed, 18 Nov 2015 21:08:51 +0000 (13:08 -0800)]
Simplify JIT target.h #ifdefs for ETW_EBP_FRAMED

Many macros related to register usage were #ifdef'ed such that under ETW_EBP_FRAMED, EBP
doesn't appear in the macro. The complication was made much worse when UNIX support was
added because it doubled the number of such macros.

I simplified this by defining macros for EBP based on ETW_EBP_FRAMED that can then be used
in subsequent macros defining various register sets and lists. This greatly reduces the
number of #ifdefs.

8 years agoFixed FreeBSD sos plugin build.
Mike McLaughlin [Wed, 18 Nov 2015 20:13:43 +0000 (20:13 +0000)]
Fixed FreeBSD sos plugin build.

8 years agoMerge pull request #2068 from mikem8361/palsxs
Mike McLaughlin [Wed, 18 Nov 2015 20:36:58 +0000 (12:36 -0800)]
Merge pull request #2068 from mikem8361/palsxs

Add new pal test that tests exceptions across multiple PALs

8 years agoAdd new pal test that tests exceptions across multiple PALs in different modules.
Mike McLaughlin [Sat, 14 Nov 2015 01:47:19 +0000 (17:47 -0800)]
Add new pal test that tests exceptions across multiple PALs in different modules.

Currently disabled for FreeBSD.

8 years agoFix struct padding issues with SysV struct classification.
Pat Gavlin [Fri, 6 Nov 2015 19:15:29 +0000 (11:15 -0800)]
Fix struct padding issues with SysV struct classification.

This change revises the handling of padding bytes between struct fields
and bytes that trail the last field in a struct. These changes address
problems with structs that contain > 8 bytes between fields as well as
C# fixed arrays (which are emitted as a struct with a single field of
the fixed array element type and an explicit size derived from the
number of elements and the size of the element type).

The classification given to a particular byte that is not part of a
formal field depends on whether that byte is between fields or
trails the final field in a struct. Bytes in the former category--
padding bytes--are classified as NO_CLASS as per the SysV ABI spec.
Bytes in the latter category--"leftover" bytes after the final
field of a struct--are assigned the classification of the final
field in the struct. This allows C# fixed-size arrays to work
properly, as their representative structs are logically (but
unfortunately not physically) structs with element-count fields of
the element type. Were they explicit, each of these fields would
have the same classification.

8 years agoMerge pull request #2088 from kyulee1/corert
Jan Kotas [Wed, 18 Nov 2015 17:48:02 +0000 (09:48 -0800)]
Merge pull request #2088 from kyulee1/corert

A few fixes for standalone Jit (RyuJit) for CoreRT integration

8 years agoMerge pull request #2084 from benpye/revert-arm-build-break
Jan Kotas [Wed, 18 Nov 2015 16:59:23 +0000 (08:59 -0800)]
Merge pull request #2084 from benpye/revert-arm-build-break

Revert change in 4e06e42 that broke ARM cross build

8 years agoA few fixes for standlone Jit build
Kyungwoo Lee [Thu, 29 Oct 2015 15:33:06 +0000 (08:33 -0700)]
A few fixes for standlone Jit build

1. Fix for assertion in fgAddFieldSeqForZeroOffset
The fix relaxed the assertion under FEATURE_REF_ZERO_OFFSET_ALLOWED.
The feature is enabled when the standalone jit is built.

2. Package spec files for Windows/Linux and redirection.

3. Rename ProtoJit to RyuJit

8 years agoMerge pull request #2087 from blackdwarf/master
Rich Lander [Wed, 18 Nov 2015 15:52:20 +0000 (07:52 -0800)]
Merge pull request #2087 from blackdwarf/master

Add additional data to PATENTS.TXT

8 years agoMerge pull request #2055 from LLITCHEV/SysVTests
Lubomir Litchev [Wed, 18 Nov 2015 15:26:59 +0000 (07:26 -0800)]
Merge pull request #2055 from LLITCHEV/SysVTests

Add the tests used to bring the System V struct passing/returning fun…

8 years agoAdd the tests used to bring the System V struct passing/returning functionality.
Lubomir Litchev [Sun, 15 Nov 2015 23:24:35 +0000 (15:24 -0800)]
Add the tests used to bring the System V struct passing/returning functionality.

There are:
1. Tests for passing managed struct.\
2. Tests for returning managed structs.
3. Tests for PInvoke and reverse PInvoke using callbacks and native SO.

8 years agoAdd additional data to PATENTS.TXT
Zlatko Knezevic [Wed, 18 Nov 2015 10:20:49 +0000 (02:20 -0800)]
Add additional data to PATENTS.TXT

8 years agoMerge pull request #2079 from mikedn/no-decomp
Jan Kotas [Wed, 18 Nov 2015 00:25:12 +0000 (16:25 -0800)]
Merge pull request #2079 from mikedn/no-decomp

Ifdef out useless code in JIT lowering

8 years agoMerge pull request #2082 from BruceForstall/Fix2053
Bruce Forstall [Wed, 18 Nov 2015 00:11:18 +0000 (16:11 -0800)]
Merge pull request #2082 from BruceForstall/Fix2053

Fix RyuJIT assert 'emitCurIG != emitPrologIG'

8 years agoRevert change in 4e06e42 that broke ARM cross build
Ben Pye [Wed, 18 Nov 2015 00:03:24 +0000 (00:03 +0000)]
Revert change in 4e06e42 that broke ARM cross build

8 years agoMerge pull request #2061 from akoeplinger/utf-escape
Jan Kotas [Tue, 17 Nov 2015 22:42:55 +0000 (14:42 -0800)]
Merge pull request #2061 from akoeplinger/utf-escape

Replace Unicode symbols with escape sequence in test source files

8 years agoMerge pull request #2010 from ellismg/update-test-documentation
Jan Kotas [Tue, 17 Nov 2015 22:37:41 +0000 (14:37 -0800)]
Merge pull request #2010 from ellismg/update-test-documentation

Update testing instructions

8 years agoMerge pull request #2064 from akoeplinger/failcount-zero
Jan Kotas [Tue, 17 Nov 2015 22:32:47 +0000 (14:32 -0800)]
Merge pull request #2064 from akoeplinger/failcount-zero

Don't print the "Some tests failed" message when _failCount is 0

8 years agoMerge pull request #2062 from akoeplinger/dont-hardcode-libc.dylib
Jan Kotas [Tue, 17 Nov 2015 22:31:08 +0000 (14:31 -0800)]
Merge pull request #2062 from akoeplinger/dont-hardcode-libc.dylib

Fix two Marshal tests to not hardcode OSX libc

8 years agoMerge pull request #2042 from kouvel/StartupFlags
Jan Kotas [Tue, 17 Nov 2015 22:28:01 +0000 (14:28 -0800)]
Merge pull request #2042 from kouvel/StartupFlags

Allow setting some startup flags outside Windows

8 years agoMerge pull request #2049 from stephentoub/uuid_generate_random
Jan Kotas [Tue, 17 Nov 2015 22:27:13 +0000 (14:27 -0800)]
Merge pull request #2049 from stephentoub/uuid_generate_random

Use uuid_generate_random instead of uuid_generate in CoCreateGuid

8 years agoMerge pull request #2067 from akoeplinger/fix-overflow-gcstress
Jan Kotas [Tue, 17 Nov 2015 22:24:22 +0000 (14:24 -0800)]
Merge pull request #2067 from akoeplinger/fix-overflow-gcstress

Fix OverflowException in b115557.cs GC test on systems with fewer than four processors/cores

8 years agoMerge pull request #2073 from mmitche/fix-exit-code
Matt Mitchell [Tue, 17 Nov 2015 22:14:53 +0000 (14:14 -0800)]
Merge pull request #2073 from mmitche/fix-exit-code

Exit outerlevel build call if innerlevel exits with non-zero code

8 years agoFix RyuJIT assert 'emitCurIG != emitPrologIG'
Bruce Forstall [Tue, 17 Nov 2015 22:00:20 +0000 (14:00 -0800)]
Fix RyuJIT assert 'emitCurIG != emitPrologIG'

This occurs when the call-to-finally block exists as the last code in the function
(including any funclets). After we generate all "normal" code, we start over and
generate code for all the prologs and epilogs. In this case, we didn't reset the
emitForceNewIG global, which determines if we should force a new IG to be created
the next time code is generated. It is used for specifying no-GC regions. This fix
initializes it (along with emitNOGCIG) at the beginning of generating and prolog
or epilog.

8 years agoMerge pull request #2066 from akoeplinger/argparsing-gcstress
Jan Kotas [Tue, 17 Nov 2015 21:25:45 +0000 (13:25 -0800)]
Merge pull request #2066 from akoeplinger/argparsing-gcstress

Use InvariantCulture for parsing float arguments in GC stress tests

8 years agoExit outerlevel build call if innerlevel exits with non-zero code
Matt Mitchell [Tue, 17 Nov 2015 16:36:13 +0000 (08:36 -0800)]
Exit outerlevel build call if innerlevel exits with non-zero code

8 years agoMerge pull request #2074 from erozenfeld/RotateTestFix
Eugene Rozenfeld [Tue, 17 Nov 2015 19:22:33 +0000 (11:22 -0800)]
Merge pull request #2074 from erozenfeld/RotateTestFix

Fix for test break.

8 years agoMerge pull request #2016 from steveharter/CMake
Steve Harter [Tue, 17 Nov 2015 18:38:33 +0000 (12:38 -0600)]
Merge pull request #2016 from steveharter/CMake

Enable Clang sanitizers for debug builds (address sanitizer, undefined behavior sanitizer and leak sanitizer)

8 years agoIfdef out useless code
Mike Danes [Tue, 17 Nov 2015 18:22:56 +0000 (20:22 +0200)]
Ifdef out useless code

In 64 bit builds Lowering::DecompNodeHelper does nothing so walking the trees is pointless.  Profiling indicates that this accounts for 0.5% of the mscorlib crossgen time.

8 years agoMerge pull request #1983 from LLITCHEV/SystemVStructsCleanup
Pat Gavlin [Tue, 17 Nov 2015 17:12:08 +0000 (09:12 -0800)]
Merge pull request #1983 from LLITCHEV/SystemVStructsCleanup

Fixed a bad merge issue.

8 years agoEnable CLANG sanitizers for native debug builds
Steve Harter [Fri, 6 Nov 2015 00:41:48 +0000 (18:41 -0600)]
Enable CLANG sanitizers for native debug builds

8 years agoFix for test break.
Eugene Rozenfeld [Tue, 17 Nov 2015 16:30:16 +0000 (08:30 -0800)]
Fix for test break.

8 years agoMerge pull request #2069 from erozenfeld/RotationFix
Eugene Rozenfeld [Tue, 17 Nov 2015 05:55:21 +0000 (21:55 -0800)]
Merge pull request #2069 from erozenfeld/RotationFix

Fix for a rotation transformation bug.

8 years agoFixed a bad merge issue and some internal API cleanup.
Lubomir Litchev [Fri, 6 Nov 2015 23:38:06 +0000 (15:38 -0800)]
Fixed a bad merge issue and some internal API cleanup.

Sometime ago when the SystemVStructs branch was PRed into master a bad
merge has occured.

Some struct classification cleanup for native vs. managed struct layout
representation.

When classifying a native layout of the struct use the following
algorithm.

1. If the struct has special marshaling it has a native layout.
   In such cases the classifier needs to use the native layout.
2. For structs with no native layout, the managed layout should be used
   even if classified for the purposes of marshaling/PInvoke passing.

8 years agoFix for a rotation transformation bug.
Eugene Rozenfeld [Mon, 16 Nov 2015 23:47:59 +0000 (15:47 -0800)]
Fix for a rotation transformation bug.

rotatedValueBitSize should be calculated from genActualType(rotatedValue->gtType) instead of rotatedValue->gtType.
I added a test that was failing with an assert because of this bug: rol32ushort.

8 years agoMerge pull request #2052 from stephentoub/startswith_null
Matt Ellis [Mon, 16 Nov 2015 20:51:01 +0000 (12:51 -0800)]
Merge pull request #2052 from stephentoub/startswith_null

Add USEARCH_DONE check to StartsWith in System.Globalization.Native

8 years agoFix OverflowException in b115557.cs GC test on systems with fewer than four processor...
Alexander Köplinger [Fri, 6 Nov 2015 19:14:24 +0000 (20:14 +0100)]
Fix OverflowException in b115557.cs GC test on systems with fewer than four processors/cores

_allocPerThreadMB/2 can be larger than what fits into byte (because it's based on the number of processors/cores),
resulting in an OverflowException on those systems.

8 years agoUse InvariantCulture for parsing float arguments in GC stress tests
Alexander Köplinger [Fri, 6 Nov 2015 16:42:51 +0000 (17:42 +0100)]
Use InvariantCulture for parsing float arguments in GC stress tests

Otherwise they'd fail on cultures where '.' isn't used as a decimal separator.

8 years agoDon't print the "Some tests failed" message when _failCount is 0
Alexander Köplinger [Fri, 6 Nov 2015 16:35:31 +0000 (17:35 +0100)]
Don't print the "Some tests failed" message when _failCount is 0

8 years agoFix two Marshal tests to not hardcode OSX libc
Alexander Köplinger [Tue, 3 Nov 2015 13:31:52 +0000 (14:31 +0100)]
Fix two Marshal tests to not hardcode OSX libc

Don't hardcode OSX path to libc.dylib, we can just use libc in the DllImport.

Fix the signature to return an IntPtr and do marshalling of the string correctly.

8 years agoReplace Unicode symbols with escape sequence in test source files
Alexander Köplinger [Tue, 3 Nov 2015 13:16:57 +0000 (14:16 +0100)]
Replace Unicode symbols with escape sequence in test source files

Those files don't have a BOM and can be misinterpreted.

8 years agoMerge pull request #2057 from bryanar/loader_tests
Bryan P. Arant [Mon, 16 Nov 2015 19:24:35 +0000 (11:24 -0800)]
Merge pull request #2057 from bryanar/loader_tests

Porting loader tests from internal legacy tree.

8 years agoMerge pull request #2060 from mmitche/fix-arm-rootfs
Matt Mitchell [Mon, 16 Nov 2015 17:59:05 +0000 (09:59 -0800)]
Merge pull request #2060 from mmitche/fix-arm-rootfs

Fix typo in rootfs name

8 years agoFix typo in rootfs name
Matt Mitchell [Mon, 16 Nov 2015 17:58:19 +0000 (09:58 -0800)]
Fix typo in rootfs name

8 years agoPorting loader tests from internal legacy tree.
Bryan Arant [Mon, 16 Nov 2015 07:13:48 +0000 (23:13 -0800)]
Porting loader tests from internal legacy tree.

8 years agoAdd USEARCH_DONE check to StartsWith in System.Globalization.Native
stephentoub [Sun, 15 Nov 2015 13:03:26 +0000 (08:03 -0500)]
Add USEARCH_DONE check to StartsWith in System.Globalization.Native

The StartsWith ICU wrapper was not checking the result of usearch_first
to see if it was USEARCH_DONE, indicating no match found.  This has two
ramifications:
1. When there isn't a match, USEARCH_DONE (-1) gets passed in as the
textLength argument to ucol_openElements, which treats -1 as meaning
the string isn't null-terminated, and thus ends up walking the string
looking for non-ignorable collation elements.  Our tests have been passing
because they've been using strings containing only non-ignorable
elements, and thus the first character checked causes us to bail and correctly
return false.  If nothing else, this is an unnecessary perf overhead.
2. But on top of that if there are only ignorable collation elements
before the first null character in the string (e.g. if the string begins
with a null character), then because we told ICU that the string ended
at the first null character, it'll stop walking the string and return
a match. e.g. "\0bug".StartsWith("test") returns true incorrectly.

This commit simply adds a check for USEARCH_DONE to StartsWith.
EndsWith already has such a check.

8 years agoMerge pull request #2043 from stephentoub/startsendswith_null
Stephen Toub [Sun, 15 Nov 2015 11:47:36 +0000 (06:47 -0500)]
Merge pull request #2043 from stephentoub/startsendswith_null

Pass target string lengths to ICU on Unix

8 years agoMerge pull request #2046 from JohnChen0/heap
Jan Kotas [Sat, 14 Nov 2015 16:20:54 +0000 (08:20 -0800)]
Merge pull request #2046 from JohnChen0/heap

Remove an unsafe memory write in HeapFree

8 years agoUse uuid_generate_random instead of uuid_generate in CoCreateGuid
stephentoub [Sat, 14 Nov 2015 14:16:04 +0000 (09:16 -0500)]
Use uuid_generate_random instead of uuid_generate in CoCreateGuid

The PAL implementation of CoCreateGuid is currently using uuid_generate.
This will be based on high-quality randomness if available, otherwise it
falls back to an algorithm that incorporates the local ethernet MAC address
along with the current time and a pseudo-random generator. To avoid potential
privacy issues, this commit switches to using uuid_generate_random, which
instead falls back purely to a pseudo-random generator.

8 years agoAllow setting some startup flags outside Windows
Koundinya Veluri [Wed, 11 Nov 2015 19:39:58 +0000 (11:39 -0800)]
Allow setting some startup flags outside Windows

Allowing the GC-related flags to be set using properties passed into coreclr_initialize.

9 years agoDateTimeFormat.ShortDatePattern should use CLDR 'short' format on Unix.
Eric Erhardt [Fri, 13 Nov 2015 22:01:06 +0000 (16:01 -0600)]
DateTimeFormat.ShortDatePattern should use CLDR 'short' format on Unix.

The DateTimeFormat.ShortDatePattern is currently defaulting to using CLDR's 'yMd' skeleton. However, this value doesn't produce the best format for all cultures, ex. "de-DE". LongDatePattern uses CLDR's 'full' format. To be symmetrical, the ShortDatePattern should be using CLDR's 'short' format.

Fix https://github.com/dotnet/coreclr/issues/1736.

9 years agoRemove an unsafe memory write in HeapFree
John Chen [Fri, 13 Nov 2015 21:49:43 +0000 (13:49 -0800)]
Remove an unsafe memory write in HeapFree

The PAL implementation of HeapFree assumes that the memory region always
have at least 4 bytes. Depending on the heap implementation, this is not
necessarily true, and can potentially cause memory corruption.

9 years agoMerge pull request #2045 from JohnChen0/master
John Chen [Fri, 13 Nov 2015 21:19:26 +0000 (13:19 -0800)]
Merge pull request #2045 from JohnChen0/master

Fix buffer overrun in SetMscorlibPath

9 years agoFix buffer overrun in SetMscorlibPath
John Chen [Fri, 13 Nov 2015 18:32:15 +0000 (10:32 -0800)]
Fix buffer overrun in SetMscorlibPath

9 years agoPass target string lengths to ICU on Unix
stephentoub [Fri, 13 Nov 2015 13:59:12 +0000 (08:59 -0500)]
Pass target string lengths to ICU on Unix

Our current ICU shims for StartsWith, EndsWith, IndexOf, and LastIndexOf
take the length of the source string but not the length of the target
string.  This forces ICU to compute the length of the string by searching
for a null terminator.  We can save those costs and be more accurate
around nulls in the target string by passing the known length in.

9 years agoMerge pull request #2034 from dotnet-bot/from-tfs
Jan Kotas [Fri, 13 Nov 2015 13:35:00 +0000 (05:35 -0800)]
Merge pull request #2034 from dotnet-bot/from-tfs

Merge changes from TFS

9 years agoMerge pull request #2033 from brianrob/crossgen_perfmap2
Brian Robbins [Fri, 13 Nov 2015 05:44:08 +0000 (21:44 -0800)]
Merge pull request #2033 from brianrob/crossgen_perfmap2

Enable Offline Generation of Text-Based Symbol Tables for NGEN Images

9 years agoMerge pull request #2030 from jkotas/vs2015-update1-buildbreak
Jan Kotas [Fri, 13 Nov 2015 01:03:56 +0000 (17:03 -0800)]
Merge pull request #2030 from jkotas/vs2015-update1-buildbreak

Fix build break on VS2015 Update 1

9 years agoMerge pull request #2013 from mikem8361/createthread
Mike McLaughlin [Fri, 13 Nov 2015 00:56:17 +0000 (16:56 -0800)]
Merge pull request #2013 from mikem8361/createthread

Fix Thread.Start while debugging bug on OSX.

9 years agoMerge pull request #2031 from janvorli/fix-exceptions-in-filter
Jan Vorlicek [Thu, 12 Nov 2015 23:38:39 +0000 (00:38 +0100)]
Merge pull request #2031 from janvorli/fix-exceptions-in-filter

Fix processing of unhandled exception in exception filter

9 years agoFix Thread.Start while debugging bug on OSX.
Mike McLaughlin [Tue, 10 Nov 2015 22:28:10 +0000 (14:28 -0800)]
Fix Thread.Start while debugging bug on OSX.

The OSX exception logic is running on a separate thread from the one that the exception happened. The CatchHardwareExceptionHolder::IsEnabled used to check for h/w exception holders assumed it was running on the thread the exception/holders happened not the exception notification thread. Moved the h/w exception holder count to the CPalThread object instead of a TLS thread variable so the OSX exception code can check it given a CPalThread instance.

The main problem was that the stubmgr when creating a thread (for the start notification) put a breakpoint in ThePreStubPatch which is in the coreclr text section and because the h/w exception holder check was broken, it thought the breakpoint wasn't the debugger's and aborted the coreclr process.  The other part of this fix is to put a h/w exception holder around the called to ThePreStubPatch in prestub.cpp.

The stubmgr's delegate invoke subclass used the wrong registers for Linux/OSX to read the "this" and parameter registers. Added the proper ifdefs and registers (ecx -> rdi, rdx -> rsi) for the Unix platforms.

On both Linux and OSX, the h/w exception holder check in the exception routing logic needed to check if the int3/trap is in DBG_DebugBreak so asserts always abort/core dump. Move DBG_DebugBreak to an assembly worker so the start/end address can be used for this check.

9 years agoFix inconsistent security annotations
Jan Kotas [Thu, 12 Nov 2015 22:31:18 +0000 (14:31 -0800)]
Fix inconsistent security annotations

[tfs-changeset: 1547876]

9 years agoMerge pull request #2032 from mmitche/add-cross-packages
Matt Mitchell [Thu, 12 Nov 2015 21:54:54 +0000 (13:54 -0800)]
Merge pull request #2032 from mmitche/add-cross-packages

Add missing packages for arm/arm64 cross build

9 years agoAdd missing packages for arm64 cross build
Matt Mitchell [Thu, 12 Nov 2015 19:21:49 +0000 (11:21 -0800)]
Add missing packages for arm64 cross build

9 years agoEnable offline generation of text-based symbol tables for native images. This is...
Brian Robbins [Tue, 10 Nov 2015 01:50:56 +0000 (17:50 -0800)]
Enable offline generation of text-based symbol tables for native images.  This is needed in order to profile applications on Linux using perf_event.

This change also modifies the runtime to emit a perfmap entry when a native image is loaded so that offline trace processing tools can identify when a perfmap file for a native image is needed and generate it.

9 years agoMerge pull request #2024 from jkotas/crossgen-ifdefs
Jan Kotas [Thu, 12 Nov 2015 20:51:51 +0000 (12:51 -0800)]
Merge pull request #2024 from jkotas/crossgen-ifdefs

Improve FEATURE_NATIVE_IMAGE_GENERATION ifdefs

9 years agoFix build break on VS2015 Update 1
Jan Kotas [Thu, 12 Nov 2015 15:09:12 +0000 (07:09 -0800)]
Fix build break on VS2015 Update 1

9 years agoFix processing of unhandled exception in exception filter
Jan Vorlicek [Thu, 12 Nov 2015 16:05:27 +0000 (17:05 +0100)]
Fix processing of unhandled exception in exception filter

This change fixes processing of unhandled exceptions in exception filter on Unix.
Before this fix, such exception leads to assert in the exception handling code
due to the fact that the exception tracker of the unhandled exception is not
popped from the exception tracker stack of the thread.
Although the PopTrackers method was being called, it bailed out due to the fact
that the exception tracker belonging to the unhandled exception has empty scanned
stack range.
The fix is to explicitly pop the tracker in the EX_CATCH that catches the
exception from the filter.
I have also re-enabled the JIT test b68872 that has uncovered the issue.

9 years agoMerge pull request #2020 from pgavlin/StructABITests
Pat Gavlin [Thu, 12 Nov 2015 18:03:31 +0000 (10:03 -0800)]
Merge pull request #2020 from pgavlin/StructABITests

Add some additional cases to the struct ABI test.

9 years agoMerge pull request #2009 from LLITCHEV/Issue1995-1
Lubomir Litchev [Thu, 12 Nov 2015 16:47:07 +0000 (08:47 -0800)]
Merge pull request #2009 from LLITCHEV/Issue1995-1

Fix for issue 1995.

9 years agoMerge pull request #2026 from AlfredoMS/async_fix
Alfredo Menendez Sancho [Thu, 12 Nov 2015 16:31:39 +0000 (09:31 -0700)]
Merge pull request #2026 from AlfredoMS/async_fix

Fix Task so that RunContinuationsAsynchronously flag works with all continuations

9 years agoMerge pull request #2028 from dotnet/revert-2023-disable-x86-release
Jan Kotas [Thu, 12 Nov 2015 14:33:14 +0000 (06:33 -0800)]
Merge pull request #2028 from dotnet/revert-2023-disable-x86-release

Revert "Disable x86 windows release build until it passes"

9 years agoFix for issue 1995.
Lubomir Litchev [Tue, 10 Nov 2015 21:19:15 +0000 (13:19 -0800)]
Fix for issue 1995.

This changes containg a fix for Issue 1995.
When remorphing an argument that has been already completed (in case of
CSE rewriting for example, as in this case) the classification code was
not run properly and it is triggering an assertion. As the Issue 1995
states the assert failure is benign since the generated code is correct -
the change of registers used during completed argument classification is
not allowed and the code is not changing them.
This changes add the necessary code to properly classify and assign
registes for completed arguments remorphing, which complies with the expectations of the failing assert.

9 years agoMerge pull request #2027 from erozenfeld/RotationImprovements
Eugene Rozenfeld [Thu, 12 Nov 2015 05:18:50 +0000 (21:18 -0800)]
Merge pull request #2027 from erozenfeld/RotationImprovements

Implement improvements for rotation matching.

9 years agoRevert "Disable x86 windows release build until it passes"
Jan Kotas [Thu, 12 Nov 2015 04:34:39 +0000 (20:34 -0800)]
Revert "Disable x86 windows release build until it passes"

9 years agoMerge pull request #2025 from jkotas/fatal-error
Jan Kotas [Thu, 12 Nov 2015 04:33:36 +0000 (20:33 -0800)]
Merge pull request #2025 from jkotas/fatal-error

Use volatile store for g_hrFatalError

9 years agoImplement improvements for rotation matching.
Eugene Rozenfeld [Thu, 12 Nov 2015 03:15:55 +0000 (19:15 -0800)]
Implement improvements for rotation matching.

1. Recognize patterns with XOR instead of OR, e.g., (x << 5) ^ (x >> 27).
2. Recognize patterns with instance or static fields and ref params.
Only GTF_PERSISTENT_SIDE_EFFECTS (i.e., calls and assignments) and
GTF_ORDER_SIDEEFF (i.e., volatile accesses) prevent tree matching.
Before this change we used GTF_ALL_EFFECT.

9 years agoFix Task so that RunContinuationsAsynchronously flag works with all types of continuation
Alfredo Menendez Sancho [Thu, 12 Nov 2015 02:31:34 +0000 (18:31 -0800)]
Fix Task so that RunContinuationsAsynchronously flag works with all types of continuation

9 years agoUse volatile store for g_hrFatalError
Jan Kotas [Thu, 12 Nov 2015 01:48:49 +0000 (17:48 -0800)]
Use volatile store for g_hrFatalError

9 years agoMerge pull request #1985 from schellap/master
Senthil [Thu, 12 Nov 2015 01:41:22 +0000 (17:41 -0800)]
Merge pull request #1985 from schellap/master

Emit custom test launcher hook for custom test runners

9 years agoImprove FEATURE_NATIVE_IMAGE_GENERATION ifdefs
Jan Kotas [Thu, 12 Nov 2015 00:47:09 +0000 (16:47 -0800)]
Improve FEATURE_NATIVE_IMAGE_GENERATION ifdefs

9 years agoMerge pull request #2023 from mmitche/disable-x86-release
Matt Mitchell [Wed, 11 Nov 2015 23:32:29 +0000 (15:32 -0800)]
Merge pull request #2023 from mmitche/disable-x86-release

Disable x86 windows release build until it passes

9 years agoDisable x86 windows release build until it passes
Matt Mitchell [Wed, 11 Nov 2015 23:24:44 +0000 (15:24 -0800)]
Disable x86 windows release build until it passes

To trigger in the meantime, say: 'test x86 windows release'

9 years agoMerge pull request #2015 from kouvel/TpaBinder
Jan Kotas [Wed, 11 Nov 2015 22:52:09 +0000 (14:52 -0800)]
Merge pull request #2015 from kouvel/TpaBinder

Fix a couple of issues involving assembly loading

9 years agoMerge pull request #2017 from dotnet-bot/from-tfs
Jan Kotas [Wed, 11 Nov 2015 22:51:55 +0000 (14:51 -0800)]
Merge pull request #2017 from dotnet-bot/from-tfs

Merge changes from TFS