Alexander Köplinger [Sun, 17 Apr 2016 18:07:38 +0000 (20:07 +0200)]
Merge pull request #2907 from krytarowski/netbsd-support-7
Improve NetBSD target handling in ./configure
Alexander Köplinger [Sun, 17 Apr 2016 18:06:56 +0000 (20:06 +0200)]
Merge pull request #2906 from krytarowski/netbsd-support-6
Welcome to ARM ucontext registers on NetBSD
Alexander Köplinger [Sun, 17 Apr 2016 17:04:58 +0000 (19:04 +0200)]
[tests/verifier] Fix a few issues in the Makefile
gmcs and ilasm2 are no longer distributed with Mono.
The run-test step had several issues that prevented it from running,
e.g. the comments caused "unexpected end of line" issues on OSX.
Alexander Köplinger [Sun, 17 Apr 2016 17:24:59 +0000 (19:24 +0200)]
Merge pull request 2899 from krytarowski/netbsd-support-1
Improve shell portability on NetBSD
The "test" command, as well as the "[" command, are not required to know
the "==" operator.
Comparing with empty strings ("") might lead to unspecified results.
Replace unportable shell loops:
for I in {2..6}; do ..; done
with POSIX ones:
I=2; while [ $I -le 6 ]; do ..; I=$((I + 1)); done
Kamil Rytarowski [Sun, 17 Apr 2016 13:47:20 +0000 (15:47 +0200)]
Improve NetBSD target handling in ./configure
Stop hardcoding libc and linbintl versions.
Add support for libsqlite and libsqlite3.
Kamil Rytarowski [Sun, 17 Apr 2016 13:39:13 +0000 (15:39 +0200)]
Welcome to ARM ucontext registers on NetBSD
Kamil Rytarowski [Sat, 16 Apr 2016 20:50:23 +0000 (22:50 +0200)]
Improve shell portability on NetBSD
The "test" command, as well as the "[" command, are not required to know
the "==" operator.
Comparing with empty strings ("") might lead to unspecified results.
Replace unportable shell loops:
for I in {2..6}; do ..; done
with POSIX ones:
I=2; while [ $I -le 6 ]; do ..; I=$((I + 1)); done
Alexander Köplinger [Sun, 17 Apr 2016 11:37:21 +0000 (13:37 +0200)]
Merge pull request #2900 from krytarowski/netbsd-support-2
Fix shell portability in configure.ac for NetBSD
Alexander Köplinger [Sun, 17 Apr 2016 11:36:33 +0000 (13:36 +0200)]
Merge pull request #2904 from krytarowski/netbsd-support-5
Include <errno.h> for errno on NetBSD
Alexander Köplinger [Sun, 17 Apr 2016 11:35:31 +0000 (13:35 +0200)]
Merge pull request #2898 from ludovic-henry/fix-process-hasexited
[corlib] Fix WaitHandle.Wait{One,Any,All} when runtime returns WAIT_FAILED
Alexander Köplinger [Sun, 17 Apr 2016 11:10:15 +0000 (13:10 +0200)]
Merge pull request #2905 from directhex/force-dpkg-architecture
[jenkins] Force build arch = dpkg arch, on Debian systems
Jo Shields [Sun, 17 Apr 2016 08:28:54 +0000 (09:28 +0100)]
[jenkins] Force build arch = dpkg arch, on Debian systems
Autotools misdetects architecture when using chroots, e.g. tries to do an x86_64 build on an x86_64 system in an i386 chroot
Alexander Köplinger [Sun, 17 Apr 2016 01:56:38 +0000 (03:56 +0200)]
Merge pull request #2901 from krytarowski/netbsd-support-3
Define access to R8-R11 regs in ucontext on NetBSD/AMD64
Alexander Köplinger [Sun, 17 Apr 2016 01:33:24 +0000 (03:33 +0200)]
[System] Replace websocket echo test server with corefx one (#2902)
echo.websocket.org is down since yesterday. Let's use the one that corefx uses for now.
Kamil Rytarowski [Sun, 17 Apr 2016 01:31:52 +0000 (03:31 +0200)]
Include <errno.h> for errno on NetBSD
The <sys/errno.h> header on NetBSD declares only a list of ERROR values.
This fixes the following build issue:
In file included from ../../mono/utils/mono-proclib.h:7:0,
from mono-proclib.c:8:
mono-proclib.c: In function 'mono_cpu_usage':
mono-proclib.c:893:54: error: 'errno' undeclared (first use in this function)
g_error ("getrusage() failed, errno is %d (%s)\n", errno, strerror (errno));
^
../../eglib/src/glib.h:600:70: note: in definition of macro 'g_error'
#define g_error(...) do { g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, __VA_ARGS__); for (;;); } while (0)
^
mono-proclib.c:893:54: note: each undeclared identifier is reported only once for each function it appears in
g_error ("getrusage() failed, errno is %d (%s)\n", errno, strerror (errno));
^
../../eglib/src/glib.h:600:70: note: in definition of macro 'g_error'
#define g_error(...) do { g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, __VA_ARGS__); for (;;); } while (0)
Kamil Rytarowski [Sat, 16 Apr 2016 23:01:19 +0000 (01:01 +0200)]
Define access to R8-R11 regs in ucontext on NetBSD/AMD64
Kamil Rytarowski [Sat, 16 Apr 2016 21:39:52 +0000 (23:39 +0200)]
Fix shell portability in configure.ac for NetBSD
Ludovic Henry [Fri, 15 Apr 2016 15:39:51 +0000 (17:39 +0200)]
[corlib] Fix WaitHandle.Wait{One,Any,All} when runtime returns WAIT_FAILED
In case the runtime would fail to wait on the wait handle(s), we would still return true, as if the WaitHandle was successfully signaled
Alexis Christoforides [Sat, 16 Apr 2016 10:24:17 +0000 (06:24 -0400)]
Merge pull request #2890 from mono/alexischr/remove-managed-alloc-string-zeroing
[sgen] Remove unnecessary and wrong IL code on string managed allocators
Marek Safar [Sat, 16 Apr 2016 06:56:38 +0000 (08:56 +0200)]
[System] Remove MONO_X509_ALIAS
Marek Safar [Sat, 16 Apr 2016 06:35:50 +0000 (08:35 +0200)]
[System] Remove PrebuiltSystem alias (it's not needed with any modern mcs)
Alexis Christoforides [Sat, 16 Apr 2016 02:57:33 +0000 (22:57 -0400)]
Merge pull request #2417 from razzfazz/guard_substr
handle path stripping correctly for root of watched tree
Alexis Christoforides [Sat, 16 Apr 2016 02:35:47 +0000 (22:35 -0400)]
Merge pull request #2889 from mono/alexischr/canary-sizecalc-change-impact
[sgen] "align-up" requested allocation sizes within the managed alloc…
Zoltan Varga [Sat, 16 Apr 2016 00:11:20 +0000 (20:11 -0400)]
[runtime] Fix warnings.
Marek Safar [Fri, 15 Apr 2016 22:41:02 +0000 (00:41 +0200)]
Merge pull request #2894 from marek-safar/mono.security
[build] Fixes Mono.Security dependency
monojenkins [Fri, 15 Apr 2016 17:05:39 +0000 (18:05 +0100)]
Merge pull request #2893 from kumpera/fix_29585
Fix #29585.
@monojenkins merge.
Rolf Bjarne Kvinge [Fri, 15 Apr 2016 15:38:01 +0000 (17:38 +0200)]
[mono-api-html] Fix path in csproj.
Marek Safar [Fri, 15 Apr 2016 15:28:19 +0000 (17:28 +0200)]
[mcs] Better error message for conflict of types with the same name
Marek Safar [Fri, 15 Apr 2016 13:41:14 +0000 (15:41 +0200)]
[build] Fixes Mono.Security dependency
monojenkins [Fri, 15 Apr 2016 12:41:00 +0000 (13:41 +0100)]
Merge pull request #2887 from lewurm/fix-jit-pass-name
[jit] fix stats name for method_to_ir pass
we settled for underscores
@monojenkins merge.
Alexander Köplinger [Fri, 15 Apr 2016 11:49:53 +0000 (13:49 +0200)]
Merge pull request #2885 from ntherning/fix_test_op_il_seq_point_sh_on_cygwin_2_4_1
Fixes for 'make check-seq-points' on Cygwin
Rodrigo Kumpera [Fri, 15 Apr 2016 09:11:46 +0000 (02:11 -0700)]
Merge pull request #2878 from kumpera/mach_fixes
Add retry logic to mach function calls.
Marek Safar [Fri, 15 Apr 2016 08:41:05 +0000 (10:41 +0200)]
[mcs] No optional parameters tie breaking rules for delegates overload resolution
Rodrigo Kumpera [Fri, 15 Apr 2016 00:53:55 +0000 (17:53 -0700)]
Add regression test.
Alexander Köplinger [Fri, 15 Apr 2016 00:53:49 +0000 (02:53 +0200)]
[corlib] Fix CspParametersTest.Ctor test
This essentially reapplies
ae2f50e57fb39a005a80303d21a956e89ec36a8b which was inadvertently changed back in
27f07c8095e50cc8be3c5155fcc929a119267db0.
It started failing again after
255ce320b0da31b6e50cef084a4079039ccb39d6 reapplied a fix that was also inadvertently removed (https://github.com/mono/referencesource/commit/
8c7937a9e7cc3f61f9ceb6a9d6f19fefdf1672b0).
Rodrigo Kumpera [Fri, 15 Apr 2016 00:39:44 +0000 (17:39 -0700)]
[runtime] Fix mono_class_inflate_generic_method_full_checked handle of partially inflated generic methods. Fixes #29585.
The problem here was that the function was not correctly setting is_generic when handling partially inflated methods.
The working scenario was method 'Foo<A>::Bar<B>' inflated with (Something<Else>;)[1] resulting in Foo<Something<Else>>::Bar<B>.
This would work because the is_generic check would verify that the supplied context has no method_inst, thus had to remain a GMD.
The problematic one would be inflating Foo<Something<A>>::Bar<B> with (Else;) resulting too in Foo<Something<Else>>::Bar<B>.
To handle this, we would first extract the root method definition [2] and then inflate the original method context with the supplied
context. So we end up with Foo<A>::Bar<B> and inflate (Something<A>;B) with (Else;) resulting in (Something<Else>;B) *1*.
Finally, we would inflate Foo<A>::Bar<B> with that new context, resulting in Foo<Something<Else>>::Bar<B>.
The resulting method is the same in both scenarios, but context used for inflation is different in that in the second case
it includes the GMD method instantiation (The B in *1*).
This would trip up the computation of whether we ended up with a GMD or not.
The right check, though, is not whether the inflation context has a method instantiation or not, but whether the resulting method
has the same method context as the root GMD[2].
This affected #29585 since disabling some optimizations triggered things to be inflated in different ways.
[1] (Something<Else>;) means a context with a class instantiation and no method instantiation
[2] The GMD defined on the GTD.
Bernhard Urban [Thu, 14 Apr 2016 21:14:45 +0000 (14:14 -0700)]
[jit] fix stats name for method_to_ir pass
we settled for underscores
Alexis Christoforides [Thu, 24 Mar 2016 14:06:34 +0000 (10:06 -0400)]
[sgen] Remove unnecessary and wrong IL code on string managed allocators
This appears to have been copied from Boehm, but here we are not responsible for zeroing.
Also, 's->chars [len]' is not the same as 'align_up (s + size) - 2', so this was corrupting canaries.
Alexis Christoforides [Thu, 24 Mar 2016 13:56:50 +0000 (09:56 -0400)]
[sgen] "align-up" requested allocation sizes within the managed allocator, instead of sometimes before.
All code paths will still align-up the size to be allocated, but now it's easier to gather the real size of an object.
Zoltan Varga [Thu, 14 Apr 2016 20:39:23 +0000 (16:39 -0400)]
[aot] Enable gsharedvt by default only when using --aot=full or --aot==llvmonly.
Alexander Köplinger [Thu, 14 Apr 2016 20:28:20 +0000 (22:28 +0200)]
Merge pull request #2888 from xmcclure/serialize-exception-bump
Bump corlib version number following PR#2875
Andi McClure [Thu, 14 Apr 2016 20:26:39 +0000 (16:26 -0400)]
Bump corlib version number following PR#2875
Andi McClure [Thu, 14 Apr 2016 20:18:00 +0000 (16:18 -0400)]
Merge pull request #2875 from xmcclure/serialize-exception
Support SerializeObjectState for System.Exception (bug #39824)
Alexis Christoforides [Thu, 14 Apr 2016 19:41:32 +0000 (15:41 -0400)]
Bump to include referencesource/
8c7937a9e7cc3f61f9ceb6a9d6f19fefdf1672b0. Fixes #38712
monojenkins [Thu, 14 Apr 2016 19:15:35 +0000 (20:15 +0100)]
Merge pull request #2803 from BrzVlad/feature-conc-pinned-scan
[sgen] Scan pinned objects in nursery as part of concurrent mark
Objects pinned in the nursery can hide behind them a large graph of objects in the heap which is never scanned because we don't follow references in the nursery. After precleaning, we scan the latest set of pinned objects (while locking in order to make sure that the set doesn't change, so none are moved).
Rodrigo Kumpera [Thu, 14 Apr 2016 00:04:05 +0000 (17:04 -0700)]
[MACH] Add retry logic to all mach api calls in the case of interruption.
One overlooked aspect of mach is that its calls are interruptible and
we never really accounted for that.
This problem turned up when sampling at high frequency as they would
start to randomly fail.
Rodrigo Kumpera [Thu, 14 Apr 2016 00:02:41 +0000 (17:02 -0700)]
[OSX] Drop more support for OSX 10.5 and earlier.
10.5 is ancient enough at this point. Remove code dealing with the exception server
that is not needed after it.
Niklas Therning [Thu, 14 Apr 2016 15:36:30 +0000 (17:36 +0200)]
Renamed SEP variable to PLATFORM_PATH_SEPARATOR.
Niklas Therning [Thu, 14 Apr 2016 14:36:27 +0000 (16:36 +0200)]
* Fixes 'diff: /dev/fd/63: Not a directory' errors when running
'make check-seq-points' on Cygwin 2.4.1 64-bit.
* Added removal of *.exe.dll to the clean_aot() function to delete AOT output
from previous 'make check-seq-points' runs.
* Use ';'' as separator in MONO_PATH if running under Cygwin rather than ':'.
Vlad Brezae [Wed, 23 Mar 2016 19:16:34 +0000 (21:16 +0200)]
[sgen] Scan pinned objects in nursery as part of concurrent mark
Objects pinned in the nursery can hide behind them a large graph of objects in the heap which is never scanned because we don't follow references in the nursery. After precleaning, we scan the latest set of pinned objects (while locking in order to make sure that the set doesn't change, so none are moved).
Alexander Köplinger [Thu, 14 Apr 2016 14:00:31 +0000 (16:00 +0200)]
Fix the referencesource submodule commit
Alexander Köplinger [Thu, 14 Apr 2016 13:58:31 +0000 (15:58 +0200)]
Merge pull request #2884 from ludovic-henry/fix-process-hasexited
[Process] Fix HasExited for non-child process
Ludovic Henry [Thu, 14 Apr 2016 09:53:56 +0000 (11:53 +0200)]
[Process] Fix HasExited for non-child process
NativeMethods.GetExitCodeProcess would inherently be broken on Unix platforms for non-child processes as it can't succesfully get the exit code. This would in turn break Process.HasExited, which should not break, as it is possible to check if a non-child process is alive or dead.
Ludovic Henry [Thu, 14 Apr 2016 09:53:13 +0000 (11:53 +0200)]
[Process] Set haveProcessHandle to true when setting m_processHandle
Jo Shields [Thu, 14 Apr 2016 08:40:29 +0000 (09:40 +0100)]
Revert "Fix missing CommonCrypto/Makefile.include in "make dist" tarballs"
Needed due to Marek's CommonCrypto changes
This reverts commit
c0ea8090525213e5236568f1ae494fac17fdd27b.
Marek Safar [Thu, 14 Apr 2016 06:30:22 +0000 (08:30 +0200)]
Revert "Revert "[Mono.Security] Fixes wrong path in makefile""
This reverts commit
b0c6a92785e5590af777a29600130ff5adb27e30.
Marek Safar [Thu, 14 Apr 2016 06:13:47 +0000 (08:13 +0200)]
Revert "Revert "[build] Clean up common crypto build""
This reverts commit
ba9d141ed8b7680d812e54f5db8adf19e1a3d4f4.
Marek Safar [Thu, 14 Apr 2016 06:06:56 +0000 (08:06 +0200)]
[Mono.Security] Fixes build
Daniel Becker [Thu, 14 Apr 2016 02:53:34 +0000 (19:53 -0700)]
use native realpath() function (#2877)
Instead of opening a file for the sole purpose of calling
F_GETPATH on the resulting descriptor, we can just use the
native realpath() function; as a side benefit, this also works
on *BSD where F_GETPATH isn't supported.
monojenkins [Thu, 14 Apr 2016 02:15:22 +0000 (03:15 +0100)]
Merge pull request #2879 from lewurm/undo-breaking-changes
Undo breaking changes
@monojenkins merge
Bernhard Urban [Thu, 14 Apr 2016 00:21:57 +0000 (17:21 -0700)]
Revert "[build] Clean up common crypto build"
This reverts commit
ecd2f512ced44cd6c6e48594aa27435d0e64eecc.
Bernhard Urban [Thu, 14 Apr 2016 00:20:29 +0000 (17:20 -0700)]
Revert "[Mono.Security] Fixes wrong path in makefile"
This reverts commit
90611f918522633f3d88aff0d54980c6f275f0f6.
Andi McClure [Wed, 13 Apr 2016 22:36:08 +0000 (18:36 -0400)]
Support SerializeObjectState for System.Exception (bug #39824)
Per current .NET, exception serialization may be implemented using the
SerializeObjectState event. Use of this approach is mandatory for
certain classes, such as HttpRequestException subclasses. Mono does
not support it. The solution is to switch out our System.Exception
implementation for the referencesource one.
To accommodate this, classes that access System.Exception internal
fields directly must switch to the new field names; a new support
method is added to System.Environment; the "security level" methods
and icall are added to MonoCMethods; and the field order in
_MonoException must be adjusted. A new test is also added in the
System.Runtime.Serialization assembly.
Zoltan Varga [Wed, 13 Apr 2016 20:28:14 +0000 (16:28 -0400)]
[arm] Use a direct branch in the krait workaround to avoid clang generating extra code and moving it before the inline assembly block. Fixes #40239.
Alexander Köplinger [Wed, 13 Apr 2016 16:58:43 +0000 (18:58 +0200)]
Move remaining System.Net.Http pieces from mono-extensions to mono
Discussed with @rolfbjarne, these were missed in the initial import of the mono-extension sources.
monojenkins [Wed, 13 Apr 2016 16:35:31 +0000 (17:35 +0100)]
Merge pull request #2874 from lateralusX/jlorenss/win-x64-support
jlorenss/win x64 support
Initial fixes needed in order to get pass on mono regression tests for windows x64 visual studio build,
--regression basic.exe basic-float.exe basic-long.exe basic-calls.exe objects.exe arrays.exe basic-math.exe exceptions.exe iltests.exe devirtualization.exe generics.exe basic-simd.exe
Before fixes there were failures in basic.exe, exceptions.exe and objects.exe for windows x64 Visual studio build.
Failures in basic.exe and exceptions.exe was due to a mix up of signal defines on windows platform in Visual Studio build where SIGILL and SIGFPE was defined differently in different source files causing incorrect signal handler to be invoked at runtime, causing incorrect thrown .NET exception. Fix is to make sure signal.h is always included giving the same value for SIGILl and SIGFPE over all source files.
Failures in objects.exe test_0_mul_ovf_regress_36052 caused a stack overflow crash when running togehter with branch optimization mode. This was due to incorrect lowering of x64 test instruction when optimization moved over to use R8 instead of RAX and current lowering didn't handle that correctly meaning that the actual test was performed against wrong register causing a loop that caused a stack overflow error. The specific amd64 codegen , amd64_test_reg_imm, is currently only used on x64 windows platform for the stackalloc call.
Marek Safar [Wed, 13 Apr 2016 16:18:37 +0000 (18:18 +0200)]
[Mono.Security] Fixes wrong path in makefile
Marek Safar [Wed, 13 Apr 2016 15:46:25 +0000 (17:46 +0200)]
[build] Clean up common crypto build
Martin Baulig [Wed, 13 Apr 2016 14:21:29 +0000 (16:21 +0200)]
Update X509CertificateImplApple.
Martin Baulig [Wed, 13 Apr 2016 13:45:42 +0000 (15:45 +0200)]
[corlib]: Add X509CertificateImpl.GetNativeAppleCertificate().
In SSCX.OSX509Certificates.GetCertificate(), we cannot simply use
'X509Certificate.Handle' because it may point to something that's
not a SecCertificate.
(cherry picked from commit
3fc068f7e283a3d7e2e78ff2d0e3cec492c87cc6)
Vlad Brezae [Wed, 13 Apr 2016 08:51:25 +0000 (16:51 +0800)]
Merge pull request #2800 from BrzVlad/feature-lazy-sweep
[sgen] Enable lazy sweep by default
Vlad Brezae [Thu, 10 Mar 2016 18:16:52 +0000 (20:16 +0200)]
[sgen] Enable lazy sweep by default
Vlad Brezae [Thu, 10 Mar 2016 16:59:20 +0000 (18:59 +0200)]
[sgen] Concurrently sweep blocks also in the lazy sweep case
In the lazy sweep case, the sweep job doesn't sweep the blocks. Instead, the blocks are swept when they are actually needed (when we want to allocate in the block, scan the block etc.). This delays the mutator or increases the nursery pauses. Try to sweep as many blocks as possible concurrently, immediately after we finish the sweep job.
Vlad Brezae [Tue, 12 Apr 2016 21:32:39 +0000 (05:32 +0800)]
Merge pull request #2822 from BrzVlad/feature-lshift-decomposition
[jit] Decompose long immediate shifts
Marek Safar [Tue, 12 Apr 2016 14:44:58 +0000 (16:44 +0200)]
[corlib] Handle CreateDirectory with relative paths. Fixes #40187
Marek Safar [Tue, 12 Apr 2016 14:10:17 +0000 (16:10 +0200)]
Bump reference source
Alex Rønne Petersen [Tue, 12 Apr 2016 13:31:31 +0000 (15:31 +0200)]
Merge pull request #2872 from alexrp/timer-dispose2-test
[corlib] Fix TimerTest.TestDispose2 () test.
Marek Safar [Tue, 12 Apr 2016 13:17:53 +0000 (15:17 +0200)]
[corlib] SymbolType from reference source. Fixes #39911
lateralusX [Tue, 12 Apr 2016 09:25:51 +0000 (11:25 +0200)]
Fixed incorrect lowering on x64 for test instruction when register r8-r15 where used.
Currently only triggered by objects.exe regression test on windows x64 with branch opt, since stackalloc gets lowered to this test and branch will start using R8 instead of RAX for the test.
lateralusX [Tue, 12 Apr 2016 09:25:02 +0000 (11:25 +0200)]
Fixed issue on x64 windows Visual Studio builds where signal define values got mixedup.
Caused incorrect exception behavior and failures in basic.exe, exceptions.exe regression test on x64 windows. This was due to the fact that some source files didn't include signal.h while others did. In case where signal.h was not included incompatible defines were used for SIGILL and SIGFPE in mini-amd64.h.
Marek Safar [Tue, 12 Apr 2016 09:29:38 +0000 (11:29 +0200)]
Bump referencesource
Alex Rønne Petersen [Tue, 12 Apr 2016 05:01:01 +0000 (07:01 +0200)]
[corlib] Fix TimerTest.TestDispose2 () test.
monojenkins [Tue, 12 Apr 2016 03:45:27 +0000 (04:45 +0100)]
Merge pull request #2870 from madewokherd/arginfo
x86 cleanups for register arguments
Best I can tell, cinfo->args and cfg->args need to be independent before implementing calling conventions where some arguments are in registers, at least if we want to do it cleanly. Also, storing the argument offset in a cfg->args instruction that claims to be for a register seems hacky and confusing to me.
Vlad Brezae [Mon, 11 Apr 2016 23:26:52 +0000 (02:26 +0300)]
[sgen] Fix compare function
Zoltan Varga [Mon, 11 Apr 2016 22:44:51 +0000 (18:44 -0400)]
[runtime] Avoid printing out the corlib version when running -v --version, it requires a working runtime. Fixes #40175.
Zoltan Varga [Mon, 11 Apr 2016 22:33:25 +0000 (18:33 -0400)]
[runtime] Fix the build of cominterop.c with DISABLE_JIT.
Vlad Brezae [Mon, 11 Apr 2016 20:38:19 +0000 (04:38 +0800)]
Merge pull request #2802 from BrzVlad/feature-evacuation-opt2
[sgen] Reduce number of evacuated objects
Vincent Povirk [Mon, 11 Apr 2016 19:16:05 +0000 (14:16 -0500)]
[x86] Don't use the inst_offset field of OP_REGVAR arguments.
Vincent Povirk [Mon, 11 Apr 2016 19:15:20 +0000 (14:15 -0500)]
[x86] Store CallInfo in MonoCompileArch structure.
Marek Safar [Mon, 11 Apr 2016 18:35:31 +0000 (20:35 +0200)]
[build] Remove unused lib paths
Marek Safar [Mon, 11 Apr 2016 18:33:47 +0000 (20:33 +0200)]
[mcs] Dynamic context in constructor initializers or field initializers is static. Fixes #40088
Vlad Brezae [Mon, 11 Apr 2016 16:23:50 +0000 (00:23 +0800)]
Merge pull request #2819 from BrzVlad/fix-major-log
[sgen] Fix major size logging
Vlad Brezae [Wed, 10 Feb 2016 09:55:17 +0000 (11:55 +0200)]
[jit] Decompose long immediate shifts
We decompose them as part of the cprop pass to handle more immediates and to further propagate copies.
The native backend of some architectures (for example x86) may support long shifts with specialized instructions. Even there, this still makes immediate shifts 2 times faster because long ops are poorly handled by the jit.
On arm, where we were emulating, this makes long immediate shifts 3-5 times faster.
monojenkins [Mon, 11 Apr 2016 16:15:24 +0000 (17:15 +0100)]
Merge pull request #2867 from alexrp/sgen-block-size-ppc
[sgen] Set ARCH_MIN_MS_BLOCK_SIZE to 64k on both ppc32 and ppc64.
This fixes a problem that was happening on Debian ppc32 build machines. Since
they are set up as a 32-bit userland on a 64-bit kernel, Mono would be compiled
with an ARCH_MIN_MS_BLOCK_SIZE value of 16k. However, at runtime, the system
page size would be 64k (due to the 64-bit kernel with PPC_64K_PAGES set).
Signed-off-by: `Alex Rønne Petersen <alexrp@xamarin.com>`
Alex Rønne Petersen [Mon, 11 Apr 2016 16:12:09 +0000 (18:12 +0200)]
Merge pull request #2866 from alexrp/solaris-10-tls
[configure] Use __thread instead of pthread TLS on Solaris/x86.
Marek Safar [Mon, 11 Apr 2016 15:59:17 +0000 (17:59 +0200)]
[mcs] Use Array.Empty for empty arrays when available
Marek Safar [Mon, 11 Apr 2016 14:11:34 +0000 (16:11 +0200)]
[mcs] Tie-breaking rules are applied also for non-equivalent parameter types. Fixess #40183
Marek Safar [Sat, 9 Apr 2016 14:34:56 +0000 (16:34 +0200)]
[mcs] Add tie breaking rule when candidate is in expanded form only and best has default arguments
monojenkins [Mon, 11 Apr 2016 15:50:26 +0000 (16:50 +0100)]
Merge pull request #2868 from akoeplinger/maccore-fixes
[metadata] Ifdef out an icall that is not available in the DISABLE_REFLECTION_EMIT case
It caused errors like the following on the maccore builds:
```
CCLD libmonosgen-2.0.la
Undefined symbols for architecture armv7k:
"_mono_reflection_get_custom_attrs_blob_checked", referenced from:
_ves_icall_System_Reflection_Emit_CustomAttributeBuilder_GetBlob in libmonoruntimesgen.a(libmonoruntimesgen_la-icall.o)
ld: symbol(s) not found for architecture armv7k
```
---
This is the last patch required for getting maccore master to build again with mono master.
@monojenkins merge
Miguel de Icaza [Mon, 11 Apr 2016 14:42:51 +0000 (10:42 -0400)]
Compiler-less mkbundle support in Mono.
This is the support that makes it so that mkbundle can create self-contained executables without requiring a native toolchain to be present. Also is the foundation to allow cross-compilation of self-contained executables.
This works by concatenating the runtime with the various dependencies and configuration files, attaching a directory at the end of the file and a signature to flag this as a runtime that has embedded resources in the executable file itself.
This works by modifying the runtime startup to check for a special signature at the end of the main executable, if it is not present, execution resumes as usual. Otherwise a directory is read from the end of the file which contains both the kind of file (assembly, configuration file, and so on), as well as pointer to the contents in the file. Then the regular Mono APIs to load resources are used to load these.This is the support that makes it so that mkbundle can create self-contained executables without requiring a native toolchain to be present. Also is the foundation to allow cross-compilation of self-contained executables.
This works by concatenating the runtime with the various dependencies and configuration files, attaching a directory at the end of the file and a signature to flag this as a runtime that has embedded resources in the executable file itself.
This works by modifying the runtime startup to check for a special signature at the end of the main executable, if it is not present, execution resumes as usual. Otherwise a directory is read from the end of the file which contains both the kind of file (assembly, configuration file, and so on), as well as pointer to the contents in the file. Then the regular Mono APIs to load resources are used to load these.