João Matos [Thu, 29 Oct 2015 18:36:36 +0000 (18:36 +0000)]
Merge pull request #2182 from lewurm/fix-arm-build
mini-llvm: fix wrong usage
Bernhard Urban [Thu, 29 Oct 2015 18:31:19 +0000 (11:31 -0700)]
mini-llvm: fix wrong usage
Ludovic Henry [Thu, 29 Oct 2015 18:08:13 +0000 (18:08 +0000)]
[tests] Adjust MathTest double epsilon value
The double.Epsilon value represent the smallest value that double is
able to represent. And that is diferent from the machine epsilon, which
is the smallest difference between two double values.
The second is equal to 2 ^ (-52), because there are 52bits to
represent the mantissa in a IEEE 754 double.
Zoltan Varga [Thu, 29 Oct 2015 17:40:11 +0000 (13:40 -0400)]
[llvm] Split sig_to_llvm_sig () into two versions, one which takes an LLVMCallInfo argument, and one which doesn't.
Martin Baulig [Thu, 29 Oct 2015 17:07:56 +0000 (13:07 -0400)]
Comment-out [HostProtection] attribute in SslStream.cs, it seems to be causing problems.
Zoltan Varga [Thu, 29 Oct 2015 17:07:02 +0000 (13:07 -0400)]
[runtime] Disable the -Wreturn-stack-address clang warning.
Ludovic Henry [Thu, 29 Oct 2015 16:36:47 +0000 (16:36 +0000)]
[threads] Fix warning on Linux
Neale Ferguson [Thu, 29 Oct 2015 14:31:24 +0000 (10:31 -0400)]
s390x-codegen.h - Initial SIMD support
cpu-s390x.md - Add gc-safe-point instruction
mini-ops.h - Add TARGET_S390X for gc-safe-point
mini-s390x.c - Initial SIMD support; Fix floating point conversion
mini-s390x.h - Initial SIMD support
Zoltan Varga [Thu, 29 Oct 2015 00:56:12 +0000 (20:56 -0400)]
[llvm] Clean up the naming convention in the backend. 'module' refers to a MonoLLVMModule while 'lmodule' refers to a LLVMModuleRef. Some other small cleanups.
Zoltan Varga [Thu, 29 Oct 2015 00:38:47 +0000 (20:38 -0400)]
[llvm] Merge LLVMCallInfo and LLVMSigInfo.
Martin Baulig [Wed, 28 Oct 2015 23:47:18 +0000 (19:47 -0400)]
[System]: Replace the 'SslStream' implementation with a proxy that's using the 'MonoTlsProvider' layer.
This allows consumers of the 'SslStream' class to take full advantage of
the new TLS switcher code.
Martin Baulig [Wed, 28 Oct 2015 23:12:48 +0000 (19:12 -0400)]
[Mono.Security]: It is legal for a TlsClientCertificate message to contain no certificates.
Zoltan Varga [Wed, 28 Oct 2015 22:45:16 +0000 (18:45 -0400)]
Fix the build, the stub for mono_llvm_cpp_throw_exception () was inside a DISABLE_JIT ifdef block.
Martin Baulig [Wed, 28 Oct 2015 22:38:43 +0000 (18:38 -0400)]
Fix my last commit.
Martin Baulig [Wed, 28 Oct 2015 22:26:55 +0000 (18:26 -0400)]
[Mono.Security]: Rename 'MonoTlsSettings.ServerCertificateValidationCallback' into 'RemoteCertificateValidationCallback'.
This callback is also used to validate client-certificates when using SslStream in server-mode.
Martin Baulig [Wed, 28 Oct 2015 21:10:26 +0000 (17:10 -0400)]
Don't pass a 'null' hostname to the system validator as it would crash.
Martin Baulig [Wed, 28 Oct 2015 20:27:43 +0000 (16:27 -0400)]
Kill dead code.
Zoltan Varga [Wed, 28 Oct 2015 21:31:19 +0000 (17:31 -0400)]
[runtime] Handle the conditional compilation of llvm-runtime.cpp at the automake level since including a c++ file into a c project seems to cause linking problems on some platforms.
Zoltan Varga [Wed, 28 Oct 2015 21:22:11 +0000 (17:22 -0400)]
[runtime] Add a configure check for unwind.h
Zoltan Varga [Wed, 28 Oct 2015 19:04:56 +0000 (15:04 -0400)]
[profiler] Avoid a crash at shutdown by installing the assembly unload hook for the 'start_unload' event instead of the 'end_unload' event, the latter receives a mostly freed assembly.
Ludovic Henry [Sat, 24 Oct 2015 12:09:41 +0000 (13:09 +0100)]
[threads] Use runtime flag to enable cooperative suspend
To enable cooperative suspend, simply set the MONO_ENABLE_COOP
environment variable.
Ludovic Henry [Wed, 28 Oct 2015 18:27:52 +0000 (18:27 +0000)]
Merge pull request #2179 from BogdanovKirill/enummodulesfix
[Processes] Memory leak fix in EnumProcessModules function
Zoltan Varga [Wed, 28 Oct 2015 18:27:16 +0000 (14:27 -0400)]
Fix the build.
Martin Baulig [Wed, 28 Oct 2015 18:14:48 +0000 (14:14 -0400)]
Use 'using SD = System.Diagnostics' to avoid ambiguous references.
Ludovic Henry [Wed, 28 Oct 2015 16:46:46 +0000 (16:46 +0000)]
[test-runner] Improve output
Ludovic Henry [Wed, 28 Oct 2015 16:45:43 +0000 (16:45 +0000)]
[Process] Catch the closing of handle
Ludovic Henry [Wed, 28 Oct 2015 16:44:38 +0000 (16:44 +0000)]
[Process] Do not count the output/error wait in the timeout of WaitForExit
João Matos [Wed, 28 Oct 2015 16:30:54 +0000 (16:30 +0000)]
[runtime] Fixed the non-LLVM build.
Zoltan Varga [Wed, 28 Oct 2015 15:07:42 +0000 (11:07 -0400)]
Fix the windows build.
Ludovic Henry [Thu, 22 Oct 2015 20:01:10 +0000 (21:01 +0100)]
[threads] Fix race between async suspend and compensation
The race only happens on Posix with unified suspend.
The chain of event is the following:
- T1 suspend the world (calls `sgen_unified_suspend_stop_world`)
- T2 is async suspended
- T2 execute suspend_signal_handler:
- T2 finish async suspend
- T2->suspend_can_continue is set to FALSE as the thread is detaching
- T2 notify T1 via `mono_threads_notify_initiator_of_suspend`
- T2 is yielded (via the OS scheduler, or forced via a `sleep`)
- T1 returns from `mono_threads_wait_pending_operations`
- T1 does its stuff
- T1 restart the world
- T1 (or any another thread, except for T2) suspend the world (it does not
necessarily uses `sgen_unified_suspend_stop_world`)
- T2 is async suspended: incrementation of T2->suspend_count to 2, but it is
not signalled because it is already in ASYNC_SUSPENDED state
- T2 wakes up (for any reason) and execute compensation <- ERROR: suspend_count != 1
This race can happen because when async suspending, we notify the
suspendor before executing the compensation, in this case for a thread
which is detaching. By simply post-ponning the notification, just after
the compensation, we eliminate this race.
Alexander Köplinger [Wed, 28 Oct 2015 00:21:38 +0000 (01:21 +0100)]
[acceptance-tests] Write list of CoreCLR tests into file and pass it to test-runner
This shaved about 30 seconds off the time until the test-runner started on my machine compared to
passing the tests in the command line directly (we have *lots* of CoreCLR tests).
Alexander Köplinger [Wed, 28 Oct 2015 00:16:55 +0000 (01:16 +0100)]
[test-runner] Add a new --input-file option for reading the test list from a file
Alexander Köplinger [Wed, 28 Oct 2015 00:10:57 +0000 (01:10 +0100)]
[test-runner] Fix bug in commandline option parsing
i+i doesn't make sense, it should be i+1 (the next argument after the current one).
Ludovic Henry [Sun, 25 Oct 2015 14:47:54 +0000 (14:47 +0000)]
[tests] Add coreclr GC stress tests
Ludovic Henry [Mon, 26 Oct 2015 18:39:57 +0000 (18:39 +0000)]
[tests] Try to fix finalizer-wait
Ludovic Henry [Wed, 28 Oct 2015 11:16:57 +0000 (11:16 +0000)]
[tests] Fix Math.Pow precision bug on Android
BogdanovKirill [Wed, 28 Oct 2015 05:50:46 +0000 (10:50 +0500)]
[Processes] Memory leak fix in EnumProcessModules function
The main point is that get_process_name_from_proc's result string is never released.
This change is released under the MIT license.
Alex Rønne Petersen [Wed, 28 Oct 2015 10:25:28 +0000 (11:25 +0100)]
[profiler] Disable 'time went backwards' debug message.
While this would have indicated a bug in the past, it's perfectly normal now
due to how we synthesize TYPE_JIT events to ensure sane event ordering.
Zoltan Varga [Wed, 28 Oct 2015 01:03:53 +0000 (21:03 -0400)]
[runtime] Use Unwind_Backtrace only on platforms which support it.
Zoltan Varga [Wed, 28 Oct 2015 00:57:06 +0000 (20:57 -0400)]
[llvmonly] Add support for direct calls to icalls.
Martin Baulig [Tue, 27 Oct 2015 21:38:39 +0000 (17:38 -0400)]
[System/TLS]: Don't crash when we're called without user-supplied certificate validator.
Alexander Köplinger [Tue, 27 Oct 2015 20:28:48 +0000 (21:28 +0100)]
[acceptance-tests] Move CoreCLR submodule reference to Mono fork
Martin Baulig [Tue, 27 Oct 2015 19:47:40 +0000 (15:47 -0400)]
Oops, there is no README.md
Martin Baulig [Tue, 27 Oct 2015 19:44:23 +0000 (15:44 -0400)]
Oops, forgot to add to the top-level Makefile for mobile.
Alexander Köplinger [Tue, 27 Oct 2015 19:37:34 +0000 (20:37 +0100)]
[test-runner] Filter out invalid XML chars before writing to XML
The test-runner crashed sometimes when running the CoreCLR testsuite with the following exception:
"System.ArgumentException: '', hexadecimal value 0x0F, is an invalid character." when trying to
emit the NUnit xml.
The stacktrace of one of the failing tests contained the character 0x0F which is invalid in XML,
we now filter out those invalid chars.
Martin Baulig [Tue, 27 Oct 2015 18:26:51 +0000 (14:26 -0400)]
[Mono.Security.Providers.OldTls]: New assembly.
This provides a 'MonoTlsProvider' for Mono's existing TLS implementation.
It's simply a public frontend for the internal 'LegacySslStream' class.
Martin Baulig [Tue, 27 Oct 2015 18:25:46 +0000 (14:25 -0400)]
[System]: Make internals visible to Mono.Security.Providers.OldTls.
Vlad Brezae [Tue, 27 Oct 2015 16:22:02 +0000 (18:22 +0200)]
[sgen] Fix marking of cards on 64bit
Mark Probst [Tue, 27 Oct 2015 17:54:40 +0000 (10:54 -0700)]
[sgen] Fix call to `InterlockedCompareExchange()`.
This fixes random crashes on `sgen-weakref-stress.exe`.
Radek Doulik [Tue, 27 Oct 2015 17:23:41 +0000 (18:23 +0100)]
[linker] match type pattern with nested types
- this way the following xml will match all the types in the assembly
MyAssembly
<linker>
<assembly fullname="MyAssembly">
<namespace type="*" />
</assembly>
</linker>
before this change it will only match the types defined in main
module and none of the nested types
Alexander Köplinger [Tue, 27 Oct 2015 17:19:39 +0000 (18:19 +0100)]
[acceptance-tests] Append a suffix to the CoreCLR IL tests
Some of the tests have both a test.il and test.cs in the same folder, which means we would
generate an .exe with the same name and overwriting one of them.
This is avoided by appending a _il suffix to the IL tests.
Andi McClure [Tue, 27 Oct 2015 15:49:36 +0000 (11:49 -0400)]
Merge pull request #2163 from xmcclure/image-audit
Mempool reference-auditing feature in checked builds
"Andi McClure ext:(%22) [Tue, 27 Oct 2015 15:41:41 +0000 (11:41 -0400)]
This introduces three macros, to be used in place of a simple pointer assignment when working with images or imagesets:
CHECKED_METADATA_WRITE_PTR - Use this to assign a pointer when it points from memory hosted by an image or imageset to another.
CHECKED_METADATA_WRITE_PTR_LOCAL - Use this to assign a pointer when it points from memory noted by an image or imageset to itself.
CHECKED_METADATA_WRITE_PTR_EXEMPT - Use this to assign a pointer in memory hosted by an image or imageset, but which the audit feature cannot correctly check at this time (this is the case when an image must contain a pointer to something that is not located in a mempool, such as a constant string). This is so that at least we know where these exceptions to the audits are.
In non-checked mode, each of these is a simple assignment. In checked mode, they walk the graph of references between images to make sure invariants related to ref_count are not violated.
João Matos [Tue, 27 Oct 2015 11:51:55 +0000 (11:51 +0000)]
[runtime] Normalize include style.
Andi McClure [Tue, 27 Oct 2015 14:20:33 +0000 (10:20 -0400)]
Merge pull request #2175 from xmcclure/pre-image-audit
Mempool reference-auditing feature in checked builds (prep work only)
"Andi McClure ext:(%22) [Tue, 27 Oct 2015 13:35:57 +0000 (09:35 -0400)]
Simplify function interface for rework of image.c hashes, based on PR comments
João Matos [Tue, 27 Oct 2015 11:47:32 +0000 (11:47 +0000)]
[runtime] Fixed cross-compile LLVM build.
Ludovic Henry [Tue, 27 Oct 2015 11:46:07 +0000 (11:46 +0000)]
[test-runner] Make sure to close resources hold by Process
Ludovic Henry [Tue, 27 Oct 2015 11:42:32 +0000 (11:42 +0000)]
[Process] Use output/error stream instead of naked handle
This is to make sure the handle is closed, whenever we close the streams
Alexander Köplinger [Tue, 27 Oct 2015 11:45:39 +0000 (12:45 +0100)]
[test-runner] Make the --testsuite-name option required
Defaulting to a value doesn't make sense since the NUnit xml would be overwritten if multiple tests used the same default.
João Matos [Tue, 27 Oct 2015 11:39:48 +0000 (11:39 +0000)]
[runtime] Added --with-cross-offsets configure option for including an explicit AOT cross offsets file.
This option will define MONO_OFFSETS_FILE which will be used by the rest of the code to include the right file when looking for cross offsets.
Marek Safar [Tue, 27 Oct 2015 09:19:58 +0000 (10:19 +0100)]
[mcs] Declared fields cannot have unmanaged check done before all types are defined. Fixes #35269
Zoltan Varga [Tue, 27 Oct 2015 04:31:34 +0000 (00:31 -0400)]
[llvmonly] Fix EH when llvm is disabled.
Zoltan Varga [Mon, 26 Oct 2015 22:32:10 +0000 (18:32 -0400)]
[llvmonly] Fix an assertion for methods with many arguments.
Zoltan Varga [Mon, 26 Oct 2015 22:28:45 +0000 (18:28 -0400)]
[llvmonly] Fix the computation of the generic context used to initialize shared methods, previously we would be using the context of the class of the receiver, but that wouldn't work when its a non-generic class inheriting from a generic class. Use the context of the method which was used to lookup the shared method in the first place instead.
Mark Probst [Mon, 26 Oct 2015 22:01:06 +0000 (15:01 -0700)]
[sgen] Fix binary protocol limit default.
`size_t` is unsigned, so using `-1` by default will always impose a
limit, and make binary protocol file names numbered, which is not
usually what you want or expect.
Ludovic Henry [Mon, 26 Oct 2015 22:00:51 +0000 (22:00 +0000)]
[Process] Close process in/out/err handle on Process dispose
This would lead to leaked handle, and that would be visible when running
the test suite on Jenkins, with a "Too many open files" exception.
That also reverts the behavior to before
789808b507fe16941a31acc43ffc6bc8e0cdae75
"Andi McClure ext:(%22) [Mon, 26 Oct 2015 20:04:28 +0000 (16:04 -0400)]
Rework “image hashes” in image.c to segregate by-path and by-name lookups into two hashes
This is part of the continued cleanup work for the mempool reference auditing feature. Separating the hashes prevents redundant work when iterating over hashes, something the reference auditor does a lot. External interface to image.c still behaves the same.
"Andi McClure ext:(%22) [Tue, 27 Oct 2015 13:37:44 +0000 (09:37 -0400)]
Continued cleanup in preparation for mempool reference auditing feature
- Fixes to comments and the mempool rework, based on pull request comments
- Additional comments overall
Zoltan Varga [Mon, 26 Oct 2015 19:17:50 +0000 (15:17 -0400)]
[llvm] Fix aot support in non-llvmonly mode.
Zoltan Varga [Mon, 26 Oct 2015 18:58:11 +0000 (14:58 -0400)]
[llvmonly] Avoid disabling llvm for methods with pinvoke signatures in llvmonly mode.
Zoltan Varga [Mon, 26 Oct 2015 18:57:45 +0000 (14:57 -0400)]
[llvm] Register the llvmonly icalls even if llvm is not enabled.
Zoltan Varga [Mon, 26 Oct 2015 17:52:29 +0000 (13:52 -0400)]
Fix the non-llvm build.
Ludovic Henry [Mon, 26 Oct 2015 16:35:14 +0000 (16:35 +0000)]
[tests] Add timeout before failing
Ludovic Henry [Mon, 26 Oct 2015 15:50:12 +0000 (15:50 +0000)]
[tests] Increase timeout before failing
Marek Safar [Mon, 26 Oct 2015 15:40:48 +0000 (16:40 +0100)]
[mcs] Support auto-property with private setter with member definition from external assembly. Fixes #35236
Ludovic Henry [Mon, 26 Oct 2015 14:13:03 +0000 (14:13 +0000)]
[tests] Increase timeout before failing
Ludovic Henry [Mon, 26 Oct 2015 12:30:34 +0000 (12:30 +0000)]
[tests] Add --testsuite-name to avoid overwritting test result XML files
Ludovic Henry [Mon, 26 Oct 2015 10:58:40 +0000 (10:58 +0000)]
[tests] Use test-runner to run unhandled-exception tests
Zoltan Varga [Mon, 26 Oct 2015 02:17:01 +0000 (22:17 -0400)]
Add another missing file.
Zoltan Varga [Mon, 26 Oct 2015 02:16:38 +0000 (22:16 -0400)]
Add a missing file.
Zoltan Varga [Mon, 26 Oct 2015 02:15:19 +0000 (22:15 -0400)]
[llvm] Move the EH support code into mini-exceptions.c, and the c++ functions used by it into a new llvm-runtime.cpp file so llvmonly code works in a runtime which doesn't have llvm enabled.
Zoltan Varga [Mon, 26 Oct 2015 02:12:52 +0000 (22:12 -0400)]
[llvm] Fix support for asmonly+llvmonly by emitting the bitcode into the file given by the llvm-outfile aot option.
Zoltan Varga [Sat, 24 Oct 2015 05:09:51 +0000 (01:09 -0400)]
Merge pull request #2166 from ermshiperete/FontHeight
[WinForms] Check for null font Height
Zoltan Varga [Sat, 24 Oct 2015 03:20:31 +0000 (23:20 -0400)]
[profiler] Create a static version of libmono-profiler-log which doesn't link against eglib, to prevent duplicate symbols errors when its linked with the runtime. Fixes part of #29745.
Zoltan Varga [Sat, 24 Oct 2015 00:53:50 +0000 (20:53 -0400)]
[arm] Add a comment for a hack.
Zoltan Varga [Fri, 23 Oct 2015 23:22:54 +0000 (19:22 -0400)]
[arm64] Implement mono_threads_core_begin_async_resume () for arm64.
Aleksey Kliger (λgeek) [Fri, 23 Oct 2015 22:38:41 +0000 (18:38 -0400)]
Merge pull request #2171 from lambdageek/dev/fix-marshal
[coop] One more pair of coop gc marshal fixes.
Mark Probst [Fri, 23 Oct 2015 22:16:55 +0000 (15:16 -0700)]
[sgen] Documentation about future-proofing the binary protocol.
We want to use the binary protocol to measure GC pause times in the
benchmarking suite. To make that easier and be able to go back and
(re-)benchmark older versions, we'd like the binary protocol format to
be backwards compatible.
Zoltan Varga [Fri, 23 Oct 2015 21:06:54 +0000 (17:06 -0400)]
Add a new Moono_GetStackTraces method to Thread which can be used to obtain stack traces for all running threads.
Aleksey Kliger [Fri, 23 Oct 2015 20:15:57 +0000 (16:15 -0400)]
[coop] One more pair of coop gc marshal fixes.
Missed a pair of
`mono_threads_reset_blocking_start`/`mono_threads_reset_blocking_end`
calls in
991e3ef3e47f0ccf9981a791f7da680b4ee9c4c6
Martin Baulig [Fri, 23 Oct 2015 20:05:19 +0000 (16:05 -0400)]
Remove a few more 'using System.Reflection's.
Martin Baulig [Fri, 23 Oct 2015 18:26:34 +0000 (14:26 -0400)]
[Mono.Security]: Use the new 'NoReflectionHelper' instead of reflection in 'MonoTlsProviderFactory'.
Mark Probst [Fri, 23 Oct 2015 18:57:05 +0000 (11:57 -0700)]
[sgen] Add some bridge documentation.
Zoltan Varga [Fri, 23 Oct 2015 19:10:43 +0000 (15:10 -0400)]
Merge pull request #2170 from alexanderkyte/mini_llvm_archfix
[runtime] Fix support for amd64 in mini-llvm-cpp.cpp
Alexander Kyte [Fri, 23 Oct 2015 19:01:43 +0000 (15:01 -0400)]
[runtime] Fix support for amd64 in mini-llvm-cpp.cpp
Martin Baulig [Fri, 23 Oct 2015 18:08:44 +0000 (14:08 -0400)]
[System]: Add internal 'Mono.Net.Security.NoReflectionHelper' class to avoid reflection use.
Martin Baulig [Fri, 23 Oct 2015 17:58:31 +0000 (13:58 -0400)]
Remove 'using System.Reflection'.
Martin Baulig [Fri, 23 Oct 2015 16:29:00 +0000 (12:29 -0400)]
[Mono.Security]: Access System.dll's internals directly instead of using reflection.
Martin Baulig [Fri, 23 Oct 2015 16:21:49 +0000 (12:21 -0400)]
[System]: Make internals visible to Mono.Security.