Pat Gavlin [Thu, 14 Apr 2016 19:57:41 +0000 (12:57 -0700)]
Make it possible to build JIT32 in the OSS tree.
This change adds a new argument to build.cmd, buildjit32, that configures
the build to build and link JIT32 instead of RyuJIT if the sources are
available in `src/jit32`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a3bb6a066eae8a7daede52ed576e8cd8d1d50780
Pat Gavlin [Thu, 14 Apr 2016 19:57:01 +0000 (12:57 -0700)]
Merge pull request dotnet/coreclr#4322 from pgavlin/TlsLogEnv
Collect the JIT's TLS variables in a single type.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e63de4a0d1dd9c5ad840495579c5437a0095bea1
Pat Gavlin [Thu, 14 Apr 2016 17:58:36 +0000 (10:58 -0700)]
Merge pull request dotnet/coreclr#4314 from pgavlin/GcInfoSList
Replace `SList` in the GC info encoders.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0d912695f7bd133c91f8b4e303b1b6b03c728869
Jose Perez Rodriguez [Thu, 14 Apr 2016 17:44:29 +0000 (10:44 -0700)]
Merge pull request dotnet/coreclr#4308 from joperezr/RemoveWarnings
Remove native build warnings
Commit migrated from https://github.com/dotnet/coreclr/commit/
19f4fdc3eb161aca2541603282090448bcf7268f
Jose Perez Rodriguez [Tue, 12 Apr 2016 22:56:08 +0000 (15:56 -0700)]
Updating BuildTools
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2f571bc74b44778cbe1ca1b4f95f3217bf2265a
Russ Keldorph [Thu, 14 Apr 2016 14:10:24 +0000 (07:10 -0700)]
Merge pull request dotnet/coreclr#4327 from RussKeldorph/structinregs
Fix structinregs test on x86
Commit migrated from https://github.com/dotnet/coreclr/commit/
af0a58fb1d34ba27b7b761d71316a2c2d0361a0f
Russ Keldorph [Thu, 14 Apr 2016 04:45:05 +0000 (21:45 -0700)]
Fix structinregs test on x86
Fix a typo in _MSC_VER resulting in a mismatched calling convention on
x86. While I'm in here, I'm also fixing some benign mismatched function
pointer type definitions.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7c512edb6008675ff1db320dbefe43c287c423dd
tijoytom [Wed, 13 Apr 2016 23:43:51 +0000 (16:43 -0700)]
Merge pull request dotnet/coreclr#4297 from tijoytom/master
Disabling the failing struct by value scenario.
Commit migrated from https://github.com/dotnet/coreclr/commit/
bd7ee6206f05fbc321e7f69383423f05d440e7b6
Pat Gavlin [Wed, 13 Apr 2016 23:06:18 +0000 (16:06 -0700)]
Collect the JIT's TLS variables in a single type.
Instead of storing pointers to the thread-local compiler instance
and the current logging environment in separate TLS slots, wrap
these values in a struct and store a pointer to the struct in a
single TLS slot. This simplifies and standardizes the JIT's interface
to its TLS storage, especially when it is being statically linked
into another program or library that cannot use standard TLS.
Note that for release builds, the logging environment is not used
and a pointer to the current compiler instance is stored directly
into the JIT's TLS slot as an implementation detail of the TLS
wrapper type.
Commit migrated from https://github.com/dotnet/coreclr/commit/
aba977ee03f85f059aca1bdb0b0e1202f25d04cd
Matt Mitchell [Wed, 13 Apr 2016 22:47:40 +0000 (15:47 -0700)]
Merge pull request dotnet/coreclr#4320 from mmitche/add-reporting
Add reporting functionality to the coreclr netci file
Commit migrated from https://github.com/dotnet/coreclr/commit/
dc86158d1ce41dfcb775c921a9e6d1f7fed90868
Matt Mitchell [Wed, 13 Apr 2016 22:20:21 +0000 (15:20 -0700)]
Add reporting functionality to the coreclr netci file
Also eliminate a few jobs that aren't being referenced.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8614810caec4b5a2a33547fe3f9dfd3982357b6e
Matt Mitchell [Wed, 13 Apr 2016 22:24:25 +0000 (15:24 -0700)]
Merge pull request dotnet/coreclr#4319 from mmitche/archive-needed
Only archive dylib and .so files from the native coreclr tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
deadffbd21fde9706e3237969208f995928cd843
Matt Mitchell [Wed, 13 Apr 2016 22:22:45 +0000 (15:22 -0700)]
Only archive dylib and .so files from the native coreclr tests
Avoids a few hundred extra files
Commit migrated from https://github.com/dotnet/coreclr/commit/
257951f3a30b880d863c813bf5528fef5f44fdea
Tijoy Tom Kalathiparambil [Tue, 12 Apr 2016 18:32:23 +0000 (11:32 -0700)]
Disabling the failing struct by value scenario.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a207199a67acee162c0ed865fa70252add2dccef
Brian Robbins [Wed, 13 Apr 2016 21:15:14 +0000 (14:15 -0700)]
Merge pull request dotnet/coreclr#4068 from Lucrecious/master
Generate map files for symbol resolution for Linux native images on PerfView
Commit migrated from https://github.com/dotnet/coreclr/commit/
0ec739e4416d12eeaac0c365fae09e503b080eaf
Pat Gavlin [Wed, 13 Apr 2016 19:55:47 +0000 (12:55 -0700)]
Refactor `MemoryBlockDesc`.
- Encapsulate link management into `MemoryBlockDescList`.
- Replace `MemoryBlockDesc` and its separately-allocated buffer
with a new type, `MemoryBlock`, that stores the link to the
next memory block with the buffer itself.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0c24ddaa1703805e472c6bf00cba1bcbc5d43e12
Carol Eidt [Wed, 13 Apr 2016 18:43:40 +0000 (11:43 -0700)]
Merge pull request dotnet/coreclr#4303 from CarolEidt/NoBarrierLclVarAddr
No GC barrier needed for indirection of expressions involving lclVars
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ad8f15af54add9dcc3ecb8b89f3b9a82c65bef3
Zhicheng Zhu [Wed, 13 Apr 2016 18:40:47 +0000 (11:40 -0700)]
Enable SOS gcInfo command. All it does basically is just enable the gcdecoder
Enable SOS gcInfo command. Basically all it does is just enable the code related to sos gcInfo and make it compiled for linux.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8ba667ba08a57f420aa3067e8b57e51185802650
Pat Gavlin [Mon, 11 Apr 2016 17:09:08 +0000 (10:09 -0700)]
Replace `SList` in the GC info encoders.
Instead of using `SList`, manage the links manually. There are only
a few list manipulations in the encoders, so this is not too onerous.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8b91401398caffe63fe79d403e066ee55a8365f2
Fadi Hanna [Wed, 13 Apr 2016 17:40:38 +0000 (10:40 -0700)]
Merge pull request dotnet/coreclr#4295 from fadimounir/typesystemtests
Bulk port of TypeSystem test cases
Commit migrated from https://github.com/dotnet/coreclr/commit/
517207b9d3f2a53c726a8682c1331cf7bdb0360b
Russ Keldorph [Wed, 13 Apr 2016 17:29:40 +0000 (10:29 -0700)]
Merge pull request dotnet/coreclr#4310 from RussKeldorph/arglist
Port arglist tests for x86 and ARM
Commit migrated from https://github.com/dotnet/coreclr/commit/
8beda3c1561aa7a4b4a18ea98e719fc9fd52a638
Carol Eidt [Tue, 12 Apr 2016 19:53:31 +0000 (12:53 -0700)]
No GC barrier needed for LclVar address expressions
The check for the case where a barrier is not required when writing to a
local variable needs to include the LocalVarAddr and lclVar address
expression cases.
Update per comments
Commit migrated from https://github.com/dotnet/coreclr/commit/
39ac49632a499877db8b8656dc63d147c7a8fe39
Kyungwoo Lee [Wed, 13 Apr 2016 12:27:14 +0000 (05:27 -0700)]
Merge pull request dotnet/coreclr#4302 from kyulee1/badtest
ARM64: Tests update
Commit migrated from https://github.com/dotnet/coreclr/commit/
5ad8da8b1239585a9e75a20ed2137e8b92bfe6c9
Kyungwoo Lee [Tue, 12 Apr 2016 20:30:31 +0000 (13:30 -0700)]
ARM64: Tests update
- Delete bad test (sql_stress4) which uses Thread.Abort which is not in
.NET Core.
- Delete non-existing test (MarshalBoolArray)
- Update time-out for StringConcat4/StringConcat8 which usualy failed due to time-out.
- Made _opt_dbgexplicit5/_opt_relexplicit5 UNSTABLE which pass mostly when
running twice in the lab.
- Delete bad test (b519927) which uses AppDomain.DefineDynamicAssembly
which is not in .NET Core.
- Delete bad test (b16241) that has overflow conversion (from double to int).
Commit migrated from https://github.com/dotnet/coreclr/commit/
2ef3e9124d883c859995ded1a1f177d91f789197
Koundinya Veluri [Wed, 13 Apr 2016 04:19:01 +0000 (21:19 -0700)]
Merge pull request dotnet/coreclr#4074 from kouvel/SoftwareWriteWatch
Implement software write watch and make concurrent GC functional outs…
Commit migrated from https://github.com/dotnet/coreclr/commit/
afdce3a592e5f6f2047bed057d121225be91743d
Russ Keldorph [Tue, 12 Apr 2016 18:49:58 +0000 (11:49 -0700)]
Port arglist tests for x86 and ARM
Arglist tests, which are only valid on Windows, have non-x64 versions that
needed to be ported.
Commit migrated from https://github.com/dotnet/coreclr/commit/
98d914bc0c9b167ee3e7abd3f4aee636f88cba59
Sivarv [Wed, 13 Apr 2016 01:38:51 +0000 (18:38 -0700)]
Merge pull request dotnet/coreclr#4273 from sivarv/multireg2
Force IR to be always var=call in case of multi-reg returning call nodes plus refactoring changes
Commit migrated from https://github.com/dotnet/coreclr/commit/
5ef243f597b8198efce1add587f16aae59b1f568
Pat Gavlin [Tue, 12 Apr 2016 23:57:42 +0000 (16:57 -0700)]
Merge pull request dotnet/coreclr#4255 from pgavlin/GcInfoArrayList
Refactor `StructArrayList` for the GC info encoder.
Commit migrated from https://github.com/dotnet/coreclr/commit/
867b8f1ff301d1d0842abec75447be4e94c1f17c
Koundinya Veluri [Thu, 7 Jan 2016 19:21:27 +0000 (11:21 -0800)]
Implement software write watch and make concurrent GC functional outside Windows
- Implemented software write watch using write barriers
- A new set of write barriers is introduced, each corresponding to an existing one, but which also updates the write watch table. The GC switches to a write watch barrier during concurrent GC, and switches back to a non write watch barrier after the final query for dirty pages.
- The write watch table is alloacted along with the card table
- Since the card table is used differently, different synchonization is used for the write watch table. The runtime is suspended during resize since that is the most infrequently occuring operation, of that, ResetWriteWatch, and GetWriteWatch.
- ResetWriteWatch() doesn't need a suspend, but since the software WW version is much faster than the Windows version, moved it into the suspended region to avoid some synchronization that would otherwise be required
- The background calls to GetWriteWatch() don't need or do a suspend. They only need to synchronize with the resize path, not for the purpose of correct functionality, but to not miss dirty pages such that concurrent GC is effective.
Miscellaneous:
- Fixed runtests.sh to copy mscorlib.dll and delete the Windows version of mscorlib.ni.dll
Commit migrated from https://github.com/dotnet/coreclr/commit/
c235ae17cd3a87f8032948bdcb838641d8e6c055
Russ Keldorph [Tue, 12 Apr 2016 23:14:41 +0000 (16:14 -0700)]
Merge pull request dotnet/coreclr#4278 from RussKeldorph/t1
Fix two "missing DLL" test failures
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d55afa3600904dd2376db9af9838f2fbba27945
Matt Mitchell [Tue, 12 Apr 2016 22:46:57 +0000 (15:46 -0700)]
Merge pull request dotnet/coreclr#4296 from mmitche/fix-prefix-casing
Fix output casing of prefix dir
Commit migrated from https://github.com/dotnet/coreclr/commit/
e735df2e106e2a119ced1db2a6fdcbe0ad5890c6
sivarv [Mon, 11 Apr 2016 18:49:41 +0000 (11:49 -0700)]
Refactoring changes to use ReturnTypeDesc in codegenxarch.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3409ad136021c42da1d982478ea0b609db1202a3
Swaroop Sridhar [Tue, 12 Apr 2016 20:32:10 +0000 (13:32 -0700)]
Merge pull request dotnet/coreclr#4279 from swaroop-sridhar/GC
GCInfo: Fix ARM64 GCInfo decoding
Commit migrated from https://github.com/dotnet/coreclr/commit/
ae2d2f3d103d0a20d1609725c7eec0830e0cf654
Fadi Hanna [Tue, 12 Apr 2016 00:27:01 +0000 (17:27 -0700)]
Bulk port of TypeSystem test cases
Commit migrated from https://github.com/dotnet/coreclr/commit/
b7e35b9c3d87ba84b859f9f9f795857dfbbda653
Pat Gavlin [Fri, 8 Apr 2016 22:39:55 +0000 (15:39 -0700)]
Clean up StructArrayList for GC info.
- Move the code into the GC info encoder, as that is its
only consumer.
- Remove contracts
- Delete dead code
- Reformat and refactor to current coding standards
Commit migrated from https://github.com/dotnet/coreclr/commit/
d241f9d5bcdaf9e99e4c4e54508d2cec2ed35d04
Jan Vorlicek [Tue, 12 Apr 2016 19:18:32 +0000 (21:18 +0200)]
Merge pull request dotnet/coreclr#4292 from janvorli/hw-exceptions-change
Fix hardware exception handling in native code on BSD
Commit migrated from https://github.com/dotnet/coreclr/commit/
a1eedcb8767e5833b5f1134efcb26ff8612ec315
Kyungwoo Lee [Tue, 12 Apr 2016 18:25:40 +0000 (11:25 -0700)]
Merge pull request dotnet/coreclr#4294 from kyulee1/fixsp
ARM64: Fix for recording SP for handler.
Commit migrated from https://github.com/dotnet/coreclr/commit/
121a91d73c7ac1f0264f62eff1451d742b94e0dd
Matt Mitchell [Tue, 12 Apr 2016 16:48:00 +0000 (09:48 -0700)]
Fix output casing of prefix dir
The PREFIX dir is upper case, should be refered to as such. Blocker for building on Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
c2d2efffe0ed58c55be1db5f254056b54ec41654
Russ Keldorph [Sun, 10 Apr 2016 10:58:19 +0000 (03:58 -0700)]
Fix two "missing DLL" test failures
Fix dotnet/coreclr#2234 Missing native DLL
Fix dotnet/coreclr#2237 Missing DLL is a MC++ test hiding alongside a C# wrapper--delete
test which was mistakenly ported.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7c4c8f3efc6e9acdbd1aa972b10b00ea11b63c27
Lubomir Litchev [Tue, 12 Apr 2016 17:39:28 +0000 (10:39 -0700)]
Merge pull request dotnet/coreclr#4085 from LLITCHEV/Issue3618-1
Fix a bug in the code for inserting a tree in the linear order.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ed172f6944eb5fd3a1b9390ceaef0ee09f3fb122
Zhicheng Zhu [Mon, 11 Apr 2016 18:01:21 +0000 (11:01 -0700)]
fix GCInfo build problem, tested a few simple "HelloWorld" program works good!
Commit migrated from https://github.com/dotnet/coreclr/commit/
6b9efccc55654928225829b853267f1062fa42fa
Kyungwoo Lee [Tue, 12 Apr 2016 16:11:53 +0000 (09:11 -0700)]
ARM64: Fix for recording SP for handler.
Fixes https://github.com/dotnet/coreclr/issues/3701.
When GC occurs in a catch handler, we compare the current frame with the one
saved before the funclet was invoked.
The recorded SP address was wrong (offset by 16 byte), which caused FindParentStackFrameForStackWalk to null frame.
So, we ended up with assert on `ExceptionTracker::HasFrameBeenUnwoundByAnyActiveException(&m_crawl)`.
The issue was assembly helper, CallEHFunclet records FP instead of SP while SP is adjusted in prolog.
Commit migrated from https://github.com/dotnet/coreclr/commit/
63554209e89d38785f2a1241939c490370e3efed
Jan Kotas [Tue, 12 Apr 2016 13:42:03 +0000 (03:42 -1000)]
Merge pull request dotnet/coreclr#4290 from leemgs/upstream-clang38
Add clang-3.8 into build.sh
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c9b92876a4b1641393e20ac2e7638c3c0f296c8
Stephen Toub [Tue, 12 Apr 2016 13:19:29 +0000 (09:19 -0400)]
Merge pull request dotnet/coreclr#4187 from stephentoub/lcts_dispose_cancel_race
Fix race condition between CTS.Cancel and Dispose
Commit migrated from https://github.com/dotnet/coreclr/commit/
68e27689d709b846505813af806dfb11b19777ef
Jan Vorlicek [Mon, 11 Apr 2016 12:21:01 +0000 (14:21 +0200)]
Fix hardware exception handling in native code on BSD
There is a problem with hardware exception handling when the exception
happens in native code and it is under the HardwareExceptionHolder on
FreeBSD and NetBSD. The problem was that the C++ unwinder was unable
to cross the signal trampoline.
This change fixes the problem by throwing the PAL_SEHException from
the context of the hardware exception itself rather than from the
signal handler.
Since it uses the same code as we were using for StartUnwindingNativeFrames
in CoreCLR before, I have moved that stuff to PAL and let both CoreCLR and
the signal handlers use it too.
At the same time, I have reenabled the paltest_pal_sxs_test1 for FreeBSD and
NetBSD, since it now works.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9475224327e45faa56e6ecbfcc5fa503656d5c20
Jan Vorlicek [Tue, 12 Apr 2016 08:15:03 +0000 (10:15 +0200)]
Merge pull request dotnet/coreclr#4280 from krytarowski/netbsd-support-59
Use _lwp_self() in THREADSilentGetCurrentThreadId() for NetBSD
Commit migrated from https://github.com/dotnet/coreclr/commit/
2c737588bed6550f56b9470278382d807a6fd9b4
Geunsik Lim [Tue, 12 Apr 2016 06:11:53 +0000 (15:11 +0900)]
Add clang-3.8 into build.sh
According to the official release note, clang 3.8 is also stable version.
http://llvm.org/releases/download.html
Let's add version 3.8 of clang into build.sh script.
Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
0fe70e83f801002521b658372f5e1390016fe09a
David Mason [Tue, 12 Apr 2016 04:13:24 +0000 (21:13 -0700)]
Merge pull request dotnet/coreclr#4274 from davmason/master
Bug Fixes for EventSource
Commit migrated from https://github.com/dotnet/coreclr/commit/
12fdc0f41c7b83bd1bea63d42db1fb3dba2a77df
Lubomir Litchev [Tue, 5 Apr 2016 17:31:20 +0000 (10:31 -0700)]
Fix a bug in the code for inserting a tree in the linear order.
A long standing issue in the Compiler::fgInsertTreeInListBefore method was
found where the gtStmtList of a statement was not updated when a tree is
inserted before the first statement in the list (stmt->gtStmtList ==
insertionPoint). In such case the gtStmtList is not updated to include the
new tree(s) inserted.
After talking to few people offline to understand where this fix should be made
and realizing that the comment on Compiler::fgMakeEmbeddedStmt is
incorrect, I made the necessary fix in Compiler::fgInsertTreeInListBefore
so the newly inserted tree(s) in includedin the gtStmtList of the updated
stmt.
Fixes 3618.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e59013a59744d05fa4c60570f25198c160ba3582
Kamil Rytarowski [Tue, 12 Apr 2016 00:26:54 +0000 (02:26 +0200)]
Use _lwp_self() in THREADSilentGetCurrentThreadId() for NetBSD
The _lwp_self() call returns the LWP ID of the calling LWP.
It requires <lwp.h> on NetBSD.
Commit migrated from https://github.com/dotnet/coreclr/commit/
67d03ca438bf8327b82655669d616d1aa7ad8541
Sejong Oh [Tue, 12 Apr 2016 00:19:29 +0000 (17:19 -0700)]
Merge pull request dotnet/coreclr#4101 from sejongoh/detect_ldsfld_access_non_static_field
Check if LDSFLD accesses non-static field
Commit migrated from https://github.com/dotnet/coreclr/commit/
de6990d315c555e7a4e85f5c01c8067b128d2ae9
Mike McLaughlin [Tue, 12 Apr 2016 00:06:44 +0000 (17:06 -0700)]
Merge pull request dotnet/coreclr#4277 from mikem8361/rpath
Unable to debug coreclr apps on Debian 8.2 (Issue dotnet/coreclr#4263)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e0247bdd8a1c5a5faba7033040727c3b59e0b69a
Mike McLaughlin [Mon, 11 Apr 2016 22:37:42 +0000 (15:37 -0700)]
Unable to debug coreclr apps on Debian 8.2 (Issue dotnet/coreclr#4263)
Add set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) to dbi and sos cmake files.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b7fa022f6cbe28737b6a0e3dfa74e2b80f71ac50
Mike McLaughlin [Mon, 11 Apr 2016 23:55:44 +0000 (16:55 -0700)]
Merge pull request dotnet/coreclr#4218 from mikem8361/symbols
Add symbol packages for coreclr runtime.
Commit migrated from https://github.com/dotnet/coreclr/commit/
65fcbb4eb9e9ed349dac74991bcb7303adeee013
Andy Ayers [Mon, 11 Apr 2016 23:52:45 +0000 (16:52 -0700)]
Merge pull request dotnet/coreclr#4272 from AndyAyersMS/FixSpectralNorm
Fix validation of spectralnorm under xunit-performance
Commit migrated from https://github.com/dotnet/coreclr/commit/
fcfcec5e194b2a376b176d0de44dbea2d4ece79c
Swaroop Sridhar [Fri, 8 Apr 2016 01:09:13 +0000 (18:09 -0700)]
GCInfo: Fix ARM64 GCInfo decoding
GCStress traps were not inserted in ARM64 code correctly because safepoint
offsets were not correctly computed by EnumerateSafepoints().
This change fixes the issue by adding the (-1) adjustment to the ARM64
Safepoint offsets, similar to ARM and AMD64.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b6502aae0447fe7ccbc21b354c545c8ba58c902a
Sean Gillespie [Mon, 11 Apr 2016 22:58:49 +0000 (15:58 -0700)]
Merge pull request dotnet/coreclr#4113 from swgillespie/long_running_gc
Create Long-running GC test job for the CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
e08912eecd2519467f0b73ffb2d03cfafb13a1df
David Mason [Mon, 11 Apr 2016 20:41:29 +0000 (13:41 -0700)]
Buffer sending of large manifests
Commit migrated from https://github.com/dotnet/coreclr/commit/
9481107ec19da27c677434c32e827803d894174d
Aditya Mandaleeka [Mon, 11 Apr 2016 22:24:11 +0000 (15:24 -0700)]
Merge pull request dotnet/coreclr#4157 from chuckries/master
Fix error return in getPath
Commit migrated from https://github.com/dotnet/coreclr/commit/
64f7da4344d88d4641410801a4b32eccf0941e47
Maoni Stephens [Mon, 11 Apr 2016 22:22:15 +0000 (15:22 -0700)]
Merge pull request dotnet/coreclr#4266 from janvorli/fix-brick-table-issue
Fix brick table issue on Unix
Commit migrated from https://github.com/dotnet/coreclr/commit/
906f9f15899825b8ab35659008c8905d9362e78c
Yi Zhang (CLR) [Mon, 11 Apr 2016 22:15:28 +0000 (15:15 -0700)]
Merge pull request dotnet/coreclr#4261 from yizhang82/byvalarray_fix
Fix ByValArray support.
ByValArray marshalling is implemented actually in OleVariant.cpp, which implements both regular array marshalling and variant marshalling). Regular array marshalling code should be supported in x-plat but it was incorrectly #ifdef-ed out. Fix by only #ifdef the COM interop VARIANT part.
Fix dotnet/coreclr#4262 and dotnet/coreclr#4194
Commit migrated from https://github.com/dotnet/coreclr/commit/
c3626d39aeae19c4c787ae8eed3f8bb8adcc6e7f
Mike McLaughlin [Tue, 5 Apr 2016 00:52:15 +0000 (17:52 -0700)]
Add symbol packages for coreclr runtime.
Depends on the new buildtools symbol support.
Update build tools version containing the new symbol file support.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1800e5f71da458298e25b52ce35e0c6ae5976fcc
Mike McLaughlin [Mon, 11 Apr 2016 21:54:33 +0000 (14:54 -0700)]
Merge remote-tracking branch 'upstream/master'
Commit migrated from https://github.com/dotnet/coreclr/commit/
bfbde8d29cf245a0bf1eb027367851ad84aafa61
Andy Ayers [Mon, 11 Apr 2016 21:21:56 +0000 (14:21 -0700)]
Fix validation of spectralnorm under xunit-performance
The valiation code wasn't correctly for the iteration strategy
used by xunit-performance.
Closes dotnet/coreclr#4270.
Commit migrated from https://github.com/dotnet/coreclr/commit/
73a947cde48114ef3989d84112d67b6a6f746c64
David Mason [Mon, 11 Apr 2016 20:40:18 +0000 (13:40 -0700)]
Fix bug where Tags weren't respected in tracelogging.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4825b5c761d2ad0ae7adc8b1d438c87a9a056bf
David Mason [Mon, 11 Apr 2016 20:38:16 +0000 (13:38 -0700)]
Increase max etw arguments to 64
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ad6fc47997ae06da5e73dd6c5cf1ed3d1381503
Michelle McDaniel [Mon, 11 Apr 2016 20:21:45 +0000 (13:21 -0700)]
Merge pull request dotnet/coreclr#4269 from adiaaida/longSub
Add support for x86 long subtract operator
Commit migrated from https://github.com/dotnet/coreclr/commit/
dadc7388d0a323ef14eff8ffec74724577338c45
Bruce Forstall [Mon, 11 Apr 2016 19:23:33 +0000 (12:23 -0700)]
Merge pull request dotnet/coreclr#4206 from BruceForstall/RyujitX86
Clean up JIT build rules
Commit migrated from https://github.com/dotnet/coreclr/commit/
fc2f411a11709ffd3db9134a2e49c7ab1239c1c5
Bruce Forstall [Mon, 11 Apr 2016 19:23:02 +0000 (12:23 -0700)]
Merge pull request dotnet/coreclr#4221 from BruceForstall/Cleanup1
Cleanup: be consistent about compCalleeFPRegsSavedMask #ifdefs
Commit migrated from https://github.com/dotnet/coreclr/commit/
46ee199e23ef8d7bae3c3a29e98383734877ef3f
Bruce Forstall [Mon, 11 Apr 2016 19:22:46 +0000 (12:22 -0700)]
Merge pull request dotnet/coreclr#4239 from BruceForstall/Cleanup2
Cleanup: remove getFramePointerReg()
Commit migrated from https://github.com/dotnet/coreclr/commit/
9971220e29584ea5a696c544f7e24140aa973999
Bruce Forstall [Mon, 11 Apr 2016 19:22:25 +0000 (12:22 -0700)]
Merge pull request dotnet/coreclr#4242 from BruceForstall/Cleanup3
Add genEstablishFramePointer() to enapsulate frame pointer creation
Commit migrated from https://github.com/dotnet/coreclr/commit/
ac914bdbcf65a1e482ab5de541cb0c2d5b089855
Bruce Forstall [Mon, 11 Apr 2016 19:21:56 +0000 (12:21 -0700)]
Merge pull request dotnet/coreclr#4243 from BruceForstall/Cleanup4
Minor JIT changes
Commit migrated from https://github.com/dotnet/coreclr/commit/
16b539a95181a7ce2856726f751af0edc2a55c49
Sean Gillespie [Mon, 11 Apr 2016 19:02:07 +0000 (12:02 -0700)]
Add longgc to a new assert
Commit migrated from https://github.com/dotnet/coreclr/commit/
218cd94f35404990c070a0378f410357d8f33272
Sean Gillespie [Mon, 11 Apr 2016 18:52:16 +0000 (11:52 -0700)]
Add new trigger phrases to documentation
Commit migrated from https://github.com/dotnet/coreclr/commit/
7b6ef57690bf7a502006652d0ec6c22d0d536fc7
Sean Gillespie [Fri, 11 Mar 2016 23:48:56 +0000 (15:48 -0800)]
Create Long-running GC test job for the CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
57246c0812e94e0ad98cb313d2d97ba1a458afb8
Sejong Oh [Wed, 6 Apr 2016 00:52:14 +0000 (17:52 -0700)]
Fix JIT crash with static function accessing non-static field
The IL below is invalid since the static function acceses the non-static
field. On Desktop CRL, JIT throws a verification exception. However, CoreCLR
doesn't support verification and JIT crashes. This fix makes JIT throw a
invalid program exception if verification is disabled.
.field int32 i
.method static int32 f()
{
ldsfld int32 Test::i
ret
}
The test also expects InvalidProgramException instead of
VerificationException.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0e3eb21c2266abb55b1490f0231a2ad59bfc1aba
Michelle McDaniel [Mon, 11 Apr 2016 17:24:41 +0000 (10:24 -0700)]
Add support for x86 long subtract operator
With dotnet/coreclr#3296, we have all the support for subtracting longs on x86. Subtract
can use the same logic as addition for longs.
Fixes dotnet/coreclr#4189.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6b87d20fddd80250b51465cf18499bd08865af80
Yi Zhang (CLR) [Mon, 11 Apr 2016 06:59:35 +0000 (23:59 -0700)]
ByValArray marshaling support is implemented in OleVariant.cpp (which actually implements both regular array marshalling and variant marshalling) and is incorrectly #ifdef-ed out under x-plat. Fix by only #ifdef the COM interop VARIANT part.
Re-enable ByValArray test as well.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d883ce9a26d2bfce5ed3111078946841eb18316a
Lubomir Litchev [Mon, 11 Apr 2016 14:58:49 +0000 (07:58 -0700)]
Merge pull request dotnet/coreclr#4240 from LLITCHEV/Issue4147
Add test for issue 4115.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2eb214ee49e3474ec64aad04ac673f7f18379c95
Andy Ayers [Mon, 11 Apr 2016 14:44:21 +0000 (07:44 -0700)]
Merge pull request dotnet/coreclr#4245 from AndyAyersMS/ModelPolicy
Inliner: initial version of a model-based policy
Commit migrated from https://github.com/dotnet/coreclr/commit/
926dd1fd3158dc7fc691480ea54ed9b399f91d30
Jan Vorlicek [Mon, 11 Apr 2016 11:42:07 +0000 (13:42 +0200)]
Fix brick table issue on Unix
There is a problem with Clang compiling a loop that sets a range of brick
table entries that are "shorts" as a memset. That causes it to be written
by bytes in some cases on OSX (and it is a mere chance that the memset on
Linux is implemented so that it doesn't use byte access).
This was causing corruption of the brick table on OSX.
The fix is to mark the pointer that iterates over the brick table as volatile
to prevent the compiler from using the memset.
Commit migrated from https://github.com/dotnet/coreclr/commit/
54e626fec535ce9eb1f97420c619572911eed583
Jan Kotas [Mon, 11 Apr 2016 06:03:19 +0000 (20:03 -1000)]
Merge pull request dotnet/coreclr#3990 from myungjoo/testing/fix3856
Fix Linux-ARM Broken Stack w/ ThePreStub
Commit migrated from https://github.com/dotnet/coreclr/commit/
e8c82e2c4363b58b76c036ba6db5a192f4e3d33b
Jan Kotas [Mon, 11 Apr 2016 06:00:34 +0000 (20:00 -1000)]
Merge pull request dotnet/coreclr#4257 from jkotas/noexecstack
Pass noexecstack option to the assembler on Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
96be08ac560f8529c413dc3be50b66bb7b25348e
Lubomir Litchev [Sun, 10 Apr 2016 20:46:01 +0000 (13:46 -0700)]
Add a test for Issue 4147.
This checkin adds a test for Issue 4147.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e2637731b980a6d73c5bb244720f4a5931001727
stephentoub [Fri, 8 Apr 2016 17:01:19 +0000 (13:01 -0400)]
Fix race condition between CTS.Cancel and Dispose
In general, CancellationTokenSource.Dispose is not meant to be used concurrently with other operations on the instance: Dispose should only be used when the creator of the CTS is done with it. However, there's one common situation where recommended usage runs afoul of this. A typical usage of a LinkedCancellationTokenSource (as created by CancellationTokenSource.CreateLinkedTokenSource) is as follows:
```C#
private CancellationToken _internalCancellation;
public void SomeMethod(CancellationToken externalCancellation)
{
using (var cts = CancellationTokenSource.CreateLinkedTokenSource(externalCancellation, _internalCancellation))
{
DoWork(cts.Token);
}
}
```
where an LCTS is used to combine some external source of cancellation with some internal one. It's important that the LCTS then be disposed, as otherwise it'll end up leaking state into constituent CTs, and in particular in the case of the externally provided one, that could be a very long lived token. However, it's perfectly fine for the external token to have cancellation requested at any time during this method, which means that even though Dispose and Cancel weren't designed to be safe to execute concurrently, and even though we recommend against it, it's actually possible with recommended usage.
It's a very dificult race to reproduce, but when it does, the typical visible result is an ObjectDisposedException. State corruption could also result.
This commit addresses that in two ways:
1. Rather than having the LCTS register a delegate with each CT that calls Cancel, it instead has its delegate call NotifyCancellation. This is the same method Cancel calls, but without the upfront disposal check. That eliminates the easily visible result of a race that would cause an ObjectDisposedException.
2. With all of the tweaking that's been done to Dispose since it was originally written, it's actually very close to being safe to use concurrently with Cancel; this takes it the rest of the way (though we still don't want to document it as such, it's really just to make LCTS work correctly). The only state Dispose mutates that could be problematic is a Timer and a ManualResetEvent. Timer's Dispose is already thread-safe. MRE's isn't, so if it's been allocated (which is relatively rare), I add a single Interlocked.Exchange to null it out, and then do a volatile read on a state field to see whether cancellation is currently in progress, only Dispose'ing of the MRE if it is, and leaving it for finalization otherwise. On the Cancel side, we just add some null checks to ensure we're not attempting to Dispose of null'd out fields, again with volatile reads where necessary.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3a6e9459c0b5dc69f898272b290ce0333cebd55b
Yi Zhang (CLR) [Sun, 10 Apr 2016 04:59:35 +0000 (21:59 -0700)]
Merge pull request dotnet/coreclr#4250 from yizhang82/nativevariant_fix
Fix GetObjectForNativeVariant test issue. It should roundtrip the actual object instead of IntPtr. Also add proper variant clean up code.
Fix dotnet/coreclr#4192.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff26d6801b3ce0dec5918a5ad0d3ab90f9656e28
Jan Kotas [Sun, 10 Apr 2016 04:15:42 +0000 (18:15 -1000)]
Pass noexecstack option to the assembler on Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4b8f67019928536dc1a98caea5e17221824376b
Jan Kotas [Sun, 10 Apr 2016 01:51:18 +0000 (15:51 -1000)]
Merge pull request dotnet/coreclr#4253 from jamesqo/faulty-trues
Fix a couple of erroneous assert(trues)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2ee084a216d42708074cb9a94b316db72c664c3f
Yi Zhang (CLR) [Sun, 10 Apr 2016 01:13:51 +0000 (18:13 -0700)]
Merge pull request dotnet/coreclr#4256 from yizhang82/chararray_fix
Change Marshal.SizeOf to sizeof to calculate buffer size because Marshal.Copy copies managed contents, while Marshal.SizeOf gives native size. Fix dotnet/coreclr#4254
Commit migrated from https://github.com/dotnet/coreclr/commit/
88f55f5fe9ae57c0e173d87e7cb4c5a0c4da6d02
Yi Zhang (CLR) [Sat, 9 Apr 2016 20:18:36 +0000 (13:18 -0700)]
Change Marshal.SizeOf to sizeof because Marshal.Copy copies managed contents and does not do marshalling.
Commit migrated from https://github.com/dotnet/coreclr/commit/
baf7569a45d83237bd933acfa8a8a568ca7c5e33
Yi Zhang (CLR) [Sat, 9 Apr 2016 19:44:17 +0000 (12:44 -0700)]
Merge pull request dotnet/coreclr#4249 from yizhang82/lptstr_fix
Fix LPTSTRTest failure - it has a incorrect constant probably due to bad merge. Fix dotnet/coreclr#4197
Commit migrated from https://github.com/dotnet/coreclr/commit/
c835bdc46cd2c39ae0666af56b4191b4090610b7
Yi Zhang (CLR) [Sat, 9 Apr 2016 06:22:51 +0000 (23:22 -0700)]
Fix GetObjectForNativeVariant test issue. It should roundtrip the actual object instead of IntPtr. Also add proper variant clean up code.
NOTE that I had to keep Marshal.IUnknownForObject call to force COM initialization.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a1ffff4a8e305c1e06548aee8cdc43a091fab3ac
Mike McLaughlin [Sat, 9 Apr 2016 18:26:05 +0000 (11:26 -0700)]
Merge remote-tracking branch 'upstream/master'
Commit migrated from https://github.com/dotnet/coreclr/commit/
d92e5fce53eb63541cf14f2d40486a1559d4e6ca
Yi Zhang (CLR) [Sat, 9 Apr 2016 02:39:48 +0000 (19:39 -0700)]
Fix LPTSTRTest failure - it has a incorrect constant probably due to bad porting. Also remove StringMarshal tests from issues.targets
Commit migrated from https://github.com/dotnet/coreclr/commit/
6f3ed699dd21347a953dff5d2607cc620258f141
James Ko [Sat, 9 Apr 2016 14:48:02 +0000 (10:48 -0400)]
Fix a couple of erroneous assert(trues)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c92467665a8519fa0c5d9be7b7ec5d760b37d38b
Matt Ellis [Sat, 9 Apr 2016 06:08:54 +0000 (23:08 -0700)]
Merge pull request dotnet/coreclr#4248 from dotnet/revert-4199-struct16-abi
Revert "ARM64 Work Item 3817, 3524 - Struct16 decomposition"
Commit migrated from https://github.com/dotnet/coreclr/commit/
32b2d2c0a5900ff85b941b29a08b05ff08d7f44b
Jan Kotas [Sat, 9 Apr 2016 04:34:40 +0000 (18:34 -1000)]
Revert "ARM64 Work Item 3817, 3524 - Struct16 decomposition"
Commit migrated from https://github.com/dotnet/coreclr/commit/
6b4320b16364eb59c1164c9a5b90d3e3046da72f
Rama krishnan Raghupathy [Sat, 9 Apr 2016 04:33:40 +0000 (21:33 -0700)]
Merge pull request dotnet/coreclr#4162 from ramarag/ResolveWorkerChainLookupAsmStub
[Arm64]:Fixing the Logic of ResolveWorkerChainLookupAsmStub for VSD
Commit migrated from https://github.com/dotnet/coreclr/commit/
d0079786f342e2bd2ccc66c04815f80fee58111d
Michal Strehovský [Sat, 9 Apr 2016 02:10:55 +0000 (19:10 -0700)]
Merge pull request dotnet/coreclr#4202 from MichalStrehovsky/applicationException
Remove usage of ApplicationException in tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
749bec55fbb3eab0cf8abc6123e377478ceafe8a
Rama Krishnan Raghupathy [Fri, 8 Apr 2016 02:40:30 +0000 (19:40 -0700)]
[Arm64]:Fixing the Logic of ResolveWorkerChainLookupAsmStub
Commit migrated from https://github.com/dotnet/coreclr/commit/
df01dac9db7757bc3bee4c2c8a50157a3e7da097