mono.git
7 years agoMerge pull request #3171 from alexanderkyte/net_4x_mdoc_fixup
Alexander Kyte [Wed, 15 Jun 2016 14:25:28 +0000 (10:25 -0400)]
Merge pull request #3171 from alexanderkyte/net_4x_mdoc_fixup

[runtime] Fix inverted build check related to mcs docs

7 years ago[runtime] Fix inverted build check related to mcs docs
Alexander Kyte [Wed, 15 Jun 2016 14:22:50 +0000 (10:22 -0400)]
[runtime] Fix inverted build check related to mcs docs

7 years agoMerge pull request #2972 from lateralusX/jlorenss/vs2015-upgrade
João Matos [Wed, 15 Jun 2016 09:56:04 +0000 (10:56 +0100)]
Merge pull request #2972 from lateralusX/jlorenss/vs2015-upgrade

Visual Studio project/solution upgrade and enhancement.

7 years agoFix pedump build errors due to moved source file.
lateralusX [Wed, 15 Jun 2016 09:08:16 +0000 (11:08 +0200)]
Fix pedump build errors due to moved source file.

Changes done in commit 2f6e404ed1a274e942ba0325b55ce610c25a23f2 moving
pedump.c to different location cause build errors of pedump on Windows.

7 years agoReverted back to use target name for library pdb files and default
lateralusX [Wed, 15 Jun 2016 07:26:55 +0000 (09:26 +0200)]
Reverted back to use target name for library pdb files and default
naming for intermediate pdb files for exe/dll's.

All artifacts will now have the same name of their final pdb file as
the library/dll/exe target file name.

The problem with the naming turns out to be a problem in Visual Studio
when a exe/dll use the same name of its intermediate pdb files and final
pdb file. In that case the final pdb file produced by the linker will be
incorrect and not usable by the debugger. This was the reason for the initial
change, giving intermediate pdb files a different name. Moving back to the
default naming for intermediate pdb files for exe/dll's will give the same
effect (a different name) and since libraries are not affected by this
problem, libraries can use the target name for their pdb files as well.

7 years agoAdded new sources to Source Folder filter in libmonoutils.
lateralusX [Tue, 7 Jun 2016 11:46:34 +0000 (13:46 +0200)]
Added new sources to Source Folder filter in libmonoutils.

7 years agoDisable build of boehm GC on Windows x64.
lateralusX [Thu, 2 Jun 2016 14:37:54 +0000 (16:37 +0200)]
Disable build of boehm GC on Windows x64.

7 years agoAdded support to select static or dynamic c-runtime based on user property.
lateralusX [Thu, 2 Jun 2016 10:55:41 +0000 (12:55 +0200)]
Added support to select static or dynamic c-runtime based on user property.
All projects will inherit the RuntimeLibrary from mono.props where it now
can be controlled using a user property, MONO_USE_STATIC_C_RUNTIME.

7 years agoFixed .bat file to handle xcopy command not in path.
lateralusX [Thu, 2 Jun 2016 09:34:15 +0000 (11:34 +0200)]
Fixed .bat file to handle xcopy command not in path.

Also added support to not always replace config.h/version.h since that triggers
unnecessary rebuilds during development. New script will check if there is
an actual difference in the config.h/version.h file before doing the copy.

7 years agoAdded support to split GC builds into different build folders.
lateralusX [Mon, 9 May 2016 14:27:22 +0000 (16:27 +0200)]
Added support to split GC builds into different build folders.

7 years agoAdded files to corresponding filter folders (header files/source files).
lateralusX [Wed, 4 May 2016 13:12:36 +0000 (15:12 +0200)]
Added files to corresponding filter folders (header files/source files).

7 years agoFixes to default build/distribution location.
lateralusX [Wed, 4 May 2016 12:53:29 +0000 (14:53 +0200)]
Fixes to default build/distribution location.

7 years agoAdded additional build dependecies + setting up source availabilty depending on platform.
lateralusX [Wed, 4 May 2016 07:12:45 +0000 (09:12 +0200)]
Added additional build dependecies + setting up source availabilty depending on platform.

7 years agoAdded support for 64 toolchain + default log level masks.
lateralusX [Mon, 25 Apr 2016 14:34:57 +0000 (16:34 +0200)]
Added support for 64 toolchain + default log level masks.

7 years agoAdded regression tests as visual studio projects.
lateralusX [Fri, 15 Apr 2016 12:46:46 +0000 (14:46 +0200)]
Added regression tests as visual studio projects.

* Added regression test running mono/mini --regression [regression_tests]
* Added regression test running mono/mini --aot [regression_tests]
* Added default debugging options to run regression tests from within visual studio debugger.
* On new build system, setting up include folder if not availalble.

All changes applies to debug/release 32/64 bit.

7 years agoAdded missing include path for test projects.
lateralusX [Tue, 12 Apr 2016 16:11:13 +0000 (18:11 +0200)]
Added missing include path for test projects.

On a clean system there was a missing include path for some of the embedded samples.

7 years agoAdded regression test project.
lateralusX [Tue, 12 Apr 2016 12:16:14 +0000 (14:16 +0200)]
Added regression test project.

* Updated vs project files to resolve winsock, winsock2 build dependecies.
* Added vs project running basic mono-mini regression tests.

7 years agoAdded suffix to intermediate build .pdb files in order to avoid potential naming...
lateralusX [Tue, 12 Apr 2016 12:16:01 +0000 (14:16 +0200)]
Added suffix to intermediate build .pdb files in order to avoid potential naming conflicts when linking.

7 years agoAdded support for optional target build suffix.
lateralusX [Tue, 12 Apr 2016 12:15:29 +0000 (14:15 +0200)]
Added support for optional target build suffix.

7 years agoBetter property manager and user macros support.
lateralusX [Tue, 12 Apr 2016 12:14:58 +0000 (14:14 +0200)]
Better property manager and user macros support.

* Added support for user macros in order to set build/install/sgen.
* Added support for more arguments to bat files + support for quoted paths.
* Added support for verbose/quite output in bat files.
* Moved libmono xcopy post build step into separate bat file.
* Cleaned some sgen configs still left in vcxprojs.

7 years agoSeparate build tree and target suffix support.
lateralusX [Tue, 12 Apr 2016 12:14:29 +0000 (14:14 +0200)]
Separate build tree and target suffix support.

* Enabled build target suffix in order to lable a build (primarly for sgen).
* Enabled separate build tree.
* Dropped all sgen configurations, replaced by properties and target suffix.
* Fixed pdb naming of intermediate pdb files.

7 years agoRestructured build/package/install targets and split GC libraries.
lateralusX [Tue, 12 Apr 2016 12:13:03 +0000 (14:13 +0200)]
Restructured build/package/install targets and split GC libraries.

* Added package/install targets.
* Moved sgen into separate library.
* SGEN set as default GC for build (used GC controlled through mono.props).

7 years agoRefactored VS depdencies + restructring VS solution and projects.
lateralusX [Tue, 12 Apr 2016 12:11:36 +0000 (14:11 +0200)]
Refactored VS depdencies + restructring VS solution and projects.

7 years agoUpgrade to vs2015 for native projects.
lateralusX [Tue, 12 Apr 2016 12:10:35 +0000 (14:10 +0200)]
Upgrade to vs2015 for native projects.

* Upgraded all projects to new vs2015 tool chain.
* Used mono.props through property manager instead of import.
* Fixed dependencies to be more explicitly in additional dependecies.
* Fixed error in mono.props, switched $ to % when referencing internal variables.
* Added property variables for includes and libraries, defined in mono.props.

7 years ago[mkbundle] Improve error checking
Miguel de Icaza [Wed, 15 Jun 2016 06:25:23 +0000 (23:25 -0700)]
[mkbundle] Improve error checking

7 years ago[main] replace computed value by a constant
Miguel de Icaza [Wed, 15 Jun 2016 06:24:48 +0000 (23:24 -0700)]
[main] replace computed value by a constant

The reason why mkbundle is not working is that for some reason
this constant expression is producing different code than the
-24 that it is supposed to.

What is odd is that the return value from the lseek system
call is the same, but yet, read fails with an end-of-file with
this value, and otherwise it passes.

With this call:

     lseek (fd, -(16+sizeof(uint64_t)), SEEK_END)

strace displays:

lseek(0x3, 0xFFFFFFE8, 0x2)  = 19375512 0

With this call:

     lseek (fd, -24, SEEK_END)

strace displays:

lseek(0x3, 0xFFFFFFFFFFFFFFE8, 0x2)  = 19375512 0

Now, while both results from lseek are the same, a subsequent read
with 24 bytes to read returns zero on the former case, and 24 on
the latter case.

7 years ago[mcs] Use $(RESGEN) instead of resgen
Alexander Köplinger [Wed, 15 Jun 2016 01:12:02 +0000 (03:12 +0200)]
[mcs] Use $(RESGEN) instead of resgen

It broke the .deb package build

7 years agoMerge pull request #3168 from alexanderkyte/default_4_x_preset
Alexander Köplinger [Tue, 14 Jun 2016 23:16:49 +0000 (01:16 +0200)]
Merge pull request #3168 from alexanderkyte/default_4_x_preset

[runtime] Make the default preset only build net_4_x

7 years ago[runtime] Make the default preset only build net_4_x
Alexander Kyte [Tue, 14 Jun 2016 23:00:14 +0000 (19:00 -0400)]
[runtime] Make the default preset only build net_4_x

7 years agoMerge pull request #3089 from alexanderkyte/mobile_static_jenkins_script
Alexander Kyte [Tue, 14 Jun 2016 22:24:26 +0000 (18:24 -0400)]
Merge pull request #3089 from alexanderkyte/mobile_static_jenkins_script

[mobile_static] Update jenkins build script for mobile_static profile

7 years ago[runtime] [runtime] Fix the printing of unhandled exceptions in coop.
Zoltan Varga [Tue, 14 Jun 2016 22:06:54 +0000 (18:06 -0400)]
[runtime] [runtime] Fix the printing of unhandled exceptions in coop.

7 years ago[runtime] Return after setting the error in mono_jit_runtime_invoke (), otherwise...
Zoltan Varga [Tue, 14 Jun 2016 22:06:20 +0000 (18:06 -0400)]
[runtime] Return after setting the error in mono_jit_runtime_invoke (), otherwise mono_value_box_checked () initializes it again.

7 years agoWIP [library.make] Make resource usage declarative in the class libraries (#3159)
Miguel de Icaza [Tue, 14 Jun 2016 20:57:09 +0000 (13:57 -0700)]
WIP [library.make] Make resource usage declarative in the class libraries (#3159)

[library.make] Make resource usage declarative in the class libraries

7 years ago[jit] Set the 'real_offset' field of bblocks in mono_replace_ins (), the EH code...
Zoltan Varga [Tue, 14 Jun 2016 19:36:44 +0000 (15:36 -0400)]
[jit] Set the 'real_offset' field of bblocks in mono_replace_ins (), the EH code generator in llvm depends on it being set.

7 years agoMerge pull request #3165 from akoeplinger/fix-clock-monotonic-macos1012
Alexander Köplinger [Tue, 14 Jun 2016 17:08:11 +0000 (19:08 +0200)]
Merge pull request #3165 from akoeplinger/fix-clock-monotonic-macos1012

[utils] Work around CLOCK_MONOTONIC being defined on macOS 10.12 SDK despite targeting earlier releases

7 years ago[mcs] Support System.Object forwarded to any assembly in any references order
Marek Safar [Tue, 14 Jun 2016 17:02:52 +0000 (19:02 +0200)]
[mcs] Support System.Object forwarded to any assembly in any references order

7 years ago[utils] Work around CLOCK_MONOTONIC being defined on macOS 10.12 SDK despite targetin...
Alexander Köplinger [Tue, 14 Jun 2016 14:39:41 +0000 (16:39 +0200)]
[utils] Work around CLOCK_MONOTONIC being defined on macOS 10.12 SDK despite targeting earlier releases

Should fix https://bugzilla.xamarin.com/show_bug.cgi?id=41786

7 years agoMerge pull request #3162 from alexanderkyte/ignore_pkits
Alexander Kyte [Mon, 13 Jun 2016 20:06:28 +0000 (16:06 -0400)]
Merge pull request #3162 from alexanderkyte/ignore_pkits

[mobile_static] Skip PKITS tests on mobile_static due to missing

7 years ago[coop] Protect copy_stack_data from GCC optimizations. (#3157)
Aleksey Kliger (λgeek) [Mon, 13 Jun 2016 19:58:44 +0000 (15:58 -0400)]
[coop] Protect copy_stack_data from GCC optimizations. (#3157)

[coop] Protect copy_stack_data from GCC optimizations.

GCC 5.3.1 (Debian sid/amd64) "optimizied" the previous incarnation of
`void *stackdata_end = return_stack_ptr ()` to
`void *stackdata_end = 0`.

7 years ago[mobile_static] Make bitcode preset enable llvm
Alexander Kyte [Tue, 7 Jun 2016 20:58:25 +0000 (16:58 -0400)]
[mobile_static] Make bitcode preset enable llvm

7 years ago[mobile_static] Skip PKITS tests on mobile_static due to missing
Alexander Kyte [Wed, 8 Jun 2016 15:47:19 +0000 (11:47 -0400)]
[mobile_static] Skip PKITS tests on mobile_static due to missing
fixtures

7 years agoMerge pull request #3160 from JustArchi/patch-1
Bernhard Urban [Mon, 13 Jun 2016 16:56:27 +0000 (09:56 -0700)]
Merge pull request #3160 from JustArchi/patch-1

SGen: Fix parsing of default-allowance-ratio

7 years ago[runtime] Rename the net_4_x runtime preset to all
Alexander Kyte [Mon, 13 Jun 2016 15:33:53 +0000 (11:33 -0400)]
[runtime] Rename the net_4_x runtime preset to all

7 years ago[runtime] Keep one-off jenkins disabling in script
Alexander Kyte [Tue, 7 Jun 2016 17:27:24 +0000 (13:27 -0400)]
[runtime] Keep one-off jenkins disabling in script

7 years ago[runtime] Allow presets to disable runtime features
Alexander Kyte [Tue, 7 Jun 2016 17:13:55 +0000 (13:13 -0400)]
[runtime] Allow presets to disable runtime features

7 years ago[mobile_static] Update reported FX version to 4.x
Alexander Kyte [Tue, 7 Jun 2016 16:56:37 +0000 (12:56 -0400)]
[mobile_static] Update reported FX version to 4.x

7 years ago[mobile_static] Set default value for disabling MCS docs
Alexander Kyte [Thu, 2 Jun 2016 21:46:27 +0000 (17:46 -0400)]
[mobile_static] Set default value for disabling MCS docs

7 years ago[mobile_static] Split jenkins tests out, enable running from top level
Alexander Kyte [Thu, 2 Jun 2016 19:17:40 +0000 (15:17 -0400)]
[mobile_static] Split jenkins tests out, enable running from top level

7 years ago[runtime] Make cooperative gc default on our bitcode profile
Alexander Kyte [Thu, 2 Jun 2016 18:38:40 +0000 (14:38 -0400)]
[runtime] Make cooperative gc default on our bitcode profile

7 years ago[mobile_static] Use runtime_preset configuration option
Alexander Kyte [Thu, 2 Jun 2016 19:18:46 +0000 (15:18 -0400)]
[mobile_static] Use runtime_preset configuration option

7 years ago[mobile_static] Disable NLS by default on OSX
Alexander Kyte [Thu, 2 Jun 2016 16:35:33 +0000 (12:35 -0400)]
[mobile_static] Disable NLS by default on OSX

7 years ago[mobile_static] Added in runtime_profile autoconf flag, make set
Alexander Kyte [Thu, 2 Jun 2016 16:31:43 +0000 (12:31 -0400)]
[mobile_static] Added in runtime_profile autoconf flag, make set
defaults

7 years ago[mobile_static] Make mobile_static default profile when building with it
Alexander Kyte [Wed, 25 May 2016 18:54:46 +0000 (14:54 -0400)]
[mobile_static] Make mobile_static default profile when building with it

When building a mobile_static build, we need to pass a lot of flags
which disable features. These make the net_4_x profile not build
correctly when using the official jenkins script. This helps.

7 years ago[mobile_static] Fix configure.ac handling of with_profile4_x option
Alexander Kyte [Wed, 25 May 2016 18:54:20 +0000 (14:54 -0400)]
[mobile_static] Fix configure.ac handling of with_profile4_x option

7 years ago[runtime] Specialize run-jenkins script for mobile_static when it runs
Alexander Kyte [Tue, 24 May 2016 21:19:03 +0000 (17:19 -0400)]
[runtime] Specialize run-jenkins script for mobile_static when it runs

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

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

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

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

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

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

7 years agoSGen: Fix parsing of default-allowance-ratio
Łukasz Domeradzki [Mon, 13 Jun 2016 03:28:22 +0000 (05:28 +0200)]
SGen: Fix parsing of default-allowance-ratio

Parsing ```default-allowance-ratio``` in ```MONO_GC_PARAMS``` is completely broken and accepts only one value - 1.0, while it should accept range of 1.0-10.0. We can clearly notice that when setting ```default-allowance-ratio``` to e.g. ```2.0``` and trying to run any program through Mono runtime:

```
Warning: In environment variable `MONO_GC_PARAMS': `default-allowance-ratio` must be between 1.00 - 1.00. - Using default value.
```

Therefore, correct this for using proper 1.0-10.0 range.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fix recursive property call in MonoSslStreamImpl

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

[linker] Add MonoMethodMessage::InitMessage to mscorlib descriptor

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

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

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

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

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

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

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

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

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

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

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

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

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

[System] Fix HttpListenerRequestTest.HttpRequestIsLocal intermittently failing

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

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

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

* Add missing file.

* [runtime] Mark mono_opcodes[] with MONO_API.

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

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

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

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

[runtime] Fixed interruptible wapi_sendfile part2.

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

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

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

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

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

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

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

[mini] lower typechecks later

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

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

Rewriite `MonoMethodMessage::InitMessage` in managed code

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Using mono_marshal_free n mono_string_builder_to_utf8

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

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

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