mono.git
8 years agoMerge pull request #2139 from akoeplinger/symbolicate-test-fix
Marcos Henrich [Sat, 17 Oct 2015 15:57:10 +0000 (16:57 +0100)]
Merge pull request #2139 from akoeplinger/symbolicate-test-fix

[mono-symbolicate] Skip tests if AOT isn't supported by the current arch

8 years agoFixes build
Marek Safar [Sat, 17 Oct 2015 07:16:24 +0000 (09:16 +0200)]
Fixes build

8 years agoMerge pull request #2144 from dlech/patch-1
Zoltan Varga [Sat, 17 Oct 2015 04:29:03 +0000 (00:29 -0400)]
Merge pull request #2144 from dlech/patch-1

Fix filename in header

8 years agoFix filename in header
David Lechner [Sat, 17 Oct 2015 02:09:36 +0000 (21:09 -0500)]
Fix filename in header

8 years ago[amd64] Allow returning of structs in register pairs.
Zoltan Varga [Sat, 17 Oct 2015 00:05:05 +0000 (20:05 -0400)]
[amd64] Allow returning of structs in register pairs.

8 years ago[llvm] Fix returning of values in a register pair.
Zoltan Varga [Sat, 17 Oct 2015 00:04:21 +0000 (20:04 -0400)]
[llvm] Fix returning of values in a register pair.

8 years ago[llvm] Fix JIT support.
Zoltan Varga [Fri, 16 Oct 2015 19:47:54 +0000 (15:47 -0400)]
[llvm] Fix JIT support.

8 years ago[runtime] Disable the emission of stubs debug info on apple, its no longer supported...
Zoltan Varga [Fri, 16 Oct 2015 19:47:38 +0000 (15:47 -0400)]
[runtime] Disable the emission of stubs debug info on apple, its no longer supported by clang.

8 years agoMerge pull request #2143 from akoeplinger/refactor-mono-security-providers
Alexander Köplinger [Fri, 16 Oct 2015 22:14:47 +0000 (00:14 +0200)]
Merge pull request #2143 from akoeplinger/refactor-mono-security-providers

[Mono.Security.Providers] Refactor providers into distinct folders

8 years agoBump reference source
Marek Safar [Fri, 16 Oct 2015 22:10:23 +0000 (00:10 +0200)]
Bump reference source

8 years ago[corlib] Implement UnsafeEnumCastLong
Marek Safar [Fri, 16 Oct 2015 22:08:30 +0000 (00:08 +0200)]
[corlib] Implement UnsafeEnumCastLong

8 years ago[bcl] Update to 4.6 referencesource
Marek Safar [Fri, 16 Oct 2015 21:32:35 +0000 (23:32 +0200)]
[bcl] Update to 4.6 referencesource

8 years ago[Mono.Security.Providers] Refactor providers into distinct folders
Alexander Köplinger [Fri, 16 Oct 2015 20:11:33 +0000 (22:11 +0200)]
[Mono.Security.Providers] Refactor providers into distinct folders

Build the two libraries Mono.Security.Providers.DotNet and Mono.Security.Providers.NewSystemSource just like
every other class library instead of duplicating the logic into the subfolders.

This also fixes "make dist".

8 years ago[WinForms] ComboBox, ListBox and TextBox should use Control Foreground+Background
Marek Habersack [Fri, 16 Oct 2015 19:39:29 +0000 (21:39 +0200)]
[WinForms] ComboBox, ListBox and TextBox should use Control Foreground+Background

They have been using Window Foreground+Background so far which make them unreadable
on systms with dark themes. This change makes them behave.

8 years ago[TLS]: Make ValidationResult.MonoSslPolicyErrors nullable.
Martin Baulig [Tue, 13 Oct 2015 21:56:35 +0000 (17:56 -0400)]
[TLS]: Make ValidationResult.MonoSslPolicyErrors nullable.

(cherry picked from commit abfac54c47312c00f22fffef821f8889cbc67098)
(cherry picked from commit ccb7bfc930f4265b685eada8e73ee81acaae5963)

8 years ago[System]: Remove the TrustEvaluateSsl(MX.X509CertificateCollection...) overloads.
Martin Baulig [Fri, 16 Oct 2015 16:36:29 +0000 (12:36 -0400)]
[System]: Remove the TrustEvaluateSsl(MX.X509CertificateCollection...) overloads.

We now use SSCX.X509Certificate2Collection in ChainValidationHelper.

8 years agoMerge pull request #2141 from akoeplinger/fix-wrong-disableaot-define
João Matos [Fri, 16 Oct 2015 18:25:57 +0000 (19:25 +0100)]
Merge pull request #2141 from akoeplinger/fix-wrong-disableaot-define

[runtime] Rename DISABLE_AOT_COMPILER back to DISABLE_AOT

8 years ago[Process] Do not use Exited as it's racy with Start and BeginOutputReadLine/BeginErro...
Ludovic Henry [Fri, 16 Oct 2015 17:31:19 +0000 (18:31 +0100)]
[Process] Do not use Exited as it's racy with Start and BeginOutputReadLine/BeginErrorReadLine

The issue can arise if the Process is going to run faster than the call
between Start and BeginOutputReadLine/BeginErrorReadLine. To increase
the chance of the race happening, insert a Thread.Sleep (1000) between
Start and BeginOutputReadLine/BeginErrorReadLine.

This race exists because the WaitForExit in the background thread in the
Process, will first wait the process to finish, then try to wait for the
output to finish, but it will be null as BeginOutputReadLine has not been
called yet, then try to wait on error (same issue as output), and finally
call the Exited event, which will close the stdout and stderr TextWriter.
The call to BeginOutputReadLine and BeginErrorReadLine will finally happen
(which is still correct as the output and error of the Process has not
been closed yet), then calling the OutputDataReceived and ErrorDataReceived
callbacks which will try to write to the closed stdout and stderr
TextWriter.

Simply enqueuing a ThreadPool work item, which will wait for the process
to exit manually, simply resolve this issue, as we guarantee that the
call to WaitForExit happens after BeginOutputReadLine/BeginErrorReadLine,
and is not racing with it.

8 years ago[corlib] Add few reference source dependencies
Marek Safar [Fri, 16 Oct 2015 16:42:10 +0000 (18:42 +0200)]
[corlib] Add few reference source dependencies

8 years agoAll MARTIN_FIXME's have been taken care of.
Martin Baulig [Fri, 16 Oct 2015 16:33:02 +0000 (12:33 -0400)]
All MARTIN_FIXME's have been taken care of.

8 years ago[Mono.Security]: Check 'CertificateValidationHelper.SupportsX509Chain' before attempt...
Martin Baulig [Tue, 8 Sep 2015 13:46:54 +0000 (15:46 +0200)]
[Mono.Security]: Check 'CertificateValidationHelper.SupportsX509Chain' before attempting to compute the chain.

Computing the X509Chain is not supported on OS X and iOS because the OS does
not give us access to the root certificates - this would throw an Exception
at runtime.

(cherry picked from commit 44d34a17c1bf305e39bcfc277cc7add48560d899)
(cherry picked from commit 504328ec43d9d917c1f140ecf89f253ab2be39ec)

8 years agoForgot to remove one MARTIN_FIXME.
Martin Baulig [Fri, 16 Oct 2015 16:12:19 +0000 (12:12 -0400)]
Forgot to remove one MARTIN_FIXME.

8 years ago[msvc] Remove left over project guid from mono.sln
Alexander Köplinger [Fri, 16 Oct 2015 14:14:14 +0000 (16:14 +0200)]
[msvc] Remove left over project guid from mono.sln

The project was removed from the solution in 735fc51cc092ef89ca08b8304c582af0bf60b8e4, but one instance was missed.
This should fix the Windows build on Jenkins.

8 years ago[mono-symbolicate] Skip AOT tests if AOT isn't supported by the current arch
Alexander Köplinger [Fri, 16 Oct 2015 11:48:57 +0000 (13:48 +0200)]
[mono-symbolicate] Skip AOT tests if AOT isn't supported by the current arch

This fixes Jenkins errors on architectures like s390x which don't support AOT.

8 years ago[runtime] Rename DISABLE_AOT_COMPILER back to DISABLE_AOT
Alexander Köplinger [Fri, 16 Oct 2015 13:35:33 +0000 (15:35 +0200)]
[runtime] Rename DISABLE_AOT_COMPILER back to DISABLE_AOT

The original rename in c4aa103e486ac7116d78be3f3efecf49bfd29335 was done by accident,
the rest of the codebase still used the old name so disabling AOT didn't actually work.

Renaming this back to the original name and fix a few instances where methods weren't added
in the DISABLE_AOT case.

This allows a `--enable-minmal=aot` build to succeed and actually work.

8 years agoRevert "[process] Use same behavior as .NET"
Ludovic Henry [Fri, 16 Oct 2015 10:00:58 +0000 (11:00 +0100)]
Revert "[process] Use same behavior as .NET"

It broke the android build

This reverts commit c688b8c84ca3b26a1025a2194314183d2a880086.

8 years ago[runtime] Simplify the caching of gshared generic params now that they point to their...
Zoltan Varga [Fri, 16 Oct 2015 08:07:01 +0000 (04:07 -0400)]
[runtime] Simplify the caching of gshared generic params now that they point to their parent gparam.

8 years ago[runtime] Add a new MonoGSharedGenericParam structure as an extension of the MonoGene...
Zoltan Varga [Fri, 16 Oct 2015 07:58:31 +0000 (03:58 -0400)]
[runtime] Add a new MonoGSharedGenericParam structure as an extension of the MonoGenericParamFull structure, put the 'parent' field there.

8 years ago[amd64] Split the valuetype argument passing code into win64 and non-win64 versions...
Zoltan Varga [Fri, 16 Oct 2015 03:11:20 +0000 (23:11 -0400)]
[amd64] Split the valuetype argument passing code into win64 and non-win64 versions to simplify both.

8 years ago[aot] Create constrained gparams using the same mini_get_shared_gparam () function...
Zoltan Varga [Fri, 16 Oct 2015 00:13:59 +0000 (20:13 -0400)]
[aot] Create constrained gparams using the same mini_get_shared_gparam () function used by the rest of the code, so its properly unique-ed.

8 years ago[io-layer] Remove Sleep and SleepEx
Ludovic Henry [Thu, 9 Jul 2015 20:20:26 +0000 (17:20 -0300)]
[io-layer] Remove Sleep and SleepEx

8 years ago[io-layer] Remove GetCurrentThreadId
Ludovic Henry [Thu, 9 Jul 2015 19:18:07 +0000 (16:18 -0300)]
[io-layer] Remove GetCurrentThreadId

8 years ago[runtime] Remove dead code
Ludovic Henry [Fri, 10 Jul 2015 00:42:10 +0000 (21:42 -0300)]
[runtime] Remove dead code

8 years ago[sdb] Fix state initialization of suspended threads to work when the debugger thread...
Rodrigo Kumpera [Tue, 13 Oct 2015 22:33:00 +0000 (18:33 -0400)]
[sdb] Fix state initialization of suspended threads to work when the debugger thread is not attached. Fixes #34750

The problem happens because thread_interrupt runs in the debugger thread (suspend initiator).

thread_interrupt then calls mono_thread_state_init_from_monoctx which collects the state of the current thread
which is definitely not what we wanted.

There used to be some compensation code after calling mono_thread_state_init_from_monoctx to actually init the state properly.
This is why it worked, at all.

Thew problem is that the debugger thread now might not attach at all under some circumstances, which would trigger
mono_thread_state_init_from_monoctx to return FALSE and trip into the assert.

The fix is to simply not use mono_thread_state_init_from_monoctx at all, just copy the state from data. This fix has the
bonus of getting the domain correctly.

8 years agoMerge pull request #2113 from ludovic-henry/coop-socket-abort
Rodrigo Kumpera [Thu, 15 Oct 2015 18:56:40 +0000 (14:56 -0400)]
Merge pull request #2113 from ludovic-henry/coop-socket-abort

[socket] Make blocking syscall abortable on signal-less platforms

8 years agoMerge pull request #2123 from kumpera/verifier-fix
Rodrigo Kumpera [Thu, 15 Oct 2015 18:53:28 +0000 (14:53 -0400)]
Merge pull request #2123 from kumpera/verifier-fix

[verifier] Fix the verifiers to handle Roslyn style fixed blocks.

8 years agoFix MSVC build after 16570265149730ec6a4760cc0fa34decc1a9d981
Alexis Christoforides [Thu, 15 Oct 2015 18:27:49 +0000 (14:27 -0400)]
Fix MSVC build after 16570265149730ec6a4760cc0fa34decc1a9d981

8 years agoMerge pull request #2127 from joelmartinez/mdoc-multiassembly-squashed
Miguel de Icaza [Thu, 15 Oct 2015 18:00:16 +0000 (14:00 -0400)]
Merge pull request #2127 from joelmartinez/mdoc-multiassembly-squashed

[mdoc] `multiassembly` option for duplicated types

8 years ago[process] Use same behavior as .NET
Ludovic Henry [Thu, 15 Oct 2015 16:49:06 +0000 (17:49 +0100)]
[process] Use same behavior as .NET

8 years agoMerge pull request #2137 from fplucas/patch-1
João Matos [Thu, 15 Oct 2015 14:36:00 +0000 (15:36 +0100)]
Merge pull request #2137 from fplucas/patch-1

Fixing the broken icon of centos-s390x

8 years agoFixing the broken icon of centos-s390x
Lucas [Thu, 15 Oct 2015 14:32:17 +0000 (11:32 -0300)]
Fixing the broken icon of centos-s390x

8 years agoMerge pull request #2134 from akoeplinger/bug-34334
Alexander Köplinger [Thu, 15 Oct 2015 13:44:04 +0000 (15:44 +0200)]
Merge pull request #2134 from akoeplinger/bug-34334

[interpreter] Implement comparing string values in (Not)EqualInstruction

8 years ago[runtime] Switch ARM backend use to use g_print instead of printf.
João Matos [Thu, 15 Oct 2015 13:34:53 +0000 (14:34 +0100)]
[runtime] Switch ARM backend use to use g_print instead of printf.

Sorry about the churn, the previous commit contained an unintended chunk.

8 years agoRevert "[runtime] Switch ARM backend use to use g_print instead of printf."
João Matos [Thu, 15 Oct 2015 13:26:19 +0000 (14:26 +0100)]
Revert "[runtime] Switch ARM backend use to use g_print instead of printf."

This reverts commit 8e9f93be24f2b8b744f9ad31292f3f74a5caf411.

8 years ago[runtime] Switch ARM backend use to use g_print instead of printf.
João Matos [Thu, 15 Oct 2015 13:24:10 +0000 (14:24 +0100)]
[runtime] Switch ARM backend use to use g_print instead of printf.

8 years ago[runtime] Simplify ARM mono_arch_flush_icache.
João Matos [Wed, 14 Oct 2015 16:50:00 +0000 (17:50 +0100)]
[runtime] Simplify ARM mono_arch_flush_icache.

We do not support compiling with older versions of GCC anymore so most of this should be just dead code.

8 years ago[amd64] Remove the special casing of TYPEDBYREF in the amd64 backend, its not needed.
Zoltan Varga [Thu, 15 Oct 2015 04:28:56 +0000 (00:28 -0400)]
[amd64] Remove the special casing of TYPEDBYREF in the amd64 backend, its not needed.

8 years ago[llvmonly] Call methods in the same assembly directly.
Zoltan Varga [Thu, 15 Oct 2015 02:11:21 +0000 (22:11 -0400)]
[llvmonly] Call methods in the same assembly directly.

8 years ago[llvmonly] Update comments.
Zoltan Varga [Thu, 15 Oct 2015 00:42:32 +0000 (20:42 -0400)]
[llvmonly] Update comments.

8 years ago[llvmonly] Use the PreserveAll calling convention for the init functions.
Zoltan Varga [Thu, 15 Oct 2015 00:42:06 +0000 (20:42 -0400)]
[llvmonly] Use the PreserveAll calling convention for the init functions.

8 years ago[llvmonly] Factor out the initialization code into separate helper functions to save...
Zoltan Varga [Thu, 15 Oct 2015 00:21:53 +0000 (20:21 -0400)]
[llvmonly] Factor out the initialization code into separate helper functions to save space.

8 years ago[ppdb] Check that PE file timestamp as well when matching assemblies and pdb files.
Zoltan Varga [Wed, 14 Oct 2015 23:49:34 +0000 (19:49 -0400)]
[ppdb] Check that PE file timestamp as well when matching assemblies and pdb files.

8 years agoRevert "[System]: WebConnection: improve chunked reads and async callbacks."
Martin Baulig [Wed, 14 Oct 2015 23:25:54 +0000 (19:25 -0400)]
Revert "[System]: WebConnection: improve chunked reads and async callbacks."

This reverts commit 9027f0ad28bf733ebb8ac9964c78c22853ca93c7.

8 years ago[System/TLS]: Switch to the new ChainValidationHelper.
Martin Baulig [Wed, 14 Oct 2015 20:22:05 +0000 (16:22 -0400)]
[System/TLS]: Switch to the new ChainValidationHelper.

* Removed Mono.Security.Protocol.Tls.ValidationResult, use
  Mono.Security.Interface instead.  This is an API breaking
  change, but you can fix your application by simply adding
  the new using directive.

  The rationale behind this is to avoid a dependency on the
  Mono.Security.Protocol.Tls namespace when building and
  related classes when building the new TLS stack.

* Enable ChainValidationHelper in WebConnection, LegacySslStream
  and SslStream.

  The custom conditionals that were previously required for the
  mobile profiles are now gone as ChainValidationHelper already
  handles that internally.

* This is an internal API, the public front-end is
  Mono.Security.Interface.CertificateValidationHelper.

  CertificateValidationHelper can be used to access the system
  certificate validator on OS X and iOS; we do not compute the
  X509Chain on these platforms as it's not supported by the OS.

(cherry picked from commit 9713f35878dd90fe87423b5052b4f82ddc0b87f0)

8 years ago[llvmonly] Add more preinitialized got slots, refactor the code which emits them...
Zoltan Varga [Wed, 14 Oct 2015 21:54:34 +0000 (17:54 -0400)]
[llvmonly] Add more preinitialized got slots, refactor the code which emits them a little.

8 years ago[ppdb] Update to spec version v1.0. Fix decoding of line number info.
Zoltan Varga [Wed, 14 Oct 2015 20:25:29 +0000 (16:25 -0400)]
[ppdb] Update to spec version v1.0. Fix decoding of line number info.

8 years ago[ppdb] Update the code which checks whenever the assembly and the pdb files match...
Zoltan Varga [Wed, 14 Oct 2015 19:55:36 +0000 (15:55 -0400)]
[ppdb] Update the code which checks whenever the assembly and the pdb files match to spec v1.0.

8 years ago[System/TLS]: Add obsolete ChainValidationHelper.ctor(HttpWebRequest).
Martin Baulig [Wed, 14 Oct 2015 19:27:49 +0000 (15:27 -0400)]
[System/TLS]: Add obsolete ChainValidationHelper.ctor(HttpWebRequest).

This will be removed again laster, but allows us to do a two-step switch
by first switching to the new ChainValidationHelper, then switching to
MonoTlsProvider and friends.

(cherry picked from commit f2e98e82f04dbaa72e48c37d72407000c197fbcb)

8 years ago[System]: API cleanup; make MonoTlsStream.SelectClientCertificate() private static.
Martin Baulig [Wed, 14 Oct 2015 19:24:03 +0000 (15:24 -0400)]
[System]: API cleanup; make MonoTlsStream.SelectClientCertificate() private static.

(cherry picked from commit 8a79bdc2add36cb3da2834dc371499fd94d1737f)
(cherry picked from commit 13168150a77f722afee51df86ba029c91f21ee0c)

8 years ago[interpreter] Implement comparing string values in (Not)EqualInstruction
Alexander Köplinger [Wed, 14 Oct 2015 19:22:59 +0000 (21:22 +0200)]
[interpreter] Implement comparing string values in (Not)EqualInstruction

When comparing a string with null the other checks in the interpreter for type equality didn't catch this case
and this ultimately resulted in a NotImplementedException in EqualInstruction and NotEqualInstruction.

The fix is to handle the TypeCode.String case in those instructions.
We don't need to do it for CreateLifted() as that method only applies for Nullable<T> types which doesn't make sense for string.

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

8 years ago[System]: WebConnection: improve chunked reads and async callbacks.
Martin Baulig [Fri, 22 May 2015 03:11:14 +0000 (05:11 +0200)]
[System]: WebConnection: improve chunked reads and async callbacks.

Make sure we always complete the async operations on error and
also send callbacks outside the lock.

(cherry picked from commit 9027f0ad28bf733ebb8ac9964c78c22853ca93c7)

8 years agoFix the build.
Zoltan Varga [Wed, 14 Oct 2015 19:17:44 +0000 (15:17 -0400)]
Fix the build.

8 years ago[runtime] Fix the configure check for stdc++/c++.
Zoltan Varga [Wed, 14 Oct 2015 18:46:40 +0000 (14:46 -0400)]
[runtime] Fix the configure check for stdc++/c++.

8 years ago[aot] Fix the build when llvm is not enabled.
Zoltan Varga [Wed, 14 Oct 2015 17:08:21 +0000 (13:08 -0400)]
[aot] Fix the build when llvm is not enabled.

8 years ago[runtime] Reworked coop GC stack handling in platforms with restricted access to...
João Matos [Thu, 1 Oct 2015 16:38:38 +0000 (17:38 +0100)]
[runtime] Reworked coop GC stack handling in platforms with restricted access to register contexts.

8 years agoMerge pull request #2106 from lambdageek/dev/bug-29108-part1
João Matos [Wed, 14 Oct 2015 15:34:31 +0000 (16:34 +0100)]
Merge pull request #2106 from lambdageek/dev/bug-29108-part1

GetCallingAssembly() skip past reflection. Fix #29108 - part 1

8 years agoTest that Assembly.GetCallingAssembly() skips MethodBase.Invoke()
Aleksey Kliger [Mon, 5 Oct 2015 15:28:42 +0000 (11:28 -0400)]
Test that Assembly.GetCallingAssembly() skips MethodBase.Invoke()

8 years agoGetCallingAssembly() skip past reflection. Fix #29108 - part 1
Aleksey Kliger [Fri, 2 Oct 2015 18:01:28 +0000 (14:01 -0400)]
GetCallingAssembly() skip past reflection. Fix #29108 - part 1

8 years ago[runtime] Workaround signal() configure check in Android.
João Matos [Wed, 14 Oct 2015 14:17:57 +0000 (15:17 +0100)]
[runtime] Workaround signal() configure check in Android.

So, I broke this on Android back in https://github.com/mono/mono/commit/d3726dcde9ef373157cd533ce8091cdde89dfa8e.

Turns out signal() is defined inline in Android:

static __inline__ __sighandler_t signal(int s, __sighandler_t f)
{
    return bsd_signal(s,f);
}

So we need to hardcode the define in case we're on an Android platform.

Fixes BclTests on Android:

I/mono-stdout( 1200): UnixSignalTest
F/        ( 1200): signal() is not supported by this platform
F/libc    ( 1200): Fatal signal 6 (SIGABRT) at 0x000004b0 (code=-6), thread 1215 (Instrumentation)

8 years ago[llvmonly] Fix the build.
Zoltan Varga [Wed, 14 Oct 2015 05:54:01 +0000 (01:54 -0400)]
[llvmonly] Fix the build.

8 years ago[aot] Rework the handling of preinitialized got slots, instead of hardcoding their...
Zoltan Varga [Wed, 14 Oct 2015 05:44:58 +0000 (01:44 -0400)]
[aot] Rework the handling of preinitialized got slots, instead of hardcoding their offsets into the code, initialize them the same way the other got slots are initialized, by decoding a MonoJumpInfo structure for them, and resolving them using mono_resolve_patch_target ().

8 years ago[mscorlib] DateTime, DateTimeOffset, bring Unix time APIs from CoreCLR
Miguel de Icaza [Wed, 14 Oct 2015 03:05:24 +0000 (23:05 -0400)]
[mscorlib] DateTime, DateTimeOffset, bring Unix time APIs from CoreCLR

8 years ago[llvmonly] Skip initalization of methods if they only reference shared got entries.
Zoltan Varga [Wed, 14 Oct 2015 02:07:11 +0000 (22:07 -0400)]
[llvmonly] Skip initalization of methods if they only reference shared got entries.

8 years ago[llvmonly] Emit initialization code for a method only if it uses got slots or its...
Zoltan Varga [Wed, 14 Oct 2015 01:14:24 +0000 (21:14 -0400)]
[llvmonly] Emit initialization code for a method only if it uses got slots or its type has a cctor.

8 years ago[process] Wait for process completion before waiting for stdout/stderr
Ludovic Henry [Tue, 13 Oct 2015 18:24:05 +0000 (14:24 -0400)]
[process] Wait for process completion before waiting for stdout/stderr

This fixes a race condition between the calls to Start and
BeginOutputReadLine/BeginErrorReadLine. This was triggered by the fact
that the call to WaitForExit (in StartBackgroundWaitForExit called by
Start_noshell) could be faster that the call to
BeginOutputReadLine/BeginErrorReadLine, leading to a null async_output,
which would make the WaitForExit call not wait for the output to finish.
This could make the call to Exited happen before a call to
OutputDataReceived/ErrorDataReceived.

To trigger this issue more reliably, you can simply add a sleep at the
beginning of AddInput in ProcessAsyncReader.

8 years ago[runtime] Link against the same c++ standard library as used by llvm.
Zoltan Varga [Wed, 14 Oct 2015 00:32:39 +0000 (20:32 -0400)]
[runtime] Link against the same c++ standard library as used by llvm.

8 years agoRemove another MARTIN_FIXME.
Martin Baulig [Tue, 13 Oct 2015 21:32:27 +0000 (17:32 -0400)]
Remove another MARTIN_FIXME.

(cherry picked from commit 9737322c86939f1b5e0da085697bddb7827cc06d)

8 years ago[System]: Remove two MARTIN_FIXME's.
Martin Baulig [Tue, 13 Oct 2015 21:25:17 +0000 (17:25 -0400)]
[System]: Remove two MARTIN_FIXME's.

This adds ChainValidationHelper to the build, but it's not
actually used yet.

(cherry picked from commit 214bf577d36808fc8ffc050027376c37b8920346)

8 years ago[System]: Add AndroidPlatform.TrustEvaluateSsl(X509Certificate2Collection...) overload.
Martin Baulig [Tue, 13 Oct 2015 22:51:15 +0000 (18:51 -0400)]
[System]: Add AndroidPlatform.TrustEvaluateSsl(X509Certificate2Collection...) overload.

(cherry picked from commit 34eefeb172055f10d8d6ca7b91cb719cfe812b64)

8 years ago[System]: Add OSX509Certificates.TrustEvaluateSsl(X509Certificate2Collection,string...
Martin Baulig [Tue, 13 Oct 2015 21:02:37 +0000 (17:02 -0400)]
[System]: Add OSX509Certificates.TrustEvaluateSsl(X509Certificate2Collection,string) overload.

When switching to Mono.Net.Security.ChainValidationHelper, we will use
X509Certificate2Collection instead of MSX.X509CertificateCollection; keep
both version for the moment.

(cherry picked from commit 1f004d8e7a8391785d4ae8fcb0270f9be9d522c8)

8 years ago[System]: Use 'ServerCertValidationCallback' in ServicePointManager.
Martin Baulig [Tue, 13 Oct 2015 15:35:06 +0000 (11:35 -0400)]
[System]: Use 'ServerCertValidationCallback' in ServicePointManager.

This is a new internal wrapper class defined in
external/referencesource/System/net/System/Net/ServicePointManager.cs

It wraps the RemoteCertificateValidationCallback, capturing the
current ExecutionContext.

(cherry picked from commit c1695a55dc9a55f6b344bfc4c91991bd1f04c046)

8 years agoPut back "[Mono.Security.Providers]: Add to the top-level build."
Martin Baulig [Mon, 12 Oct 2015 22:21:07 +0000 (18:21 -0400)]
Put back "[Mono.Security.Providers]: Add to the top-level build."

This reverts commit f05603553e04c853685a3dfd063e4bd6c38afcf2.

8 years ago[Mono.Security/build]: Add custom monodroid_Mono.Security.dll.sources.
Martin Baulig [Mon, 12 Oct 2015 22:06:43 +0000 (18:06 -0400)]
[Mono.Security/build]: Add custom monodroid_Mono.Security.dll.sources.

Includes everything from Mono.Security.dll.sources except for the
new Mono.Security.Interface APIs, which are built inside System.dll
on mobile.

(cherry picked from commit df1adee67802417381280c097f3f8f17bbd48f66)

8 years agoAdd tests for #34598
Miguel de Icaza [Tue, 13 Oct 2015 18:48:55 +0000 (14:48 -0400)]
Add tests for #34598

8 years agoMerge pull request #2130 from sandyarmstrong/mt-runtime-updates
Sandy Armstrong [Tue, 13 Oct 2015 17:45:34 +0000 (10:45 -0700)]
Merge pull request #2130 from sandyarmstrong/mt-runtime-updates

[corlib] Use same Console and Environment logic in monotouch_runtime

8 years ago[corlib] Use same Console and Environment logic in monotouch_runtime
Sandy Armstrong [Mon, 12 Oct 2015 17:55:03 +0000 (10:55 -0700)]
[corlib] Use same Console and Environment logic in monotouch_runtime

The `monotouch_runtime` profile is exclusively used for the monotouch
REPL assemblies used by Xamarin Sketches and Inspector. In those cases,
Console and Environment should behave just the same as in the
`monotouch` profile.

The only real difference between the two profiles should be the presence
of SRE in `monotouch_runtime`.

8 years ago[mdoc] `multiassembly` option for duplicated types
Joel Martinez [Wed, 7 Oct 2015 21:32:52 +0000 (17:32 -0400)]
[mdoc] `multiassembly` option for duplicated types

The new `multiassembly` option lets you run `mdoc update` on assemblies that
contain the same types. This can come into play when you have a set of assemblies
that run on different platforms, with a slightly differing API surface area on
each platform (for example: tvOS, watchOS, iOS); in this case you can maintain
all of the documentation in a single set of XML documents.

With this option enabled, an `AssemblyInfo` node will be added for every assembly
that a type is found in, in addition to every member. While this may seem verbose,
it's really the only way to capture the information about what assemblies a given
type or member can be found in.

8 years agoMerge pull request #2121 from esdrubal/socketreuse
Marcos Henrich [Tue, 13 Oct 2015 10:11:20 +0000 (11:11 +0100)]
Merge pull request #2121 from esdrubal/socketreuse

[System] Added icall SupportsPortReuse.

8 years agoRevert "[Mono.Security.Providers]: Add to the top-level build."
Martin Baulig [Mon, 12 Oct 2015 21:54:14 +0000 (17:54 -0400)]
Revert "[Mono.Security.Providers]: Add to the top-level build."

This currently does not build for monodroid, so let's fix that first.

This reverts commit 8a47d504ccaa27fa420cd6d489d845c1b6152b95.

8 years ago[System]: Add HttpWebRequest.ServerCertificateValidationCallback.
Martin Baulig [Mon, 12 Oct 2015 21:27:01 +0000 (17:27 -0400)]
[System]: Add HttpWebRequest.ServerCertificateValidationCallback.

Add a new HttpWebRequest.ServerCertificateValidationCallback property
(new .NET 4.5 / 4.6 API, not enabled yet) and read-only internal
ServerCertValidationCallback accessor (defined in the referencesource's
ServicePointManager.cs).

(cherry picked from commit ea9ed03863c730831c6fac393ed4dad3a94fb149)

8 years ago[System]: Add new internal HttpWebRequest APIs for MonoTlsProvider / MonoTlsSettings.
Martin Baulig [Mon, 12 Oct 2015 21:22:34 +0000 (17:22 -0400)]
[System]: Add new internal HttpWebRequest APIs for MonoTlsProvider / MonoTlsSettings.

The new internal constructor allows a per-request MonoTlsProvider and
related MonoTlsSettings; also expose these as new internal properties.

(cherry picked from commit 31988df75077c11ed87c77ab34e5b77b5913a32b)

8 years ago[System]: Add internal ServicePoint.SetClientCertificate() and SetServerCertificate().
Martin Baulig [Mon, 12 Oct 2015 19:03:48 +0000 (15:03 -0400)]
[System]: Add internal ServicePoint.SetClientCertificate() and SetServerCertificate().

The old SetCertificates() will be removed when merging the rest of
the work-newtls changes.

(cherry picked from commit 815731f2b7fd2f7384b8e16fcaf33f54d5ab6cb1)

8 years ago[Mono.Security.Providers]: Add to the top-level build.
Martin Baulig [Fri, 9 Oct 2015 20:03:27 +0000 (16:03 -0400)]
[Mono.Security.Providers]: Add to the top-level build.

(cherry picked from commit 76db142479c87cc76cc33a29fc0599143171e834)

8 years ago[System] Add internal 'ServicePointManager.DisableStrongCrypto'.
Martin Baulig [Thu, 5 Feb 2015 05:49:06 +0000 (06:49 +0100)]
[System] Add internal 'ServicePointManager.DisableStrongCrypto'.

It's an internal API that's used by the referencesource.

(cherry picked from commit 7fbd50ab52fc4cdf2fa9282ecd9d286ac48d9ba8)
(cherry picked from commit eb2f282d6f5e87a60c65b03822c1182e249ffcd3)

8 years ago[corlib] Add new .NET 4.5 System.Diagnostics.EventSource and EventAttribute APIs.
Martin Baulig [Thu, 5 Feb 2015 05:05:45 +0000 (06:05 +0100)]
[corlib] Add new .NET 4.5 System.Diagnostics.EventSource and EventAttribute APIs.

(cherry picked from commit 7f098fb7424b78f0e1bbde592a9de71209dcc798)
(cherry picked from commit 6c804183131b9c72261de91947a7f32f3566f811)

8 years ago[System]: Make internals visible to Mono.Security.Providers.NewSystemSource.
Martin Baulig [Fri, 9 Oct 2015 19:49:18 +0000 (15:49 -0400)]
[System]: Make internals visible to Mono.Security.Providers.NewSystemSource.

(cherry picked from commit 6414856bf297d7fd58dbab07d96ff9835f8e5606)

8 years ago[sdb] Print more debug info when a seq point is not found.
Zoltan Varga [Mon, 12 Oct 2015 21:10:11 +0000 (17:10 -0400)]
[sdb] Print more debug info when a seq point is not found.

8 years ago[llvmonly] Simplify the handling of init_bb a bit.
Zoltan Varga [Mon, 12 Oct 2015 20:20:13 +0000 (16:20 -0400)]
[llvmonly] Simplify the handling of init_bb a bit.

8 years ago[System/TLS]: Add the new Mono.Security.Interface and Mono.Net.Security APIs to the...
Martin Baulig [Fri, 9 Oct 2015 18:31:02 +0000 (14:31 -0400)]
[System/TLS]: Add the new Mono.Security.Interface and Mono.Net.Security APIs to the build.

These should be considered internal APIs for the moment, even where the
classes are public (to avoid making internals visible).

(cherry picked from commit bec0257c97c511859409a2a3b2678cc980e3d30d)

8 years agoAdd MARTIN_FIXME conditionals to some of the newly added files in preparation to...
Martin Baulig [Fri, 9 Oct 2015 19:36:40 +0000 (15:36 -0400)]
Add MARTIN_FIXME conditionals to some of the newly added files in preparation to get them build.

(cherry picked from commit 73a79ac235cfcc85363780d2980b049817b3a720)
(cherry picked from commit 0d90e727e5ceae134c5a49930df66eba3a656720)
(cherry picked from commit d60284a02a553fbf0af18d40a3e1018f7d0aa0c9)