mono.git
8 years ago[jit] Disable the support for -O=shared, use it only for icall wrappers.
Zoltan Varga [Mon, 4 Jan 2016 20:58:47 +0000 (15:58 -0500)]
[jit] Disable the support for -O=shared, use it only for icall wrappers.

8 years ago[llvmonly] Introduce a MonoFtnDesc structure to represent an address+argument pair...
Zoltan Varga [Mon, 4 Jan 2016 19:38:37 +0000 (14:38 -0500)]
[llvmonly] Introduce a MonoFtnDesc structure to represent an address+argument pair, use this to explicitly mark functions returning function descriptors.

8 years ago[llvmonly] Remove some jit icalls which are no longer used.
Zoltan Varga [Mon, 4 Jan 2016 19:08:06 +0000 (14:08 -0500)]
[llvmonly] Remove some jit icalls which are no longer used.

8 years ago[llvmonly] Add an optimized implementation for generic virtual calls on interfaces.
Zoltan Varga [Mon, 4 Jan 2016 19:01:44 +0000 (14:01 -0500)]
[llvmonly] Add an optimized implementation for generic virtual calls on interfaces.

8 years ago[llvmonly] Clean up the optimized virtual call code a bit.
Zoltan Varga [Mon, 4 Jan 2016 18:09:05 +0000 (13:09 -0500)]
[llvmonly] Clean up the optimized virtual call code a bit.

8 years ago[System] Fixes Process::WaitForExit to honour EnableRaisingEvents setting
Marek Safar [Mon, 4 Jan 2016 17:44:17 +0000 (18:44 +0100)]
[System] Fixes Process::WaitForExit to honour EnableRaisingEvents setting

8 years ago[llvmonly] Add an optimized implementation for generic virtual calls.
Zoltan Varga [Mon, 4 Jan 2016 16:40:10 +0000 (11:40 -0500)]
[llvmonly] Add an optimized implementation for generic virtual calls.

8 years ago[aot] Add another special case for wrappers+gshared methods.
Zoltan Varga [Mon, 4 Jan 2016 15:25:23 +0000 (10:25 -0500)]
[aot] Add another special case for wrappers+gshared methods.

8 years agoMerge pull request #2393 from akoeplinger/servicemodel-collection-modified
Alexander Köplinger [Mon, 4 Jan 2016 15:11:04 +0000 (16:11 +0100)]
Merge pull request #2393 from akoeplinger/servicemodel-collection-modified

[System.ServiceModel] Fix "collection was modified" exception in tests

8 years agoBumpr reference source for mobile profile fixes
Marek Safar [Mon, 4 Jan 2016 14:01:26 +0000 (15:01 +0100)]
Bumpr reference source for mobile profile fixes

8 years ago[mcs] Fixes typo
Marek Safar [Mon, 4 Jan 2016 13:23:18 +0000 (14:23 +0100)]
[mcs] Fixes typo

8 years agoMerge pull request #2395 from akoeplinger/rijndael
Marek Safar [Mon, 4 Jan 2016 08:31:05 +0000 (09:31 +0100)]
Merge pull request #2395 from akoeplinger/rijndael

[corlib] Remove RijndaelManaged test that makes no sense with referencesource impl

8 years ago[corlib] Remove RijndaelManaged test that makes no sense with referencesource impl
Alexander Köplinger [Sun, 3 Jan 2016 16:11:46 +0000 (17:11 +0100)]
[corlib] Remove RijndaelManaged test that makes no sense with referencesource impl

The CreateEncryptor_KeyNull and CreateDecryptor_KeyNull tests tried to verify the previous Mono
behavior of throwing a CryptographicException when a null key is passed to the methods [1].

However, with the move to referencesource this no longer happens since when a null key is passed
a random one is generated instead [2].

The existing tests passed out of pure luck because a different CryptographicException is thrown later on:

```
System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed.
  at System.Security.Cryptography.RijndaelManagedTransform.DecryptData (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, System.Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) [0x007b5] in /Users/alexander/dev/mono/external/referencesource/mscorlib/system/security/cryptography/rijndaelmanagedtransform.cs:751
  at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) [0x000bb] in /Users/alexander/dev/mono/external/referencesource/mscorlib/system/security/cryptography/rijndaelmanagedtransform.cs:336
  at MonoTests.System.Security.Cryptography.RijndaelManagedTest.CreateDecryptor_KeyNull () [0x00066] in /Users/alexander/dev/mono/mcs/class/corlib/Test/System.Security.Cryptography/RijndaelManagedTest.cs:233
```

Unfortunately, sometimes it happens with the random key that this exception *doesn't* get thrown as the padding is valid, which makes the test randomly fail on Jenkins.
Deleting those tests is the simplest fix.

[1] https://github.com/mono/mono/blob/mono-4.0.0-branch/mcs/class/corlib/System.Security.Cryptography/RijndaelManagedTransform.cs#L107
[2] https://github.com/mono/referencesource/blob/33edf60ec4d35aba11850872777c8b3a484ca484/mscorlib/system/security/cryptography/rijndaelmanaged.cs#L66

8 years ago[System.ServiceModel] Fix "collection was modified" exception in tests
Alexander Köplinger [Sun, 3 Jan 2016 16:06:24 +0000 (17:06 +0100)]
[System.ServiceModel] Fix "collection was modified" exception in tests

We sometimes see the following exception in the ServiceModel tests:

```
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
  at System.ThrowHelper.ThrowInvalidOperationException (ExceptionResource resource) [0x00000] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/external/referencesource/mscorlib/system/throwhelper.cs:99
  at System.Collections.Generic.List`1+Enumerator[T].MoveNextRare () [0x00016] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/external/referencesource/mscorlib/system/collections/generic/list.cs:1180
  at System.Collections.Generic.List`1+Enumerator[T].MoveNext () [0x00050] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/external/referencesource/mscorlib/system/collections/generic/list.cs:1174
  at System.Linq.Enumerable.FirstOrDefault[TSource] (IEnumerable`1 source, System.Func`2 predicate) [0x00041] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/external/referencesource/System.Core/System/Linq/Enumerable.cs:960
  at System.ServiceModel.Channels.Http.HttpListenerManager.TryDequeueRequest (System.ServiceModel.Dispatcher.ChannelDispatcher channel, TimeSpan timeout, System.ServiceModel.Channels.Http.HttpContextInfo& context) [0x00016] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpListenerManager.cs:93
  at System.ServiceModel.Channels.Http.HttpListenerManager.TryDequeueRequest (System.ServiceModel.Dispatcher.ChannelDispatcher channel, TimeSpan timeout, System.ServiceModel.Channels.Http.HttpContextInfo& context) [0x000ab] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpListenerManager.cs:104
  at System.ServiceModel.Channels.Http.HttpReplyChannel.TryReceiveRequest (TimeSpan timeout, System.ServiceModel.Channels.RequestContext& context) [0x00003] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpReplyChannel.cs:154
  at System.ServiceModel.Channels.ReplyChannelBase+<BeginTryReceiveRequest>c__AnonStorey0.<>m__0 (TimeSpan tout, System.ServiceModel.Channels.RequestContext& ctx) [0x00056] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/System.ServiceModel/System.ServiceModel.Channels/ReplyChannelBase.cs:129
```

I managed to repro this consistently on the debian-7-x64-1 Jenkins machine by running the test in a loop with the following code for about 15mins:
    while [ $? -eq 0 ]; do make check FIXTURE=System.ServiceModel.Dispatcher; done

The problem happens when RegisterListenerCommon/UnregisterListenerCommon is invoked through HttpChannelListener.OnOpen/OnAbort/OnClose which modifies the 'Entries' collection on another thread.

The fix is to add locking around the collection accesses.

8 years ago[mini] Fixed non-JIT runtime support in generic sharing.
Joao Matos [Sun, 3 Jan 2016 14:55:13 +0000 (14:55 +0000)]
[mini] Fixed non-JIT runtime support in generic sharing.

8 years ago[corlib] Fixed the mobile build in System.Security.Cryptography.X509Certificates.
Joao Matos [Sun, 3 Jan 2016 00:13:31 +0000 (00:13 +0000)]
[corlib] Fixed the mobile build in System.Security.Cryptography.X509Certificates.

8 years agoAdd an optimized implementation for interface calls.
Zoltan Varga [Sun, 3 Jan 2016 10:43:07 +0000 (05:43 -0500)]
Add an optimized implementation for interface calls.

This works by using the imt entries in the vtable to store 'imt thunks', which in llvm-only mode, are C functions
which receive an info structure and the imt method and return the real method which needs to be called. Thus
interface calls are compiled into two calls: one to the imt thunk, and one to the method address returned by
the thunk.

8 years ago[runtime] Pass the vtable to the vtable/imt trampoline creation functions so they...
Zoltan Varga [Sun, 3 Jan 2016 10:17:54 +0000 (05:17 -0500)]
[runtime] Pass the vtable to the vtable/imt trampoline creation functions so they can return a vtable specific value. Not yet used.

8 years agoMerge pull request #2380 from alexanderkyte/pdb_fix_local_vars
David Karlaš [Sun, 3 Jan 2016 06:18:04 +0000 (07:18 +0100)]
Merge pull request #2380 from alexanderkyte/pdb_fix_local_vars

[runtime] Fixed off-by-one bug in local variable counting for ppdb files.

8 years ago[llvmonly] Optimize virtual calls by storing a function descriptor in vtable slots...
Zoltan Varga [Sun, 3 Jan 2016 05:49:38 +0000 (00:49 -0500)]
[llvmonly] Optimize virtual calls by storing a function descriptor in vtable slots, and using an icall to initialize it if needed.

8 years ago[runtime] Avoid a crash if a generic type definition is passed to RuntimeHelpers...
Zoltan Varga [Sat, 2 Jan 2016 04:28:23 +0000 (23:28 -0500)]
[runtime] Avoid a crash if a generic type definition is passed to RuntimeHelpers.RunClassConstructor (). Fixes #37313.

8 years ago[sgen] Avoid asserting if the tls offsets used by the managed allocators cannot be...
Zoltan Varga [Sat, 2 Jan 2016 04:03:48 +0000 (23:03 -0500)]
[sgen] Avoid asserting if the tls offsets used by the managed allocators cannot be determined. This can happen when using shared libraries on linux. Fixes #30594.

8 years ago[llvm] Disable support for nested clauses, it still doesn't work. Fixes #37273.
Zoltan Varga [Sat, 2 Jan 2016 03:04:53 +0000 (22:04 -0500)]
[llvm] Disable support for nested clauses, it still doesn't work. Fixes #37273.

8 years ago[llvm] Add missing OP_LMUL_IMM opcode.
Zoltan Varga [Sat, 2 Jan 2016 01:50:51 +0000 (20:50 -0500)]
[llvm] Add missing OP_LMUL_IMM opcode.

8 years ago[llvm] Add support for passing dummy arguments before arm64 hfa structures so they...
Zoltan Varga [Sat, 2 Jan 2016 01:13:15 +0000 (20:13 -0500)]
[llvm] Add support for passing dummy arguments before arm64 hfa structures so they get passed completely on the stack, there was a mismatch between the cconv used by the JIT and LLVM, leading to problems if the caller was llvm and the callee was not, and vice versa. Part of the fix for #37236.

8 years agoMerge pull request #2392 from akoeplinger/web-wizard-sharing-violation
Alexander Köplinger [Fri, 1 Jan 2016 16:25:47 +0000 (17:25 +0100)]
Merge pull request #2392 from akoeplinger/web-wizard-sharing-violation

[System.Web] Fix WizardStepBase_Theme sharing violation error during test

8 years ago[System.Web] Fix WizardStepBase_Theme sharing violation error during test
Alexander Köplinger [Fri, 1 Jan 2016 14:02:43 +0000 (15:02 +0100)]
[System.Web] Fix WizardStepBase_Theme sharing violation error during test

We were sometimes seeing the following test failure on Jenkins:

```
Test Case Failures:
1) MonoTests.System.Web.UI.WebControls.WizardStepBaseTest.WizardStepBase_Theme : System.IO.IOException : Sharing violation on path /var/folders/wm/jvn0yl0d39q9sm9glcrhdrmw0000gn/T/tmp672264ba.tmp/App_Themes/Theme1/WizardTest.skin
at System.IO.File.SetLastWriteTime (System.String path, DateTime lastWriteTime) [0x00029] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/corlib/System.IO/File.cs:474
at MonoTests.SystemWeb.Framework.WebTest.CopyBinary (System.Byte[] sourceArray, System.String targetUrl) [0x00098] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTest.cs:364
at MonoTests.SystemWeb.Framework.WebTest.CopyResource (System.Type type, System.String resourceName, System.String targetUrl) [0x00059] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTest.cs:307
at MonoTests.System.Web.UI.WebControls.WizardStepBaseTest.WizardStepBase_Theme () [0x00000] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/System.Web/Test/System.Web.UI.WebControls/WizardStepBaseTest.cs:311
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, 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:295
```

This happens because System.Web.UI.WebControls/ThemeTest.cs copies the WizardTest.skin file to the same App_Themes/Theme1 path in its setup method.
Since we're not interested in any particular theme in WizardStepBase_Theme we fix this by just using a different theme name (WizardStepBase instead of Theme1) so the two test fixtures don't clash.

8 years agoMerge pull request #2391 from Utsav2/Utsav2-patch-1
Alexander Köplinger [Fri, 1 Jan 2016 11:22:39 +0000 (12:22 +0100)]
Merge pull request #2391 from Utsav2/Utsav2-patch-1

Fix typo in AL man page

8 years agoFix typo
Utsav Shah [Fri, 1 Jan 2016 03:56:00 +0000 (22:56 -0500)]
Fix typo

8 years ago[man/mono.1] Add details on --aot=data-outfile option
Miguel de Icaza [Thu, 31 Dec 2015 04:13:02 +0000 (23:13 -0500)]
[man/mono.1] Add details on --aot=data-outfile option

8 years agoMerge pull request #2386 from BrzVlad/fix-jit
Vlad Brezae [Tue, 29 Dec 2015 22:23:31 +0000 (00:23 +0200)]
Merge pull request #2386 from BrzVlad/fix-jit

[jit] Some jit fixes

8 years ago[arm] Fix codegen for multiply instructions
Vlad Brezae [Sun, 13 Dec 2015 22:13:00 +0000 (00:13 +0200)]
[arm] Fix codegen for multiply instructions

The code worked because we never used mul with CPSR update and the code for ARMOP_MUL happens to be 0.

8 years ago[jit] Fix specs for some conv instructions
Vlad Brezae [Fri, 11 Dec 2015 07:17:24 +0000 (09:17 +0200)]
[jit] Fix specs for some conv instructions

8 years ago[jit] Fix signed division by power of 2 optimization.
Vlad Brezae [Tue, 17 Nov 2015 09:44:03 +0000 (11:44 +0200)]
[jit] Fix signed division by power of 2 optimization.

Add more division tests.

8 years agoMerge pull request #2383 from akoeplinger/authenticated-stream-referencesource
Marek Safar [Thu, 24 Dec 2015 08:04:38 +0000 (09:04 +0100)]
Merge pull request #2383 from akoeplinger/authenticated-stream-referencesource

[System] Port AuthenticatedStream from referencesources

8 years ago[runtime] Move the HAVE_MOVING_COLLECTOR define to config.h instead of the command...
Zoltan Varga [Thu, 24 Dec 2015 05:40:46 +0000 (00:40 -0500)]
[runtime] Move the HAVE_MOVING_COLLECTOR define to config.h instead of the command line.

8 years ago[runtime] Make libmono point to libmonosgen instead of libmonoboehm.
Zoltan Varga [Thu, 24 Dec 2015 04:45:28 +0000 (23:45 -0500)]
[runtime] Make libmono point to libmonosgen instead of libmonoboehm.

8 years ago[runtime] Make the code in mini-llvm.c more C++ compatible.
Zoltan Varga [Thu, 24 Dec 2015 02:16:03 +0000 (21:16 -0500)]
[runtime] Make the code in mini-llvm.c more C++ compatible.

8 years ago[System] Port AuthenticatedStream from referencesources
Alexander Köplinger [Thu, 24 Dec 2015 01:01:51 +0000 (02:01 +0100)]
[System] Port AuthenticatedStream from referencesources

8 years agoMerge pull request #2381 from alexanderkyte/pdb_method_assert
Zoltan Varga [Thu, 24 Dec 2015 00:22:11 +0000 (19:22 -0500)]
Merge pull request #2381 from alexanderkyte/pdb_method_assert

[runtime] Make the pdb lookup function return NULL for runtime-generated methods rather than asserting.

8 years ago[runtime] Fixed off-by-one bug in local variable counting for ppdb files.
Alexander Kyte [Wed, 23 Dec 2015 22:30:43 +0000 (17:30 -0500)]
[runtime] Fixed off-by-one bug in local variable counting for ppdb files.

8 years ago[runtime] Make the pdb lookup function return NULL for runtime-generated methods...
Alexander Kyte [Thu, 24 Dec 2015 00:15:38 +0000 (19:15 -0500)]
[runtime] Make the pdb lookup function return NULL for runtime-generated methods rather than asserting.

8 years agoMerge pull request #2379 from xmcclure/babysitter-contd
monojenkins [Wed, 23 Dec 2015 19:25:16 +0000 (19:25 +0000)]
Merge pull request #2379 from xmcclure/babysitter-contd

scripts/babysitter stdout logging improvements

Always print stdout log statements, even when all babysitter features
are turned off, even when the test suite does not support the protocol.

8 years agoscripts/babysitter stdout logging improvements
Andi McClure [Wed, 23 Dec 2015 17:49:53 +0000 (12:49 -0500)]
scripts/babysitter stdout logging improvements

Always print stdout log statements, even when all babysitter features
are turned off, even when the test suite does not support the protocol.

8 years ago[mkbundle] Add support for --quiet.
Rolf Bjarne Kvinge [Fri, 13 Nov 2015 09:48:58 +0000 (10:48 +0100)]
[mkbundle] Add support for --quiet.

8 years ago[mkbundle] Fix compiler warnings.
Rolf Bjarne Kvinge [Thu, 10 Dec 2015 09:44:55 +0000 (10:44 +0100)]
[mkbundle] Fix compiler warnings.

8 years ago[llvm] Fix LLVM support after e7166e4f9cee4eb896f1a2ff0290e0b9d8fedacb.
Zoltan Varga [Wed, 23 Dec 2015 06:09:02 +0000 (01:09 -0500)]
[llvm] Fix LLVM support after e7166e4f9cee4eb896f1a2ff0290e0b9d8fedacb.

8 years agoucm2cp: Remove the deprecated '#if NET_2_0' fence
Miguel de Icaza [Wed, 23 Dec 2015 04:28:13 +0000 (23:28 -0500)]
ucm2cp: Remove the deprecated '#if NET_2_0' fence

8 years ago[System.Xml.Linq] Reenable a test that was commented out
Alexander Köplinger [Wed, 23 Dec 2015 01:04:06 +0000 (02:04 +0100)]
[System.Xml.Linq] Reenable a test that was commented out

It works fine now, the underlying mcs bug was fixed long ago.

8 years agoMerge pull request #2366 from xmcclure/scripts-babysitter
Alexander Köplinger [Tue, 22 Dec 2015 23:17:42 +0000 (00:17 +0100)]
Merge pull request #2366 from xmcclure/scripts-babysitter

Adds babysitter script for PR tests

8 years agoSupport process-group killing in babysitter script
Andi McClure [Tue, 22 Dec 2015 22:38:16 +0000 (17:38 -0500)]
Support process-group killing in babysitter script

The babysitter script was failing to act as a GNU timeout replacement
because it was delivering signals to the spawned process only, whereas
GNU timeout would create a process group. This lead to a problem where
timeout kills by the babysitter would leave children of the spawned
process still running. To fix this, the babysitter script now follows
the exact steps that GNU timeout does (or as close as is possible in
Python). An attempt at a Windows process-group implementation is also
included, but I have not tested it.

Also changed the 'retry_support' key to 'babysitter_protocol' in the
JSON logs, because it was pointed out the old key was misleading (it
is true even when retries are deactivated).

8 years agoHave scripts/babysitter use MONO_BABYSITTER_LOG_FILE configuration
Andi McClure [Tue, 22 Dec 2015 20:04:57 +0000 (15:04 -0500)]
Have scripts/babysitter use MONO_BABYSITTER_LOG_FILE configuration

Instead of configuring logs with WORKSPACE dir

8 years agoMore peer review changes on scripts/babysitter
Andi McClure [Tue, 22 Dec 2015 19:47:28 +0000 (14:47 -0500)]
More peer review changes on scripts/babysitter

- Using “iteration” for # of retries instead of ambiguous “passes”
- More clearly document what environment keys are for in-script
- Remove CRASH_RESUME key, make setting always true
- Print explicit human-readable messages for stdout log

8 years agoMerge pull request #2375 from akoeplinger/servicemodel-remove-portfinders
Alexander Köplinger [Tue, 22 Dec 2015 17:42:35 +0000 (18:42 +0100)]
Merge pull request #2375 from akoeplinger/servicemodel-remove-portfinders

[ServiceModel] Remove custom free port finder code

8 years agoMerge pull request #2376 from rolfbjarne/bitcode-without-undefined-references
Rolf Bjarne Kvinge [Tue, 22 Dec 2015 16:38:09 +0000 (17:38 +0100)]
Merge pull request #2376 from rolfbjarne/bitcode-without-undefined-references

Do not allow undefined references if bitcode is enabled.

8 years agoMerge pull request #2034 from alexrp/ctx-cleanup
Rodrigo Kumpera [Tue, 22 Dec 2015 16:05:30 +0000 (11:05 -0500)]
Merge pull request #2034 from alexrp/ctx-cleanup

[runtime] Actually clean up context-static data segments.

8 years agoMerge pull request #1896 from meum/patch-1
Miguel de Icaza [Tue, 22 Dec 2015 15:20:19 +0000 (10:20 -0500)]
Merge pull request #1896 from meum/patch-1

Fix dot stuffing in SmtpClient

8 years agoMerge pull request #2374 from lambdageek/dev/bug-37035
Aleksey Kliger (λgeek) [Tue, 22 Dec 2015 12:33:03 +0000 (07:33 -0500)]
Merge pull request #2374 from lambdageek/dev/bug-37035

[WCF] ServiceHost should look for inherited ServiceBehaviorAttribute

8 years agoDo not allow undefined references if bitcode is enabled.
Rolf Bjarne Kvinge [Tue, 22 Dec 2015 11:52:37 +0000 (12:52 +0100)]
Do not allow undefined references if bitcode is enabled.

The linker does not allow the '-undefined' flag when bitcode
is enabled, so we can't pass it to the linker at all.

8 years ago[ServiceModel] Remove custom free port finder code
Alexander Köplinger [Tue, 22 Dec 2015 00:59:01 +0000 (01:59 +0100)]
[ServiceModel] Remove custom free port finder code

We have a common one in NetworkHelpers now.

8 years ago[WCF] ServiceHost should look for inherited ServiceBehaviorAttribute
Aleksey Kliger [Mon, 21 Dec 2015 20:51:57 +0000 (15:51 -0500)]
[WCF] ServiceHost should look for inherited ServiceBehaviorAttribute

Fixes #37035

8 years ago[aot] Add hooks which can be used by embedders to load the aot data for aot images...
Zoltan Varga [Mon, 21 Dec 2015 22:06:53 +0000 (17:06 -0500)]
[aot] Add hooks which can be used by embedders to load the aot data for aot images compiled with --aot=data-outfile=...

8 years agoAdd documentation for MONO_ENABLE_COOP
Miguel de Icaza [Mon, 21 Dec 2015 19:16:45 +0000 (14:16 -0500)]
Add documentation for MONO_ENABLE_COOP

8 years agoMerge pull request #2373 from akoeplinger/servicemodel-tcpreplychannel-race
João Matos [Mon, 21 Dec 2015 17:44:41 +0000 (17:44 +0000)]
Merge pull request #2373 from akoeplinger/servicemodel-tcpreplychannel-race

[ServiceModel] Make TcpReplyChannel.OnClose thread-safe

8 years agoMerge pull request #2372 from abock/dcs-iserializable-bxc37171
Marek Safar [Mon, 21 Dec 2015 17:33:47 +0000 (18:33 +0100)]
Merge pull request #2372 from abock/dcs-iserializable-bxc37171

XmlObjectSerialier: fix ISerializable (bxc#37171)

8 years agoXmlObjectSerialier: fix ISerializable (bxc#37171)
Aaron Bockover [Sun, 20 Dec 2015 16:03:38 +0000 (11:03 -0500)]
XmlObjectSerialier: fix ISerializable (bxc#37171)

The shim/bridge between Mono and the RS implementation of
XmlObjectSerializer, DataContractSerializer, etc. did not properly
invoke the constructor required by ISerializable, as it completely
omitted passing the populated SerializationInfo object.

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

8 years ago[ServiceModel] Make TcpReplyChannel.OnClose thread-safe
Alexander Köplinger [Mon, 21 Dec 2015 13:33:14 +0000 (14:33 +0100)]
[ServiceModel] Make TcpReplyChannel.OnClose thread-safe

We were seeing the following unhandled exception on Jenkins:

````\rUnhandled exceptions:
1) MonoTests.System.ServiceModel.OperationContextTest.Current : System.NullReferenceException: Object reference not set to an instance of an object
  at System.ServiceModel.Channels.NetTcp.TcpReplyChannel.OnClose (TimeSpan timeout) [0x00000] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/mcs/class/System.ServiceModel/System.ServiceModel.Channels.NetTcp/TcpReplyChannel.cs:141
  at System.ServiceModel.Channels.CommunicationObject.Close (TimeSpan timeout) [0x0001c] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/mcs/class/System.ServiceModel/System.ServiceModel.Channels/CommunicationObject.cs:140
  at System.ServiceModel.Channels.CommunicationObject.Close () [0x00000] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/mcs/class/System.ServiceModel/System.ServiceModel.Channels/CommunicationObject.cs:131
  at System.ServiceModel.Dispatcher.ListenerLoopManager.TryReceiveRequestDone (IAsyncResult result) [0x00027] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs:583
```

This happens because multiple threads can call OnClose() and so `client` can be null.

Fixed this by taking code from HttpReplyChannel.OnClose which handled this already and also fixed the race condition there (the checks need to happen under a lock).

8 years agoMerge pull request #2370 from DavidKarlas/replaceQuote
Marek Safar [Mon, 21 Dec 2015 09:00:20 +0000 (10:00 +0100)]
Merge pull request #2370 from DavidKarlas/replaceQuote

[XBuild] Fixed method invocation with string argument containing ",` or '

8 years agoAdd preliminary support for storing the AOT metadata outside the AOT image. This...
Zoltan Varga [Mon, 21 Dec 2015 03:08:26 +0000 (22:08 -0500)]
Add preliminary support for storing the AOT metadata outside the AOT image. This can save about 10-20% from the executable size when statically linking AOT images. Needs callbacks to allow embedding apps to load the aot data.

8 years agoMerge pull request #2371 from akoeplinger/symbolicate-quoted
monojenkins [Sun, 20 Dec 2015 16:55:59 +0000 (16:55 +0000)]
Merge pull request #2371 from akoeplinger/symbolicate-quoted

[symbolicate] Make sure MONO_PATH is quoted

Without it we saw a " ./../../class/lib/net_4_x: Is a directory" error in the cygwin build.

@monojenkins merge

8 years ago[symbolicate] Make sure MONO_PATH is quoted
Alexander Köplinger [Sun, 20 Dec 2015 15:20:31 +0000 (16:20 +0100)]
[symbolicate] Make sure MONO_PATH is quoted

Without it we saw a " ./../../class/lib/net_4_x: Is a directory" error in the cygwin build.

8 years ago[XBuild] Fixed method invocation with string argument containing ",` or '
David Karlaš [Sun, 20 Dec 2015 09:41:01 +0000 (10:41 +0100)]
[XBuild] Fixed method invocation with string argument containing ",` or '
Before this commit string value starting or ending with this char was malformed because Trim removed also part of string value
Also fixed recent regression from 42c0a94445 which failed to split arguments if doubleQuote was inside singleQuoute

8 years ago[llvmonly] Avoid emitting runtime invoke wrappers for the signatures which the gshare...
Zoltan Varga [Sat, 19 Dec 2015 23:43:09 +0000 (18:43 -0500)]
[llvmonly] Avoid emitting runtime invoke wrappers for the signatures which the gsharedvt based invoke wrappers can handle.

8 years ago[llvmonly] Share more gsharedvt wrappers.
Zoltan Varga [Sat, 19 Dec 2015 23:29:41 +0000 (18:29 -0500)]
[llvmonly] Share more gsharedvt wrappers.

8 years ago[llvmonly] Avoid generating gsharedvt in wrappers for method signatures, they are...
Zoltan Varga [Sat, 19 Dec 2015 23:06:20 +0000 (18:06 -0500)]
[llvmonly] Avoid generating gsharedvt in wrappers for method signatures, they are not needed.

8 years ago[csproj] Refreshed order.xml and csproj files
Alexander Köplinger [Sat, 19 Dec 2015 16:26:30 +0000 (17:26 +0100)]
[csproj] Refreshed order.xml and csproj files

8 years agoUpdate the System.Diagnostics.Tracing namespace to better match the .NET API
Frederik Carlier [Sat, 12 Dec 2015 23:44:59 +0000 (00:44 +0100)]
Update the System.Diagnostics.Tracing namespace to better match the .NET API

8 years agoMerge pull request #2364 from lambdageek/dev/checked-critical
Aleksey Kliger (λgeek) [Sat, 19 Dec 2015 16:57:01 +0000 (11:57 -0500)]
Merge pull request #2364 from lambdageek/dev/checked-critical

[coop] checked build GC critical regions

8 years agoMerge pull request #2367 from BillSeurer/master
João Matos [Sat, 19 Dec 2015 16:16:49 +0000 (16:16 +0000)]
Merge pull request #2367 from BillSeurer/master

[powerpc] New macros and utility functions for v2 elf ABI function calls

8 years agoMerge pull request #2369 from akoeplinger/msvc-win64-crash
João Matos [Sat, 19 Dec 2015 16:15:23 +0000 (16:15 +0000)]
Merge pull request #2369 from akoeplinger/msvc-win64-crash

[sgen] Disable freeing of OS memory on 64bit Windows build too

8 years agoMerge pull request #2368 from DavidKarlas/portablePdbTargetsSupport
Alexander Köplinger [Sat, 19 Dec 2015 14:31:28 +0000 (15:31 +0100)]
Merge pull request #2368 from DavidKarlas/portablePdbTargetsSupport

[XBuild] Add support for copying/cleaning portable .pdb files generated by Roslyn compiler

8 years ago[sgen] Disable freeing of OS memory on 64bit Windows build too
Alexander Köplinger [Sat, 19 Dec 2015 14:17:02 +0000 (15:17 +0100)]
[sgen] Disable freeing of OS memory on 64bit Windows build too

This was applied for the x86 build in 398c7fc21f849798e18770d4ec85d7acb8b66333.
Moved the check so that it applies to the x64 MSVC build as well.

We were hitting the same assert in mono_vfree() on Jenkins and this fixes it.

8 years ago[XBuild] Add support for copying/cleaning portable .pdb files generated by Roslyn...
David Karlaš [Sat, 19 Dec 2015 11:29:50 +0000 (12:29 +0100)]
[XBuild] Add support for copying/cleaning portable .pdb files generated by Roslyn compiler

8 years ago[llvmonly] Avoid adding some gsharedvt wrappers which are already added.
Zoltan Varga [Sat, 19 Dec 2015 06:39:03 +0000 (01:39 -0500)]
[llvmonly] Avoid adding some gsharedvt wrappers which are already added.

8 years ago[jit] Only emit the gsharedvt runtime invoke wrappers in llvm-only mode.
Zoltan Varga [Sat, 19 Dec 2015 06:19:30 +0000 (01:19 -0500)]
[jit] Only emit the gsharedvt runtime invoke wrappers in llvm-only mode.

8 years ago[runtime] Factor out a part of mono_jit_runtime_invoke () into a separate function.
Zoltan Varga [Sat, 19 Dec 2015 06:14:52 +0000 (01:14 -0500)]
[runtime] Factor out a part of mono_jit_runtime_invoke () into a separate function.

8 years ago[runtime] Disable the check-seq-points tests on arm, it cannot be made to reliably...
Zoltan Varga [Sat, 19 Dec 2015 03:38:36 +0000 (03:38 +0000)]
[runtime] Disable the check-seq-points tests on arm, it cannot be made to reliably work without major changes since arm cannot encode all 32 bit immediates inside instructions, which means that opcodes which call is_rotated_imm8 () would need special handling whe the 'single-imm-size' option is used.

8 years ago[jit] Enable gsharedvt in llvmonly mode by default if ENABLE_GSHAREDVT is defined.
Zoltan Varga [Fri, 18 Dec 2015 22:05:54 +0000 (17:05 -0500)]
[jit] Enable gsharedvt in llvmonly mode by default if ENABLE_GSHAREDVT is defined.

8 years ago[coop] Checked build GC critical regions.
Aleksey Kliger [Thu, 17 Dec 2015 20:03:22 +0000 (15:03 -0500)]
[coop] Checked build GC critical regions.

For local handles in coop suspend configuartions we need the idea of a
"critical region": a situation when transitioning from GC
Unsafe (running) to GC Safe (blocking) mode constitutes a bug. In
checked builds, we'd like to assert when that happens.

This PR adds MONO_PREPARE_GC_CRITICAL_REGION,
MONO_FINISH_GC_CRITICAL_REGION and MONO_REQ_GC_NOT_CRITICAL.

In regular build, these are nops. In checked build, they use a new
thread-local flag to prevent transitions from running to blocking.

8 years ago[mcs] Propagate null operator flag during standalone to extension methods promotion...
Marek Safar [Fri, 18 Dec 2015 20:12:34 +0000 (21:12 +0100)]
[mcs] Propagate null operator flag during standalone to extension methods promotion. Fixes #37080

8 years agoPeer feedback changes for babysitter script PR
Andi McClure [Fri, 18 Dec 2015 20:04:19 +0000 (15:04 -0500)]
Peer feedback changes for babysitter script PR

8 years agoMerge pull request #2314 from lambdageek/dev/local-handles
Aleksey Kliger (λgeek) [Fri, 18 Dec 2015 19:55:12 +0000 (14:55 -0500)]
Merge pull request #2314 from lambdageek/dev/local-handles

Just the low-level bits of the handles API

8 years ago[powerpc] New macros and utility functions for v2 Elf ABI function calls.
Bill Seurer [Fri, 18 Dec 2015 19:23:40 +0000 (13:23 -0600)]
[powerpc] New macros and utility functions for v2 Elf ABI function calls.

8 years agoAdds babysitter script for PR tests
Andi McClure [Fri, 18 Dec 2015 18:15:18 +0000 (13:15 -0500)]
Adds babysitter script for PR tests

I see two problems with our current automated PR tests:
- Many false negatives— PR tests often fail due to recurring failures
  unrelated to the PR
- Information about what failed is awkward to retrieve, scattered in
  multiple places

This commit adds a Python script, `scripts/babysitter`. Currently our
Jenkins test suites are each run wrapped with the `timeout` command.
The babysitter acts as a drop-in replacement for GNU timeout but adds
the following features:
- Logs machine readable output about each test suite (as
  line-delimited json)
- If the test suite uses NUnit, can detect if a test case failed or
  crashed (terminated mono in mid-test), and retry unsuccessful tests
  (up to a limit).

The reasoning here is that tests which fail inconsistently are
currently most likely due to one of our outstanding recurring failures
rather than the change made in the PR. Therefore, if a failing test
succeeds on retry, the PR itself is probably valid (although the
failure should be logged and looked at).

In addition to the script itself, changes to NUnit were required in
order to support the retry feature and allow fine-grained logging for
NUnit suites.

Major TODOs:
- Add retry support for our non-NUnit-based test suites
- Save the XML files NUnit produces (since reruns stomp XMLs from
  previous runs)
- Add some kind of sensible feature for dealing with timeouts

8 years ago[icall/GetMachineName] Use sysconf if available to capture the whole host name, fall...
Miguel de Icaza [Fri, 18 Dec 2015 18:10:37 +0000 (13:10 -0500)]
[icall/GetMachineName] Use sysconf if available to capture the whole host name, fall back to a fixed size buffer otherwise

8 years ago[coop] Cleanup
Ludovic Henry [Wed, 2 Dec 2015 00:03:28 +0000 (19:03 -0500)]
[coop] Cleanup

8 years ago[coop] Introduce new runtime handle API
Ludovic Henry [Fri, 13 Nov 2015 16:01:41 +0000 (16:01 +0000)]
[coop] Introduce new runtime handle API

8 years ago[runtime] Remove some debug printfs.
Zoltan Varga [Fri, 18 Dec 2015 06:38:23 +0000 (01:38 -0500)]
[runtime] Remove some debug printfs.

8 years agoAdd an alternative implementation for runtime invokes in llvmonly mode
Zoltan Varga [Fri, 18 Dec 2015 05:41:54 +0000 (00:41 -0500)]
Add an alternative implementation for runtime invokes in llvmonly mode
which uses gsharedvt out wrappers. We invoke the wrappers, and the
wrappers invoke the methods themselves. The advantage of this approach is
that the set of possible signatures for gsharedvt out wrappers is small,
so the set of runtime invoke wrappers needed to invoke them is also small,
thus only a small number of them need to be generated.
Not yet enabled.

8 years ago[runtime] Add a mono_marshal_get_runtime_invoke_for_sig () helper function to create...
Zoltan Varga [Fri, 18 Dec 2015 05:36:12 +0000 (00:36 -0500)]
[runtime] Add a mono_marshal_get_runtime_invoke_for_sig () helper function to create a runtime invoke wrapper for a signature.