Zoltan Varga [Fri, 15 Jan 2016 14:47:44 +0000 (09:47 -0500)]
[llvm] Fix a type conversion problem when calling the same method with two different signatures.
Ludovic Henry [Fri, 15 Jan 2016 14:32:32 +0000 (14:32 +0000)]
Merge pull request #2362 from ludovic-henry/fix-process-missedoutput
[Process] Use ReferenceSource process async output/error reader
Marek Safar [Fri, 15 Jan 2016 14:28:45 +0000 (15:28 +0100)]
Bump reference source for CancellationTokenSource fixes
Marek Safar [Fri, 15 Jan 2016 08:59:39 +0000 (09:59 +0100)]
[mcs] Update project file
Marek Safar [Fri, 15 Jan 2016 08:58:31 +0000 (09:58 +0100)]
[mcs] Use probing like aproach for member access completion
Vlad Brezae [Fri, 15 Jan 2016 02:00:17 +0000 (02:00 +0000)]
Merge pull request #2403 from BrzVlad/feature-emulation-delay
[jit] Delay opcode emulation to allow optimization passes to run on these opcodes
Zoltan Varga [Fri, 15 Jan 2016 00:54:54 +0000 (19:54 -0500)]
[llvmonly] Fix mono_patch_info_equal () for MONO_PATCH_INFO_GSHAREDVT_IN_WRAPPER.
Zoltan Varga [Thu, 14 Jan 2016 23:39:03 +0000 (18:39 -0500)]
[llvmonly] Fix the addition of gsharedvt in wrappers around unbox wrappers.
Zoltan Varga [Thu, 14 Jan 2016 23:00:47 +0000 (18:00 -0500)]
[llvmonly] Fix the gsharedvt parameter passing code so it emits valid llvm il.
Zoltan Varga [Thu, 14 Jan 2016 22:04:54 +0000 (17:04 -0500)]
[llvmonly] Add unwind info for unbox wrappers, not the get_unbox_tramp () generated function.
Zoltan Varga [Thu, 14 Jan 2016 21:47:29 +0000 (16:47 -0500)]
[llvmonly] Fix initialization of static gshared methods, they receive a vtable as the rgctx argument, not a MonoMethodRuntimeGenericContext. Emit unwind info for unbox wrappers. Fix calls to gsharedvt methods from non-shared delegate invoke wrappers.
Aleksey Kliger (λgeek) [Thu, 14 Jan 2016 20:15:51 +0000 (15:15 -0500)]
Merge pull request #2438 from lambdageek/cherry-pick-coop-handle
Cherry pick handles work
Zoltan Varga [Thu, 14 Jan 2016 19:42:17 +0000 (14:42 -0500)]
Merge pull request #2439 from akoeplinger/fix-seqpoint-test
[mono] test_op_il_seq_point test should use a temp file for NUnit results
Alexander Köplinger [Thu, 14 Jan 2016 19:27:01 +0000 (20:27 +0100)]
[mono] test_op_il_seq_point test should use a temp file for NUnit results
We were seeing red builds on Jenkins because the NUnit xml was malformed when something bad happened
during the test_op_il_seq_point tests and Jenkins couldn't parse it.
To fix this, write the results into a temp file and only rename to .xml at the end when everything worked.
Additionally, fixed a small typo in cleaning the .so files.
João Matos [Thu, 14 Jan 2016 18:05:46 +0000 (18:05 +0000)]
[runtime] Fixed ARM cross compiler builds.
Vlad Brezae [Mon, 21 Dec 2015 12:36:44 +0000 (14:36 +0200)]
[jit] Delay emulation to allow optimizations to happen on these ops
Emulation used to happen at emitting time (method_to_ir). Now it is done after the copy propagation pass, where we propagate immediates and can do strength reduction on some of these ops. Because the call to the native function might imply an inlined wrapper which compiles more IL instructions, we need to run the decomposition pass again.
Vlad Brezae [Tue, 5 Jan 2016 21:43:36 +0000 (23:43 +0200)]
[jit] Support decomposition of long imm ops to simple long ops
Vlad Brezae [Tue, 5 Jan 2016 20:32:50 +0000 (22:32 +0200)]
[jit] Don't crash in mono_op_imm_to_op if opcode is not handled
Mimic the behaviour of its counterpart, mono_op_to_op_imm, since crashing limits the usage of the function and it is the responsability of the upper layer.
Vlad Brezae [Tue, 5 Jan 2016 19:40:59 +0000 (21:40 +0200)]
[jit] Don't decompose into unsupported instructions
If we emulate these ops, it means we don't support the *_2 ops and we shouldn't decompose into them.
Vlad Brezae [Fri, 11 Dec 2015 13:49:41 +0000 (05:49 -0800)]
[jit] Don't hardcode the long vreg components
Aleksey Kliger [Thu, 14 Jan 2016 17:17:57 +0000 (12:17 -0500)]
[handle] rename mono_handle_arena_(initialize|deinitialize)
to mono_handle_arena_init and mono_handle_arena_cleanup, respectively.
Aleksey Kliger [Thu, 14 Jan 2016 17:13:29 +0000 (12:13 -0500)]
[handle] Make MONO_HANDLE_ARENA_POP a function-like macro
Ludovic Henry [Mon, 11 Jan 2016 16:16:04 +0000 (16:16 +0000)]
[sgen] Remove DISABLE_CRITICAL_REGION as it's never defined
Ludovic Henry [Mon, 11 Jan 2016 14:00:48 +0000 (14:00 +0000)]
[checked-build] Add in GC critical region assertion
Aleksey Kliger [Mon, 4 Jan 2016 16:26:55 +0000 (11:26 -0500)]
[checked] Nest MONO_{PREPARE,FINISH}_GC_CRITICAL_REGION
Aleksey Kliger [Mon, 28 Dec 2015 22:49:15 +0000 (17:49 -0500)]
[coop] store MonoHandleArena pointer in MonoThreadInfo
Aleksey Kliger [Thu, 7 Jan 2016 23:21:15 +0000 (18:21 -0500)]
[handle] Add _SETREF_NULL macros for MonoObjectHandle and MonoArrayHandle
Ludovic Henry [Wed, 6 Jan 2016 15:35:55 +0000 (15:35 +0000)]
[handle] Rename MonoHandleStorage->obj to MonoHandleStorage->__private_obj
Ludovic Henry [Wed, 6 Jan 2016 14:24:35 +0000 (14:24 +0000)]
[handle] Add mono_handle_obj_is_null utility function
Zoltan Varga [Thu, 14 Jan 2016 16:26:22 +0000 (11:26 -0500)]
[llvmonly] Implement Assembly.GetCallingAssembly () in llvmonly mode by saving the current assembly in the calling method. Enable it for Activator.CreateInstance () for now.
Ludovic Henry [Thu, 17 Dec 2015 17:10:35 +0000 (17:10 +0000)]
[Process] Use ReferenceSource process async output/error reader
By using the referencesource one, we remove a buggy part of the Process class. It will now simply use Stream.{Begin/End}Read, and not a custom implementation that introduces its own bugs.
Alexander Köplinger [Thu, 14 Jan 2016 15:27:46 +0000 (16:27 +0100)]
[man/mono.1] Fix typo from
9115bf0a
Zoltan Varga [Thu, 14 Jan 2016 15:11:55 +0000 (10:11 -0500)]
[runtime] Make sure ptr-to-structure and structure-and-ptr wrappers are unique, this is needed by full aot. Fixes #20186.
Marek Safar [Thu, 14 Jan 2016 14:12:59 +0000 (15:12 +0100)]
[mono] Update predefined Hebrew negative sign. Fixes #37681
Marek Safar [Thu, 14 Jan 2016 13:40:00 +0000 (14:40 +0100)]
[corlib] Bump reference source for #37583
monojenkins [Thu, 14 Jan 2016 13:10:19 +0000 (13:10 +0000)]
Merge pull request #2427 from alexrp/socket-responder-dedup
[bcl] Deduplicate the SocketResponder test helper class.
A number of fixes were made to the version in System but these fixes were never applied to the System.Web.Services version. Merge the two and place the class in the test-helpers directory to avoid this sort of maintenance problem.
Marek Safar [Thu, 14 Jan 2016 07:56:50 +0000 (08:56 +0100)]
Merge pull request #2434 from knocte/bitmapattributes
[System.Drawing] Include new .NET4.5 attributes (OWIN)
Andrés G. Aragoneses [Thu, 14 Jan 2016 02:37:10 +0000 (10:37 +0800)]
[System.Drawing] Include new .NET4.5 attributes (OWIN)
These stubs should fix this OWIN issue brought up in StackOverflow:
http://stackoverflow.com/questions/
34751771/system-drawing-bitmapsuffixinsameassemblyattribute-missing-in-mono
Docs:
* https://msdn.microsoft.com/en-us/library/system.drawing.bitmapsuffixinsameassemblyattribute%28v=vs.110%29.aspx
* https://msdn.microsoft.com/en-us/library/system.drawing.bitmapsuffixinsatelliteassemblyattribute%28v=vs.110%29.aspx
Patch contributed under the terms of the MIT/X11 licence.
Alex Rønne Petersen [Wed, 13 Jan 2016 04:54:43 +0000 (05:54 +0100)]
[bcl] Deduplicate the SocketResponder test helper class.
A number of fixes were made to the version in System but these fixes were never
applied to the System.Web.Services version. Merge the two and place the class
in the test-helpers directory to avoid this sort of maintenance problem.
Alex Rønne Petersen [Thu, 14 Jan 2016 02:11:41 +0000 (03:11 +0100)]
Merge pull request #2426 from alexrp/http-test-remove-abort
Revert "[bcl] Fix System.Net.HttpWebRequestTest.GetRequestStream hang"
Alex Rønne Petersen [Thu, 14 Jan 2016 02:10:00 +0000 (03:10 +0100)]
Merge pull request #2424 from alexrp/task-unobserved-exceptions
[TPL] Add support for the <ThrowUnobservedTaskExceptions /> config element.
Zoltan Varga [Wed, 13 Jan 2016 21:47:31 +0000 (16:47 -0500)]
[llvm] Add a missing r4 opcodes.
Zoltan Varga [Wed, 13 Jan 2016 21:47:23 +0000 (16:47 -0500)]
[llvmonly] Create empty stacktraces if backtraces are not supported by the platform.
Zoltan Varga [Wed, 13 Jan 2016 21:45:42 +0000 (16:45 -0500)]
[runtime] Disable a test which fails with bitcode.
Alexander Köplinger [Wed, 13 Jan 2016 17:11:33 +0000 (18:11 +0100)]
Merge pull request #2428 from akoeplinger/fix-ipv6-test
[System] Ignore ReceiveIPv6() UdpClient test when IPv6 is not available
Zoltan Varga [Wed, 13 Jan 2016 17:10:08 +0000 (12:10 -0500)]
[aot] Avoid overwriting entries in domain->seq_points if decode_exception_debug_info () is called more than once. Fixes #37582.
Alexander Köplinger [Wed, 13 Jan 2016 15:48:47 +0000 (16:48 +0100)]
[System] Ignore ReceiveIPv6() UdpClient test when IPv6 is not available
The test hangs on Jenkins otherwise.
Rolf Bjarne Kvinge [Wed, 13 Jan 2016 13:53:15 +0000 (14:53 +0100)]
[System] xamarin_start_wwan is not available for tvOS and watchOS.
Ludovic Henry [Wed, 6 Jan 2016 13:57:08 +0000 (13:57 +0000)]
[handle] Add macro to push/pop arena
Ludovic Henry [Wed, 6 Jan 2016 13:50:56 +0000 (13:50 +0000)]
[handle] Make handle.h use exclusively public headers and MONO_API functions
Ludovic Henry [Wed, 6 Jan 2016 13:42:01 +0000 (13:42 +0000)]
[handle] Remove SGen dependency
Ludovic Henry [Wed, 6 Jan 2016 11:40:22 +0000 (11:40 +0000)]
[handle] Fix typo
Ludovic Henry [Wed, 6 Jan 2016 11:33:57 +0000 (11:33 +0000)]
[handle] Implement mono_handle_(new|elevate) functions
Ludovic Henry [Wed, 6 Jan 2016 11:23:05 +0000 (11:23 +0000)]
[handle] Inline handle-private.h in handle.h
MonoHandleArena functions need to be as public as MonoHandle functions, as we cannot have one without the other.
Marcos Henrich [Wed, 13 Jan 2016 10:17:38 +0000 (10:17 +0000)]
Merge pull request #2274 from esdrubal/udpclientreceive
Fixes UdpClient.Receive with IPv6 endpoint
Marek Safar [Wed, 13 Jan 2016 07:37:24 +0000 (08:37 +0100)]
Merge pull request #2423 from radical/mcs-args
[mcs] Accept and ignore command line args supported by csc ..
Alex Rønne Petersen [Wed, 13 Jan 2016 04:48:04 +0000 (05:48 +0100)]
Revert "[System] Tweak tests to work with Thread.Interrupt as well."
This reverts commit
bb50c3f3c943ea85d49df160d45f8edea0005d10.
Alex Rønne Petersen [Thu, 10 Dec 2015 17:23:22 +0000 (18:23 +0100)]
Revert "[bcl] Fix System.Net.HttpWebRequestTest.GetRequestStream hang"
This reverts commit
b3fa096e5eceea1c3b289b3655244a42c2884274.
The Abort () call is problematic on many platforms and is no longer necessary
as we properly close the listening socket since
1103abf3830131ba2a1deabc133e8d27402302c7.
Conflicts:
mcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SocketResponder.cs
mcs/class/System/Test/System.Net/SocketResponder.cs
Alex Rønne Petersen [Wed, 13 Jan 2016 03:52:36 +0000 (04:52 +0100)]
[TPL] Add support for the <ThrowUnobservedTaskExceptions /> config element.
Improves the situation wrt: https://bugzilla.xamarin.com/show_bug.cgi?id=36560
João Matos [Wed, 13 Jan 2016 01:55:01 +0000 (01:55 +0000)]
Merge pull request #2422 from akoeplinger/environment-is64bitoperatingsystem
[corlib] Properly implement Environment.Is64BitOperatingSystem
Alexander Köplinger [Tue, 12 Jan 2016 15:51:13 +0000 (16:51 +0100)]
[corlib] Properly implement Environment.Is64BitOperatingSystem
Before we only checked if IntPtr.Size == 8, but this returns false for a 32bit Mono running on a 64bit OS.
Added an icall that gets the correct value from the runtime instead.
Note: this currently only whitelists x86_64, aarch64 and ppc64 as 64-bit platforms.
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=37414
Vlad Brezae [Wed, 13 Jan 2016 01:31:33 +0000 (03:31 +0200)]
Merge pull request #2261 from BrzVlad/fix-arm-fast-tls-master
[arm] Fix arm fast tls
Ankit Jain [Fri, 8 Jan 2016 21:15:22 +0000 (16:15 -0500)]
[mcs] Accept and ignore command line args supported by csc ..
.. that we don't support:
/utf8output
/subsystemversion
/highentropyva
/highentropyva+
/highentropyva-
Zoltan Varga [Tue, 12 Jan 2016 19:39:55 +0000 (14:39 -0500)]
[llvmonly] Avoid disabling llvm for the Selector.GetHandle () intrinsics.
Zoltan Varga [Tue, 12 Jan 2016 19:23:24 +0000 (14:23 -0500)]
[llvmonly] Fix support for variant interface methods, they work similarly to generic virtual methods.
Joao Matos [Tue, 12 Jan 2016 17:40:46 +0000 (17:40 +0000)]
Revert "Apple has introduced the System Integrety Protection in OS X 10.11. This prevents writes to /usr amongst other paths. /usr/local is still writable though."
This reverts commit
b723c89628187ab138334c108e16d62bc9530d6e.
@migueldeicaza thinks this is the wrong approach, reverting until we figure out the right way to go about this.
Zoltan Varga [Tue, 12 Jan 2016 17:26:30 +0000 (12:26 -0500)]
[llvm] Ignore OP_IL_SEQ_POINT.
Aleksey Kliger (λgeek) [Tue, 12 Jan 2016 16:50:10 +0000 (11:50 -0500)]
Merge pull request #2418 from lambdageek/dev/bug-12205
[reflection] Correct ReflectedType for generic methods
Zoltan Varga [Tue, 12 Jan 2016 15:33:36 +0000 (10:33 -0500)]
[aot] Add support for name mangling for more types.
Aleksey Kliger [Mon, 11 Jan 2016 17:10:23 +0000 (12:10 -0500)]
[reflection] Test MethodInfo.ReflectedType property
Test cases for [#12205](https://bugzilla.xamarin.com/show_bug.cgi?id=12205)
Rolf Bjarne Kvinge [Fri, 8 Jan 2016 18:50:34 +0000 (19:50 +0100)]
[mscorlib] Add support for intercepting threadpool work, and use it for Xamarin.iOS/Mac.
This is used to Xamarin.iOS/Mac to wrap threadpool work in an NSAutoreleasePool.
Also open up corlib's internals to Xamarin.iOS/Mac so that the linker
doesn't have to be involved when accessing internal API.
Aleksey Kliger [Mon, 11 Jan 2016 16:31:47 +0000 (11:31 -0500)]
[reflection] remove override get ReflectedType for MonoGenericMethod and MonoGenricCMethod
Should return the type that was queried, not the type where the method
is declared.
Fixes [#12205](https://bugzilla.xamarin.com/show_bug.cgi?id=12205)
Zoltan Varga [Mon, 11 Jan 2016 17:01:10 +0000 (12:01 -0500)]
[runtime] Bump version to 4.3.3.
Alexander Köplinger [Mon, 11 Jan 2016 13:13:37 +0000 (14:13 +0100)]
Merge pull request #2382 from akoeplinger/system-net-mime-referencesource
[System] Port System.Net.Mime namespace from referencesources
Marek Safar [Mon, 11 Jan 2016 12:30:53 +0000 (13:30 +0100)]
[mcs] Fixes inconsistent accessibility check for partial types. Fixes #37232
Zoltan Varga [Sun, 10 Jan 2016 12:57:28 +0000 (07:57 -0500)]
[llvm] Allow support for emitting some methods using 'linkonce' linkage. This allows the linker to get rid of duplicate copies. Enable it for gsharedvt wrappers.
Alexander Köplinger [Sat, 9 Jan 2016 21:42:14 +0000 (22:42 +0100)]
Merge pull request #2415 from razzfazz/fix_timespec
fix struct timespec member name
Zoltan Varga [Sat, 9 Jan 2016 20:45:56 +0000 (15:45 -0500)]
Merge pull request #2414 from akoeplinger/fix-threadpool-test-hang
[corlib] Don't throw exception for null locale to fix threadpool-exceptions5.exe hang
Daniel Becker [Sat, 9 Jan 2016 19:43:08 +0000 (11:43 -0800)]
fix struct timespec member name
The second member of struct timespec is actually called tv_nsec
(nanoseconds), not tv_usec (microseconds); this was likely
confused with struct timeval, where the second member is in fact
called tv_usec.
Alexander Köplinger [Sat, 9 Jan 2016 20:11:08 +0000 (21:11 +0100)]
[corlib] Don't throw exception for null locale to fix threadpool-exceptions5.exe hang
We were seeing persistent hangs in the threadpool-exceptions5.exe test on the Jenkins ARM machines.
Tracing the execution showed the following exceptions:
```
[0x7f65e3284700:] EXCEPTION handling: System.Threading.ThreadAbortException:
[0x7f65e3284700:] EXCEPTION handling: System.Exception: From OnCBFinished
[0x7f65e3284700:] EXCEPTION handling: System.ArgumentNullException: Value cannot be null. <-- from CultureInfo.CreateSpecificCulture()
Parameter name: name
[0x7f65e3284700:] EXCEPTION handling: System.Threading.ThreadAbortException:
exception inside UnhandledException handler:
... program hangs here ...
```
It turns out that the machines don't have the LANG/LC_ALL env vars set, resulting in a null string returned
from get_current_locale_name(). The code then tries to construct a locale from that and throws an ANE which is
normally catched and turned into the InvariantCulture.
However, in the threadpool-exceptions5 test the first time a CultureInfo is created is in the OnUnhandledException
event handler when calling ToString(). This means that an exception is thrown while we are in the unhandled exception
handler and the runtime apparently just stops there (despite the exception actually being catched, probably because of
the thread abort) so we never get to signaling the monitor object -> we hang in Main().
The fix is to not rely on catching the ArgumentNullException when we get a null locale, which is a better approach anyway.
To easily reproduce the issue before the fix, use the following (on Linux only, we don't use LANG for locale on OSX):
```
~/dev/mono/mono/tests$ LANG=C MONO_PATH=../../mcs/class/lib/net_4_x/ ../mini/mono-sgen --trace=N:nothing threadpool-exceptions5.exe
```
Note: If you pass an invalid LANG=foo, the hang is still there as we throw a CultureNotFoundException and hit the same issue.
As the behavior looks like a runtime bug to me I filed https://bugzilla.xamarin.com/show_bug.cgi?id=37547
Zoltan Varga [Sat, 9 Jan 2016 17:21:51 +0000 (12:21 -0500)]
[llvmonly] Avoid creating an empty output file for the JITted code.
Zoltan Varga [Sat, 9 Jan 2016 16:19:48 +0000 (11:19 -0500)]
[llvmonly] Avoid emitting the 'globals' aot table, its not used in llvmonly mode.
Zoltan Varga [Sat, 9 Jan 2016 13:08:55 +0000 (08:08 -0500)]
Merge pull request #2412 from akoeplinger/disable-thread-test
[corlib] Disable Thread test that started failing after
d5768a7f141e2a579cbca26f76c791c215f4aabf
Alexander Köplinger [Sat, 9 Jan 2016 02:47:32 +0000 (03:47 +0100)]
[corlib] Disable Thread test that started failing after
d5768a7f141e2a579cbca26f76c791c215f4aabf
Setting the priority before starting a Thread doesn't work right now as there's no handle to the native
thread at that point (the current implementation doesn't store the priority, it just tries setting it
on the native thread) so the test would remember the default 'Normal' priority instead of 'BelowNormal',
causing the test to fail later on.
Added an assert to verify that the thread priority can be set before starting and disable the test for now.
Note: variable names 'before' and 'after' were switched in the test, fixed those as well.
Zoltan Varga [Fri, 8 Jan 2016 21:22:09 +0000 (16:22 -0500)]
[llvm] Error out when using --aot=llvmonly if the runtime is not compiled with --enable-gsharedvt.
Miguel de Icaza [Fri, 8 Jan 2016 21:20:51 +0000 (16:20 -0500)]
[csharp/getline] Add support for completion popup windows
This adds supprot to the getline.cs library to provide popup windows with
completion results. There is a new public string property surfaced,
HeuristicsMode, that if set to "csharp" will trigger the completion window
independently of the "tab" character, based on the user input.
This mode triggers completion after the "." character is entered, and will
continue to trigger it as long as you type, or you backspace and the completion
succeeds. The heuristic also ignores scenarios like "1.2", so there is no
compeltion provided after entering numbers by default.
Perhaps we can later introduce a "OnKeyEntered" command that users could
use to provide their own heuristics to control whether to popup the window
or not.
Radek Doulik [Fri, 8 Jan 2016 20:44:50 +0000 (21:44 +0100)]
[linker] do not use System.IO.Path on assembly resource names
- fixes #37305
- resource name can be general string and using it as path
might throw
System.ArgumentException: Illegal characters in path.
- it would be possible to check for the path's invalid characters in
the resource name. that would cause crossplatform issues
though.
various platforms have different invalid charactes sets for path
names. for example using assembly built on mac with embedded
linker blacklisting xml file, which's name contains characters in
its filename which are invalid on windows. so the windows built
app using that assembly would fail mysteriously, because the
important parts wouldn't be preserved.
thus we use just string comparison
Alexander Köplinger [Fri, 8 Jan 2016 20:58:40 +0000 (21:58 +0100)]
[io-layer] Revert
31f13881a483201933b16e75d47a6d103d959a64 and fix it in a simpler way
We don't need the configure.ac check as we can just directly check if the macro is defined.
Zoltan Varga [Fri, 8 Jan 2016 20:45:25 +0000 (15:45 -0500)]
[runtime] Bump AOT file format version.
Alexander Köplinger [Fri, 8 Jan 2016 20:37:40 +0000 (21:37 +0100)]
[io-layer] Fix build on OSX
This got broken by
d5768a7f141e2a579cbca26f76c791c215f4aabf, SCHED_BATCH isn't available on OSX or Linux before 2.6.16
Zoltan Varga [Fri, 8 Jan 2016 20:18:52 +0000 (15:18 -0500)]
[llvmonly] Enable more tests.
Zoltan Varga [Fri, 8 Jan 2016 20:18:41 +0000 (15:18 -0500)]
[llvmonly] Fix gsharedvt calls from gsharedvt methods.
Alexander Köplinger [Fri, 8 Jan 2016 20:06:31 +0000 (21:06 +0100)]
Merge pull request #2384 from akoeplinger/system-net-sockets-referencesource
[System] Initial port of System.Net.Sockets types from referencesource
Alexander Köplinger [Fri, 8 Jan 2016 19:54:09 +0000 (20:54 +0100)]
[System.Web] Add test for
9c254393200eb6a23bea67c053ed467a023cc0e4
Test case from https://bugzilla.xamarin.com/show_bug.cgi?id=13909
James Venning [Wed, 6 Jan 2016 05:09:02 +0000 (15:09 +1000)]
Fix RouteCollection not correctly clearing itself
Neale [Tue, 22 Dec 2015 20:45:56 +0000 (15:45 -0500)]
Implement a SetPriority/GetPriority facility for real-time threads: if
mono is executed using the SCHED_RR policy, we will map POSIX priorities
to .NET priorities. Under this policy a thread running under this policy
which uses the SetPriority API will have its priority remapped and a
call to pthread_setschedparam() made to change its priority.
The following code fragment may be used to run a mono application
without requiring all root privileges other than the CAP_SYS_NICE
capability which enables priority manipulation:
void
runMonoRT(const char *const name, const int policy, char **argv)
{
const pid_t me = getpid();
struct sched_param param;
param.sched_priority = sched_get_priority_min(policy);
if (sched_setscheduler(me, policy, ¶m) == -1)
fprintf(stderr, "sched_setscheduler(getpid(), %s, { %d }): %s.\n",
name, param.sched_priority, strerror(errno));
else
execvp("mono", argv);
}
int
main(int argc, char **argv)
{
uid_t user;
cap_value_t root_caps[2] = { CAP_SYS_NICE, CAP_SETUID };
cap_value_t user_caps[1] = { CAP_SYS_NICE };
cap_t capabilities;
/* Get real user ID. */
user = getuid();
/* Get full root privileges. Normally being effectively root
* (see man 7 credentials, User and Group Identifiers, for explanation
* for effective versus real identity) is enough, but some security
* modules restrict actions by processes that are only effectively root.
* To make sure we don't hit those problems, we switch to root fully. */
if (setresuid(0, 0, 0)) {
fprintf(stderr, "Cannot switch to root: %s.\n", strerror(errno));
return 1;
}
/* Create an empty set of capabilities. */
capabilities = cap_init();
/* Capabilities have three subsets:
* INHERITABLE: Capabilities permitted after an execv()
* EFFECTIVE: Currently effective capabilities
* PERMITTED: Limiting set for the two above.
* See man 7 capabilities for details, Thread Capability Sets.
*
* We need the following capabilities:
* CAP_SYS_NICE For nice(2), setpriority(2),
* sched_setscheduler(2), sched_setparam(2),
* sched_setaffinity(2), etc.
* CAP_SETUID For setuid(), setresuid()
* in the last two subsets. We do not need to retain any capabilities
* over an exec().
*/
if (cap_set_flag(capabilities, CAP_PERMITTED, sizeof root_caps / sizeof root_caps[0], root_caps, CAP_SET) ||
cap_set_flag(capabilities, CAP_EFFECTIVE, sizeof root_caps / sizeof root_caps[0], root_caps, CAP_SET)) {
fprintf(stderr, "Cannot manipulate capability data structure as root: %s.\n", strerror(errno));
return 1;
}
/* Above, we just manipulated the data structure describing the flags,
* not the capabilities themselves. So, set those capabilities now. */
if (cap_set_proc(capabilities)) {
fprintf(stderr, "Cannot set capabilities as root: %s.\n", strerror(errno));
return 1;
}
/* We wish to retain the capabilities across the identity change,
* so we need to tell the kernel. */
if (prctl(PR_SET_KEEPCAPS, 1L)) {
fprintf(stderr, "Cannot keep capabilities after dropping privileges: %s.\n", strerror(errno));
return 1;
}
/* Drop extra privileges (aside from capabilities) by switching
* to the original real user. */
if (setresuid(user, user, user)) {
fprintf(stderr, "Cannot drop root privileges: %s.\n", strerror(errno));
return 1;
}
/* We can still switch to a different user due to having the CAP_SETUID
* capability. Let's clear the capability set, except for the CAP_SYS_NICE
* in the permitted and effective sets. */
if (cap_clear(capabilities)) {
fprintf(stderr, "Cannot clear capability data structure: %s.\n", strerror(errno));
return 1;
}
if (cap_set_flag(capabilities, CAP_PERMITTED, sizeof user_caps / sizeof user_caps[0], user_caps, CAP_SET) ||
cap_set_flag(capabilities, CAP_EFFECTIVE, sizeof user_caps / sizeof user_caps[0], user_caps, CAP_SET)) {
fprintf(stderr, "Cannot manipulate capability data structure as user: %s.\n", strerror(errno));
return 1;
}
/* Apply modified capabilities. */
if (cap_set_proc(capabilities)) {
fprintf(stderr, "Cannot set capabilities as user: %s.\n", strerror(errno));
return 1;
}
/*
* Now we have just the normal user privileges,
* plus user_caps.
*/
runMonoRT("SCHED_RR", SCHED_RR, argv);
return 0;
}
João Matos [Fri, 8 Jan 2016 18:00:49 +0000 (18:00 +0000)]
Merge pull request #2411 from rolfbjarne/parse-debug-optionsapi-doc
Document mini_parse_debug_option
Rolf Bjarne Kvinge [Fri, 8 Jan 2016 17:35:09 +0000 (18:35 +0100)]
[mini] Document mini_parse_debug_option.
Rolf Bjarne Kvinge [Fri, 8 Jan 2016 17:34:57 +0000 (18:34 +0100)]
[mini] Rename mini_parse_debug_option's argument to match the header file (and match better the usage).
Rolf Bjarne Kvinge [Fri, 8 Jan 2016 17:32:16 +0000 (18:32 +0100)]
[man/mono.1] Fix typo.