mono.git
7 years agoMerge pull request #3106 from lambdageek/dev/monoerror-unhandled
Aleksey Kliger (λgeek) [Mon, 13 Jun 2016 15:52:35 +0000 (11:52 -0400)]
Merge pull request #3106 from lambdageek/dev/monoerror-unhandled

[runtime] Okay to raise MonoError in thread start functions.

7 years ago[System] Fixes crash during implicit file uri parsing with unicode characters
Marek Safar [Mon, 13 Jun 2016 15:21:14 +0000 (17:21 +0200)]
[System] Fixes crash during implicit file uri parsing with unicode characters

7 years agoMerge pull request #3161 from ntherning/use_msvc_built_libtest_dll_for_runtime_tests_...
Alexander Köplinger [Mon, 13 Jun 2016 14:42:20 +0000 (16:42 +0200)]
Merge pull request #3161 from ntherning/use_msvc_built_libtest_dll_for_runtime_tests_on_windows

Use the MSVC built libtest.dll when running the P/Invoke tests in mono/tests/ on Windows

7 years agoUse the MSVC built libtest.dll when running the P/Invoke tests in mono/tests/
Niklas Therning [Mon, 13 Jun 2016 08:50:19 +0000 (10:50 +0200)]
Use the MSVC built libtest.dll when running the P/Invoke tests in mono/tests/
on Windows. Updates the tests-config.in file with Windows specific <dllmap>
elements that map 'libtest' to the MSVC built libtest.dll for the current
architecture. test-runner.cs has been modified to accept a --config option to
be able to use a specific config file. Makefile.am now configures test-
runner.exe to use the tests-config config when running the tests.

7 years ago[runtime] Don't raise ArgumentNullException in mono_monitor_enter_fast (#3158)
Aleksey Kliger (λgeek) [Sun, 12 Jun 2016 21:32:07 +0000 (17:32 -0400)]
[runtime] Don't raise ArgumentNullException in mono_monitor_enter_fast (#3158)

Just return that you couldn't enter the monitor and let the slow path handle it.

Fixes [#41705](https://bugzilla.xamarin.com/show_bug.cgi?id=41705)

7 years ago[System.Net.Http] Fix CFNetworkHandler.CookieContainer not to return null (#3141)
Sebastien Pouliot [Sat, 11 Jun 2016 18:21:21 +0000 (14:21 -0400)]
[System.Net.Http] Fix CFNetworkHandler.CookieContainer not to return null (#3141)

* [System.Net.Http] Fix CFNetworkHandler.CookieContainer not to return null

This aligns the handler with the managed HttpClientHandler [1] and make
it easier to switch between them without additional or conditional code.

[1] https://github.com/mono/mono/blob/14f8acced5bbb2f6d55fb3e7800382700bcc65eb/mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs#L97

7 years ago[runtime] Avoid building the tools dir when cross-compiling, some tools don't seem...
Zoltan Varga [Sat, 11 Jun 2016 02:48:21 +0000 (22:48 -0400)]
[runtime] Avoid building the tools dir when cross-compiling, some tools don't seem to compile.

7 years ago[amd64] Handle native types correctly in mono_arch_get_llvm_call_info ().
Zoltan Varga [Sat, 11 Jun 2016 02:47:22 +0000 (22:47 -0400)]
[amd64] Handle native types correctly in mono_arch_get_llvm_call_info ().

7 years ago[jit] Add some missing opcodes to MONO_IS_SETCC.
Zoltan Varga [Sat, 11 Jun 2016 02:47:00 +0000 (22:47 -0400)]
[jit] Add some missing opcodes to MONO_IS_SETCC.

7 years agoMerge pull request #3152 from ntherning/use_env_configured_mono_exe_in_runtime_tests
Alexander Köplinger [Fri, 10 Jun 2016 21:39:25 +0000 (23:39 +0200)]
Merge pull request #3152 from ntherning/use_env_configured_mono_exe_in_runtime_tests

Make mono/tests/Makefile.am use MONO_EXECUTABLE if set

7 years ago[mscorlib] Better handling of unix timezones which have offset not specified in whole...
Marek Safar [Fri, 10 Jun 2016 19:23:09 +0000 (21:23 +0200)]
[mscorlib] Better handling of unix timezones which have offset not specified in whole minutes. Fixes #41492

7 years ago[tools] Add a few missing files to the tarball
Alexander Köplinger [Fri, 10 Jun 2016 19:08:45 +0000 (21:08 +0200)]
[tools] Add a few missing files to the tarball

Those turned out to be missing when building tools/ was enabled by default.
Also ignore some stuff in .gitignore

7 years ago[runtime] Fix MonoError lifecycle in do_try_exec_main (#3145)
Aleksey Kliger (λgeek) [Fri, 10 Jun 2016 18:59:53 +0000 (14:59 -0400)]
[runtime] Fix MonoError lifecycle in do_try_exec_main (#3145)

The do_try_exec_main function is always called in contexts where any
exception from doing the invoke is going to be stored in the exc outarg.
That means any MonoError will be handled locally by do_try_exec_main.
So we don't need a MonoError argument, we just need an inner_error.

7 years agoMerge pull request #3144 from Unity-Technologies/fix-recursive-property-call
Martin Baulig [Fri, 10 Jun 2016 18:23:35 +0000 (20:23 +0200)]
Merge pull request #3144 from Unity-Technologies/fix-recursive-property-call

Fix recursive property call in MonoSslStreamImpl

7 years agoMerge pull request #3154 from lambdageek/fix-initmessage-linker
Aleksey Kliger (λgeek) [Fri, 10 Jun 2016 15:54:29 +0000 (11:54 -0400)]
Merge pull request #3154 from lambdageek/fix-initmessage-linker

[linker] Add MonoMethodMessage::InitMessage to mscorlib descriptor

7 years ago[linker] Add MonoMethodMessage::InitMessage to mscorlib descriptor
Aleksey Kliger [Fri, 10 Jun 2016 15:21:29 +0000 (11:21 -0400)]
[linker] Add MonoMethodMessage::InitMessage to mscorlib descriptor

That method gets called from the runtime, it shouldn't be linked out.

7 years ago[tests] Bump timeout in sleep.exe
Alexander Köplinger [Fri, 10 Jun 2016 14:32:21 +0000 (16:32 +0200)]
[tests] Bump timeout in sleep.exe

We're seeing it randomly fail on Wrench with durations of 1550 - 1800ms.
Talked to Zoltan, this might be normal so bumping the timeout to reduce the failure rate.

7 years ago[System] Read all values of unknown/uncommon headers with multiple entries. Fixes...
Marek Safar [Fri, 10 Jun 2016 10:58:07 +0000 (12:58 +0200)]
[System] Read all values of unknown/uncommon headers with multiple entries. Fixes #41552

7 years ago[runtime] Ensure uniqueness of icall wrappers (#3143)
Alexander Kyte [Fri, 10 Jun 2016 09:05:51 +0000 (05:05 -0400)]
[runtime] Ensure uniqueness of icall wrappers (#3143)

The llvmonly backend will use `mono_aot_init_gshared_method_this`
and other initializers to initialize methods. These will transitively call
`mono_icall_get_wrapper_full` when icall wrappers are needed.

The init functions will set the
initialized flag after initialization. They set it in a non-atomic manner. This means that
in a multithreaded environment, it's possible to call the functions
twice.

When `mono_icall_get_wrapper_full` is called without this patch, the
pointers to wrappers it gets from `mono_marshal_get_icall_wrapper`
will not have the same addresses. They will hash to the same value
though.

This will lead to them not being found or inserted by
`find_aot_method_in_amodule`.
The fact that we already have a value with this hash means that
the new wrapper doesn't get inserted. The fact that the pointers differ
mean that we don't say that we've found our desired wrapper.

This leads to an assertion in `mono_icall_get_wrapper_full`
crashing the runtime.

Since we intend to have the semantics of a wrapper for each icall,
this change uses a cache to ensure uniqueness. The observed crashes
do not happen when this change is applied.

7 years agoMerge pull request #3151 from akoeplinger/fix-islocal
Marek Safar [Fri, 10 Jun 2016 08:13:59 +0000 (10:13 +0200)]
Merge pull request #3151 from akoeplinger/fix-islocal

[System] Fix HttpListenerRequestTest.HttpRequestIsLocal intermittently failing

7 years agoModifies mono/tests/Makefile.am to pass along the value set in the
Niklas Therning [Fri, 10 Jun 2016 07:46:04 +0000 (09:46 +0200)]
Modifies mono/tests/Makefile.am to pass along the value set in the
MONO_EXECUTABLE env variable to test-runner.exe using the --runtime command
line parameter. Defaults to 'mono' which is also the defult in test- runner.cs
if no --runtime argument is given.

7 years ago[runtime] Move 'pedump' to tools/pedump, build tools by default. (#3133)
Zoltan Varga [Fri, 10 Jun 2016 06:52:03 +0000 (02:52 -0400)]
[runtime] Move 'pedump' to tools/pedump, build tools by default. (#3133)

* [runtime] Move 'pedump' to tools/pedump, build tools by default.

* Add missing file.

* [runtime] Mark mono_opcodes[] with MONO_API.

* [runtime] Build monograph when sgen is supported instead of boehm.

* [runtime] Link monograph against the static runtime libraries.

* [runtime] Use the same SUBDIRS/DIST_SUBDIRS for the CROSS_COMPILING case.

7 years agoMerge pull request #3140 from esdrubal/syscall_details
Alexander Köplinger [Thu, 9 Jun 2016 23:48:19 +0000 (01:48 +0200)]
Merge pull request #3140 from esdrubal/syscall_details

[runtime] Fixed interruptible wapi_sendfile part2.

7 years ago[System] Fix HttpListenerRequestTest.HttpRequestIsLocal intermittently failing
Alexander Köplinger [Thu, 9 Jun 2016 23:37:45 +0000 (01:37 +0200)]
[System] Fix HttpListenerRequestTest.HttpRequestIsLocal intermittently failing

We're seeing the following exception on devices in CI:

```
[FAIL] HttpListenerRequestTest.HttpRequestIsLocal : System.Net.Sockets.SocketException : Could not resolve host 'XQA-AppleTV-1'
  at System.Net.Dns.Error_11001 (System.String hostName) [0x00000] in /Users/builder/data/lanes/1381/d8287824/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System/System.Net/Dns.cs:292
  at System.Net.Dns.GetHostByName (System.String hostName) [0x00024] in /Users/builder/data/lanes/1381/d8287824/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System/System.Net/Dns.cs:419
  at System.Net.Dns.GetHostEntry (System.String hostNameOrAddress) [0x00061] in /Users/builder/data/lanes/1381/d8287824/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System/System.Net/Dns.cs:380
  at System.Net.Dns.GetHostAddresses (System.String hostNameOrAddress) [0x00065] in /Users/builder/data/lanes/1381/d8287824/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System/System.Net/Dns.cs:406
  at MonoTests.System.Net.HttpListenerRequestTest.HttpRequestIsLocal () [0x00006] in /Users/xamarinqa/QABot/data/lanes/2441/d8287824/source/xamarin-macios/external/mono/mcs/class/System/Test/System.Net/HttpListenerRequestTest.cs:197
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /Users/builder/data/lanes/1381/d8287824/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:309
```

From looking at the code, resolving the hostname to IP addresses via DNS fails so the test doesn't even run.
We don't care where the local IPs come from so we can use an alternative way of getting them - via querying the network interfaces.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=41671

PS: fixed a hardcoded port while I was touching the code

7 years agoMerge pull request #2921 from lewurm/lower-typechecks-later
monojenkins [Thu, 9 Jun 2016 23:05:15 +0000 (00:05 +0100)]
Merge pull request #2921 from lewurm/lower-typechecks-later

[mini] lower typechecks later

lower typecheck instructions later in the compilation, so we've a chance to do high-level optimization after `method-to-ir`

7 years agoMerge pull request #3121 from lambdageek/dev/managed-init_message
monojenkins [Thu, 9 Jun 2016 22:15:10 +0000 (23:15 +0100)]
Merge pull request #3121 from lambdageek/dev/managed-init_message

Rewriite `MonoMethodMessage::InitMessage` in managed code

Change icall
`System.Runtime.Remoting.Messaging/MonoMethodMessage::InitMessage` to
managed code.

Also update `mono_message_init()` to invoke `InitMessage`.

7 years ago[sgen] Inform on configure and --version when the concurrent GC is the default.
Rodrigo Kumpera [Thu, 9 Jun 2016 20:39:11 +0000 (13:39 -0700)]
[sgen] Inform on configure and --version when the concurrent GC is the default.

7 years ago[mini] execute decompose_typechecks only if there's a typecheck operation
Bernhard Urban [Mon, 6 Jun 2016 18:34:23 +0000 (11:34 -0700)]
[mini] execute decompose_typechecks only if there's a typecheck operation

7 years ago[mini] comment about empty BBs for graph visualization
Bernhard Urban [Mon, 6 Jun 2016 17:57:05 +0000 (10:57 -0700)]
[mini] comment about empty BBs for graph visualization

7 years ago[mini] do decomposition of typechecks later in the compilation pipeline
Bernhard Urban [Thu, 2 Jun 2016 22:23:49 +0000 (15:23 -0700)]
[mini] do decomposition of typechecks later in the compilation pipeline

7 years ago[method-to-ir] get rid of additional reg introduced for `isinst` and `castclass`
Bernhard Urban [Thu, 2 Jun 2016 22:23:45 +0000 (15:23 -0700)]
[method-to-ir] get rid of additional reg introduced for `isinst` and `castclass`

7 years ago[mini] add time tracking for decompose_typechecks pass
Bernhard Urban [Thu, 2 Jun 2016 22:23:42 +0000 (15:23 -0700)]
[mini] add time tracking for decompose_typechecks pass

7 years ago[mini] decompose `isinst` and `castclass` in a later pass
Bernhard Urban [Thu, 2 Jun 2016 22:23:39 +0000 (15:23 -0700)]
[mini] decompose `isinst` and `castclass` in a later pass

7 years ago[cfgdump] insert NOP in empty basic blocks in order to not confuse graph dumper
Bernhard Urban [Thu, 2 Jun 2016 22:23:36 +0000 (15:23 -0700)]
[cfgdump] insert NOP in empty basic blocks in order to not confuse graph dumper

7 years ago[debug] print class name for OP_{isinst,castclass}
Bernhard Urban [Thu, 2 Jun 2016 22:23:29 +0000 (15:23 -0700)]
[debug] print class name for OP_{isinst,castclass}

7 years ago[mini] introduce OP_{isinst,castclass}
Bernhard Urban [Thu, 2 Jun 2016 22:23:26 +0000 (15:23 -0700)]
[mini] introduce OP_{isinst,castclass}

7 years agoMerge pull request #3136 from BrzVlad/fix-stw-stopped
Vlad Brezae [Thu, 9 Jun 2016 20:13:56 +0000 (23:13 +0300)]
Merge pull request #3136 from BrzVlad/fix-stw-stopped

[sgen] Don't try to stop a stopped world

7 years ago[runtime] Switch mono_message_init to invoke managed
Aleksey Kliger [Mon, 6 Jun 2016 21:07:43 +0000 (17:07 -0400)]
[runtime] Switch mono_message_init to invoke managed

Invoke the managed
System.Runtime.Remoting.Messaging.MonoMethodMessage::InitMessage method.

7 years ago[corlib] Implement MonoMethodMessage::InitMessage in managed
Aleksey Kliger [Mon, 6 Jun 2016 20:27:53 +0000 (16:27 -0400)]
[corlib] Implement MonoMethodMessage::InitMessage in managed

Change icall
System.Runtime.Remoting.Messaging/MonoMethodMessage::InitMessage to
managed code.

7 years agoMerge pull request #3127 from alexrp/arm32-on-arm64
Alex Rønne Petersen [Thu, 9 Jun 2016 18:29:31 +0000 (20:29 +0200)]
Merge pull request #3127 from alexrp/arm32-on-arm64

[arm] Correctly detect hardware features when running as arm32 on arm64 hardware.

7 years agoMerge pull request #3137 from BrzVlad/fix-sgen-critical-region
Bernhard Urban [Thu, 9 Jun 2016 17:31:49 +0000 (10:31 -0700)]
Merge pull request #3137 from BrzVlad/fix-sgen-critical-region

[sgen] Exit the critical section also on the slowpath of managed allocators

7 years agoMerge pull request #3142 from henricm/fix-for-win-mono_string_to_utf8
monojenkins [Thu, 9 Jun 2016 16:55:12 +0000 (17:55 +0100)]
Merge pull request #3142 from henricm/fix-for-win-mono_string_to_utf8

Using mono_marshal_free n mono_string_builder_to_utf8

`mono_string_builder_to_utf16` is allocating using `mono_marshal_alloc` which, on windows, allocates memory using `CoTaskMemAlloc`. This buffer was then released in `mono_string_builder_to_utf8` using `g_free` which resulted in a crash since that's a different memory on windows. The fix in this PR makes sure `mono_marshal_free` is called instead which has the correct behaviour and results in a `CoTaskMemFree` on windows.

7 years ago[mcs] Add probing conversion for FormattableString. Fixes #41575
Marek Safar [Thu, 9 Jun 2016 15:54:32 +0000 (17:54 +0200)]
[mcs] Add probing conversion for FormattableString. Fixes #41575

7 years agoFix recursive property call in MonoSslStreamImpl
Mike Voorhees [Thu, 9 Jun 2016 14:38:44 +0000 (10:38 -0400)]
Fix recursive property call in MonoSslStreamImpl

7 years agoMerge pull request #3085 from lateralusX/jlorenss/win-x64-pinvoke-empty-struct
Johan Lorensson [Thu, 9 Jun 2016 13:49:33 +0000 (15:49 +0200)]
Merge pull request #3085 from lateralusX/jlorenss/win-x64-pinvoke-empty-struct

Fix for non GCC win x64 calling convention when passing empty structs over pinvoke.

7 years agoMaking sure mono_marshal_free is used instead of g_free in mono_string_builder_to_utf8
Henric Müller [Thu, 9 Jun 2016 13:21:56 +0000 (15:21 +0200)]
Making sure mono_marshal_free is used instead of g_free in mono_string_builder_to_utf8

7 years agoMerge pull request #3139 from akoeplinger/dns-test
monojenkins [Thu, 9 Jun 2016 13:35:12 +0000 (14:35 +0100)]
Merge pull request #3139 from akoeplinger/dns-test

[System] Make ServicePointTest.DnsRefreshTimeout test more reliable

We are still seeing quite rare failures of this test:

```
HostEntry should result in the same IPHostEntry object.
  Expected: same as <System.Net.IPHostEntry>
  But was:  <System.Net.IPHostEntry>

+++++++++++++++++++
STACK TRACE:
at MonoTests.System.Net.ServicePointTest.DnsRefreshTimeout () [0x00045] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/System/Test/System.Net/ServicePointTest.cs:228
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/corlib/System.Reflection/MonoMethod.cs:309
```

Since the test is only checking if expiring of the cached DNS lookup works, we don't really need to use an external domain name for this as "localhost" works just fine as well and typically doesn't trigger a DNS query which makes the test more reliable against network issues.

@monojenkins merge

7 years ago[mcs] Recognize indexer with accessors using different names. Fixes #41602
Marek Safar [Thu, 9 Jun 2016 12:58:49 +0000 (14:58 +0200)]
[mcs] Recognize indexer with accessors using different names. Fixes #41602

7 years ago[runtime] Fixed interruptible wapi_sendfile part2.
Marcos Henrich [Thu, 9 Jun 2016 11:42:15 +0000 (12:42 +0100)]
[runtime] Fixed interruptible wapi_sendfile part2.

Fixed issue where underlying system without HAVE_SENDFILE
would not interrupt while sending a file even when the socket was
set as a non blocking one.

7 years ago[System] Make ServicePointTest.DnsRefreshTimeout test more reliable
Alexander Köplinger [Thu, 9 Jun 2016 11:24:13 +0000 (13:24 +0200)]
[System] Make ServicePointTest.DnsRefreshTimeout test more reliable

We are still seeing quite rare failures of this test:

```
HostEntry should result in the same IPHostEntry object.
  Expected: same as <System.Net.IPHostEntry>
  But was:  <System.Net.IPHostEntry>

+++++++++++++++++++
STACK TRACE:
at MonoTests.System.Net.ServicePointTest.DnsRefreshTimeout () [0x00045] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/System/Test/System.Net/ServicePointTest.cs:228
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/corlib/System.Reflection/MonoMethod.cs:309
```

Since the test is only checking if expiring of the cached DNS lookup works, we don't really need to use an external domain name for this
as "localhost" works just fine as well and typically doesn't trigger a DNS query which makes the test more reliable against network issues.

7 years agoMerge pull request #3138 from akoeplinger/fix-win
Alexander Köplinger [Thu, 9 Jun 2016 09:52:05 +0000 (11:52 +0200)]
Merge pull request #3138 from akoeplinger/fix-win

[metadata] Fix Windows gcc build break

7 years ago[mcs] Bump ikvm to fix assembly unification rules
Marek Safar [Thu, 9 Jun 2016 08:30:40 +0000 (10:30 +0200)]
[mcs] Bump ikvm to fix assembly unification rules

7 years ago[arm] Correctly detect hardware features when running as arm32 on arm64 hardware.
Alex Rønne Petersen [Wed, 8 Jun 2016 14:21:13 +0000 (16:21 +0200)]
[arm] Correctly detect hardware features when running as arm32 on arm64 hardware.

7 years ago[metadata] Fix Windows gcc build break
Alexander Köplinger [Thu, 9 Jun 2016 00:53:26 +0000 (02:53 +0200)]
[metadata] Fix Windows gcc build break

After 680fe21e6952ba6dc73ad89095b34ebb3a9bfc86 it failed with:

```
coree.c: In function '_CorExeMain':
coree.c:200:2: error: implicit declaration of function 'mono_runtime_run_main_checked' [-Werror=implicit-function-declaration]
  mono_runtime_run_main_checked (method, argc, argv, &error);
  ^
[...]
Makefile:2137: recipe for target 'libmonoruntime_la-coree.lo' failed
make[3]: *** [libmonoruntime_la-coree.lo] Error 1
```

7 years ago[sgen] Scatterplot option for gcpauseviz.
Mark Probst [Wed, 8 Jun 2016 23:01:51 +0000 (16:01 -0700)]
[sgen] Scatterplot option for gcpauseviz.

7 years ago[sgen] Exit the critical section also on the slowpath of managed allocators
Vlad Brezae [Wed, 8 Jun 2016 21:57:50 +0000 (00:57 +0300)]
[sgen] Exit the critical section also on the slowpath of managed allocators

We were not exiting the critical section on this code path. This was leading to hangs at stw since the native code would take locks when compiling the code.

7 years ago[sgen] Don't try to stop a stopped world
Vlad Brezae [Wed, 8 Jun 2016 22:20:53 +0000 (01:20 +0300)]
[sgen] Don't try to stop a stopped world

On domain unload we were calling sgen_perform_collection even though we had a stopped world, when finishing a running concurrent collection.

7 years agoMerge pull request #3135 from kumpera/enable_conc_gc_on_mainline_archs
Rodrigo Kumpera [Wed, 8 Jun 2016 22:33:27 +0000 (15:33 -0700)]
Merge pull request #3135 from kumpera/enable_conc_gc_on_mainline_archs

[jenkins] Make the concurrent GC the default on mainline archtectures.

7 years ago[jenkins] Make the concurrent GC the default on mainline archtectures.
Rodrigo Kumpera [Wed, 8 Jun 2016 22:12:34 +0000 (15:12 -0700)]
[jenkins] Make the concurrent GC the default on mainline archtectures.

7 years agoMerge pull request #3090 from alexanderkyte/remove_deprecated_assertions
Alexander Köplinger [Wed, 8 Jun 2016 21:04:00 +0000 (23:04 +0200)]
Merge pull request #3090 from alexanderkyte/remove_deprecated_assertions

[mobile_static] Remove deprecated assertions

7 years ago[corlib] Fix tests for watchOS. (#3131)
Rolf Bjarne Kvinge [Wed, 8 Jun 2016 20:46:11 +0000 (22:46 +0200)]
[corlib] Fix tests for watchOS. (#3131)

7 years ago[llvm] Enable support for the atomic store intrinsics when running with llvmonly.
Zoltan Varga [Wed, 8 Jun 2016 18:58:07 +0000 (14:58 -0400)]
[llvm] Enable support for the atomic store intrinsics when running with llvmonly.

7 years agoMerge pull request #3117 from alexrp/master
Alex Rønne Petersen [Wed, 8 Jun 2016 16:04:48 +0000 (18:04 +0200)]
Merge pull request #3117 from alexrp/master

Fix a few socket test failures on Android

7 years ago[runtime] Okay to raise MonoError in thread start functions.
Aleksey Kliger [Thu, 2 Jun 2016 20:36:36 +0000 (16:36 -0400)]
[runtime] Okay to raise MonoError in thread start functions.

They just trigger the unhandled exception handlers.

7 years agoMerge pull request #3093 from lambdageek/dev/monoerror-exec
Aleksey Kliger (λgeek) [Wed, 8 Jun 2016 14:35:46 +0000 (10:35 -0400)]
Merge pull request #3093 from lambdageek/dev/monoerror-exec

[runtime] Mark mono_runtime_{run,exec}_main external only.

7 years ago[sockets] Correctly report that Linux supports double binding for UDP, even on old...
Alex Rønne Petersen [Wed, 8 Jun 2016 13:27:47 +0000 (15:27 +0200)]
[sockets] Correctly report that Linux supports double binding for UDP, even on old kernels.

7 years ago[mcs] Improve betterness changes in b12385e9fdedd5b146d00a56687c886a647e1865
Marek Safar [Wed, 8 Jun 2016 13:25:52 +0000 (15:25 +0200)]
[mcs] Improve betterness changes in b12385e9fdedd5b146d00a56687c886a647e1865

7 years ago[System] Fixes compiler warning
Marek Safar [Tue, 7 Jun 2016 21:28:28 +0000 (23:28 +0200)]
[System] Fixes compiler warning

7 years ago[System] Make SocketAsyncTest.SendAsync give more helpful failures.
Alex Rønne Petersen [Tue, 7 Jun 2016 18:24:14 +0000 (20:24 +0200)]
[System] Make SocketAsyncTest.SendAsync give more helpful failures.

7 years ago[build] Add llvm folder to SUBDIRS/DIST_SUBDIRS
Alexander Köplinger [Wed, 8 Jun 2016 12:05:50 +0000 (14:05 +0200)]
[build] Add llvm folder to SUBDIRS/DIST_SUBDIRS

This ensures all the right files are packaged in the tarball.

7 years agoMerge pull request #3122 from akoeplinger/fix-41530
Alexander Köplinger [Wed, 8 Jun 2016 10:47:41 +0000 (12:47 +0200)]
Merge pull request #3122 from akoeplinger/fix-41530

[System] Make TimerTest.EnabledInElapsed more reliable

7 years agoMerge pull request #3120 from esdrubal/syscall_details
Marcos Henrich [Wed, 8 Jun 2016 08:03:20 +0000 (09:03 +0100)]
Merge pull request #3120 from esdrubal/syscall_details

Fixes SendAsyncFile flaky failures

7 years ago[runtime] Only print out the value of MONO_EXTRA_CONFIGURE_FLAGS when it is set.
Zoltan Varga [Wed, 8 Jun 2016 07:05:16 +0000 (03:05 -0400)]
[runtime] Only print out the value of MONO_EXTRA_CONFIGURE_FLAGS when it is set.

7 years agoMerge pull request #3118 from kumpera/fix_getname
Rodrigo Kumpera [Wed, 8 Jun 2016 00:22:55 +0000 (17:22 -0700)]
Merge pull request #3118 from kumpera/fix_getname

[corlib] Handle user Assembly subclass and Assembly::GetName.

7 years ago[System] Make TimerTest.EnabledInElapsed more reliable
Alexander Köplinger [Tue, 7 Jun 2016 15:20:09 +0000 (17:20 +0200)]
[System] Make TimerTest.EnabledInElapsed more reliable

We were seeing intermittent failures on devices like:

```
[FAIL] TimerTest.EnabledInElapsed :   #1 loss of events
  Expected: True
  But was:  False

  at MonoTests.System.Timers.TimerTest.EnabledInElapsed () <0x33b168 + 0x0014f> in <filename unknown>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object , BindingFlags , System.Reflection.Binder , System.Object[] , System.Globalization.CultureInfo ) <0x66d400 + 0x000b7> in <filename unknown>:0
```

Since OS scheduling and GCs can influence the exact timing of the timer intervals sleeping for 200ms is likely just too short.
Instead of bumping the timeout, I decided to rewrite the test to not rely on Thread.Sleep ().
I also added another test which verifies setting AutoResetEvent=false stops the timer event from firing after the first one,
which was implicitly tested before by the other test.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=41530

7 years agoMerge pull request #3114 from alexanderkyte/mono_conf_gc
Rodrigo Kumpera [Tue, 7 Jun 2016 22:44:03 +0000 (15:44 -0700)]
Merge pull request #3114 from alexanderkyte/mono_conf_gc

[runtime] Add configuration for the default sgen gc mode

7 years agoMerge pull request #3112 from akoeplinger/test-runner-nofile
Alexander Köplinger [Tue, 7 Jun 2016 22:18:39 +0000 (00:18 +0200)]
Merge pull request #3112 from akoeplinger/test-runner-nofile

[test-runner] Write stdout/stderr into StringBuilder instead of an intermediate file

7 years agoMore updates
Miguel de Icaza [Tue, 7 Jun 2016 21:53:36 +0000 (17:53 -0400)]
More updates

7 years ago[corlib] Handle user Assembly subclass and Assembly::GetName.
Rodrigo Kumpera [Tue, 7 Jun 2016 06:28:31 +0000 (23:28 -0700)]
[corlib] Handle user Assembly subclass and Assembly::GetName.

Remove UnprotectedGetName and replace with overriding of GetName.

dotnet throws NIE if you subclass Assembly and call GetName on it.
We hard crashed.

7 years agoFix make dist
Alexander Köplinger [Tue, 7 Jun 2016 20:43:16 +0000 (22:43 +0200)]
Fix make dist

It got broken when the versions.py file was moved around in d110f526706b7c4880ca916e2dfbab93138871cd.
Also add the new locations to EXTRA_DIST so they get distributed too.

7 years agoMerge pull request #3119 from kumpera/fix-getname-and-shadowcopy
Rodrigo Kumpera [Tue, 7 Jun 2016 19:51:27 +0000 (12:51 -0700)]
Merge pull request #3119 from kumpera/fix-getname-and-shadowcopy

[corlib] Take shadow copying when computing CodeBase in Assembly::GetName.

7 years agoMerge pull request #3082 from alexanderkyte/no_alloc_klass_error
Aleksey Kliger (λgeek) [Tue, 7 Jun 2016 19:23:17 +0000 (15:23 -0400)]
Merge pull request #3082 from alexanderkyte/no_alloc_klass_error

[runtime] Set klass-error-based MonoError state without allocating

7 years ago[mobile_status] Fix nullable type ambiguity that nunit-lite complains about
Alexander Kyte [Thu, 2 Jun 2016 23:27:57 +0000 (19:27 -0400)]
[mobile_status] Fix nullable type ambiguity that nunit-lite complains about

7 years ago[mobile_static] Remove use of CollectionAssert, missing in nunit-lite
Alexander Kyte [Mon, 23 May 2016 22:42:57 +0000 (18:42 -0400)]
[mobile_static] Remove use of CollectionAssert, missing in nunit-lite

7 years ago[mobile_static] Remove uses of deprecated Assertion.cs nunit helper.
Alexander Kyte [Thu, 2 Jun 2016 01:15:27 +0000 (21:15 -0400)]
[mobile_static] Remove uses of deprecated Assertion.cs nunit helper.

7 years agoMerge pull request #3110 from BrzVlad/fix-complex-conc-scan
Rodrigo Kumpera [Tue, 7 Jun 2016 18:38:27 +0000 (11:38 -0700)]
Merge pull request #3110 from BrzVlad/fix-complex-conc-scan

[sgen] Fix concurrent scan of complex objects

7 years ago[Socket] Check for SocketOptionLevel.Socket before checking for SocketOptionName...
Alex Rønne Petersen [Tue, 7 Jun 2016 03:01:25 +0000 (05:01 +0200)]
[Socket] Check for SocketOptionLevel.Socket before checking for SocketOptionName.ReuseAddress.

Without doing this, the check would consider a valid option name like
IpTimeToLive to be the same as ReuseAddress, as they share the same enum
value.

Fixes SocketTest.TtlChange and SocketTest.UdpMulticasTimeToLive on Android and
other platforms that don't support ReuseAddress.

7 years agoMerge pull request #3124 from mono/revert-2734-master
Alexander Köplinger [Tue, 7 Jun 2016 16:45:29 +0000 (18:45 +0200)]
Merge pull request #3124 from mono/revert-2734-master

Revert "Enhance log tracing"

7 years agoRevert "Enhance log tracing"
Alexander Köplinger [Tue, 7 Jun 2016 16:45:09 +0000 (18:45 +0200)]
Revert "Enhance log tracing"

7 years ago[runtime] Add environment variable to pass additional configure options
Alexander Kyte [Tue, 7 Jun 2016 16:29:39 +0000 (12:29 -0400)]
[runtime] Add environment variable to pass additional configure options

7 years ago[runtime] Add new configure option for default sgen GC mode
Alexander Kyte [Tue, 7 Jun 2016 16:29:23 +0000 (12:29 -0400)]
[runtime] Add new configure option for default sgen GC mode

7 years ago[amd64] Fix an off-by-one in the dyn call code.
Zoltan Varga [Tue, 7 Jun 2016 16:16:59 +0000 (12:16 -0400)]
[amd64] Fix an off-by-one in the dyn call code.

7 years agoLlvm submodule (#3108)
Zoltan Varga [Tue, 7 Jun 2016 14:46:33 +0000 (10:46 -0400)]
Llvm submodule (#3108)

* Move the versions.mk infrastructure to scripts/submodules so it can be used elsewhere too.

* Add a conditional submodule for llvm.

* Fix commit messages emitted by the bump- targets.

* Use a anonymous git url for llvm.

7 years ago[runtime] Fixed interruptible wapi_sendfile.
Marcos Henrich [Tue, 7 Jun 2016 13:06:53 +0000 (14:06 +0100)]
[runtime] Fixed interruptible wapi_sendfile.

Before closing a socket we try to interrupt and wait for all socket
pending system calls to return. For that we set the socket as non
blocking which makes the system calls to return with EAGAIN\EWOULDBLOCK.

This issue was caught by System.Net.Sockets.SocketTest.SendAsyncFile
that was intermittently failing, we were only able to reproduce it while
running multiple test suites in parallel. We now can say that it only failed when
the the socket was closed and the sendfile was waiting for the OS to
allocate enough resources to send the file.

This was fixed by changing wapi_sendfile to return on EAGAIN.

7 years ago[System] Improved "Could not abort" exception.
Marcos Henrich [Tue, 7 Jun 2016 09:38:29 +0000 (10:38 +0100)]
[System] Improved "Could not abort" exception.

Stack traces of blocked threads are now displayed on the exception.

The threads stacktraces are only stored when MONO_TESTS_IN_PROGRESS env
var is set to yes.

7 years ago[runtime][mobile_static] Add flag for rgctx_fetch_trampolines and use it (#3088)
Alexander Kyte [Tue, 7 Jun 2016 11:44:40 +0000 (07:44 -0400)]
[runtime][mobile_static] Add flag for rgctx_fetch_trampolines and use it (#3088)

* [runtime] Add commandline option for rgctx fetch trampolines.

* [mobile_static] Increase the number of trampolines

7 years agoSmaller adjustments based on PR feedback.
lateralusX [Tue, 7 Jun 2016 09:35:02 +0000 (11:35 +0200)]
Smaller adjustments based on PR feedback.

7 years ago[runtime] Call mono_class_init () for classes in mono_class_is_subclass_of (). Fixes...
Zoltan Varga [Tue, 7 Jun 2016 08:08:41 +0000 (04:08 -0400)]
[runtime] Call mono_class_init () for classes in mono_class_is_subclass_of (). Fixes #41466.

7 years ago[corlib] Take shadow copying when computing CodeBase in Assembly::GetName.
Rodrigo Kumpera [Tue, 7 Jun 2016 06:36:32 +0000 (23:36 -0700)]
[corlib] Take shadow copying when computing CodeBase in Assembly::GetName.

7 years agoMerge pull request #3116 from alexrp/master
Alex Rønne Petersen [Tue, 7 Jun 2016 01:35:36 +0000 (03:35 +0200)]
Merge pull request #3116 from alexrp/master

Some improvements to the profiler makefile