Nikolay Sivov [Wed, 14 Aug 2019 21:55:54 +0000 (00:55 +0300)]
[cominterop] Fix copy-paste error in ComVisibleAttribute testing helper.
This type was introduced with mono/mono@
29a95bafd87830c430432546af4bf7076ba5542f.
Commit migrated from https://github.com/mono/mono/commit/
5b66d3d5187906d708fd9c22e67e5581f117bb37
Thays Grazia [Wed, 14 Aug 2019 22:51:42 +0000 (19:51 -0300)]
Enable and document debug with sdb with netcore config.
Commit migrated from https://github.com/mono/mono/commit/
dcfec3966c027c4a9411b34138a530839b2b9889
Jay Krell [Wed, 14 Aug 2019 23:07:56 +0000 (16:07 -0700)]
Remove ampersand from cfg->error per old agreement. (mono/mono#16219)
Commit migrated from https://github.com/mono/mono/commit/
2463605f01643e21753cb73874ae683457280d77
Vlad Brezae [Wed, 14 Aug 2019 21:18:45 +0000 (00:18 +0300)]
[interp] Fix icall signature (mono/mono#16227)
Commit migrated from https://github.com/mono/mono/commit/
4e793ad30c24b30097ba3e9865799b6d9e7e0390
Jo Shields [Wed, 14 Aug 2019 20:58:07 +0000 (16:58 -0400)]
Fix linking of OS-provided zlib (mono/mono#16177)
* Fix linking of OS-provided zlib
This is a reduced version of https://github.com/mono/mono/pull/16091
without the Z_PREFIX stuff
* Get rid of HAVE_ZLIB, be explicit about HAVE_SYS_ZLIB vs HAVE_STATIC_ZLIB
* Proposed fixes from Alex
Commit migrated from https://github.com/mono/mono/commit/
f2d813c90df3a6c4d15eab240b0a68ec055c8f5b
Aleksey Kliger (λgeek) [Wed, 14 Aug 2019 19:07:26 +0000 (15:07 -0400)]
[metadata] Create strongly typed versions of mono_assembly_request_prepare (mono/mono#16094)
* [metadata] Create strongly typed versions of mono_assembly_request_prepare
Addresses the family of issues similar to Coverity mono/mono#1443346.
This came up as part of the Coverity review, and Coverity notices that this is
writting beyond the end of the structure. While this is correct, this requires
that the idiom be properly followed - that is, that the structure being passed
is of the given size.
Replaced instead with a method that eliminates the room for error with methods
that will initialize the whole structure, and the actual size computation is
done inside the method with the proper type sizes.
While I used methods, I feel that this should use macros.
Commit migrated from https://github.com/mono/mono/commit/
ce92c4376f31e9caf964938a3899d179bdc97e51
Egor Bogatov [Wed, 14 Aug 2019 10:59:00 +0000 (13:59 +0300)]
ignore stacktrace tests
Commit migrated from https://github.com/mono/mono/commit/
abb43f9361192c26ce2355a1f254852efd07abbf
Jay Krell [Wed, 14 Aug 2019 10:34:54 +0000 (03:34 -0700)]
[interp] Reduce frame size by partially outlining load remote field. (mono/mono#16196)
Extracted from https://github.com/mono/mono/pull/16171.
Ultimately over 100 bytes can be saved.
Tactically not outlined or indirected:
vt_sp change
ip advancement
error handling
Also partially fixes the error reuse from https://github.com/mono/mono/pull/16190.
Commit migrated from https://github.com/mono/mono/commit/
d1c0974e46bf0edd5f337e72b6032e903d90b703
Jay Krell [Wed, 14 Aug 2019 10:33:58 +0000 (03:33 -0700)]
Make small_id_mutex not recursive. (mono/mono#15485)
(Later non-recursive Windows mutexes should be SRWLOCK and only statically initialized.)
Commit migrated from https://github.com/mono/mono/commit/
60ac98ee29d267646629bc39558f44e4e5af8b4e
Jay Krell [Wed, 14 Aug 2019 10:28:00 +0000 (03:28 -0700)]
Use ERROR_DECL. (mono/mono#16220)
Commit migrated from https://github.com/mono/mono/commit/
8c5d0a790e4677150c71fc58949f0420e1a50cf1
Jay Krell [Wed, 14 Aug 2019 10:27:22 +0000 (03:27 -0700)]
[interp] Remove address-taking of vt_sp. (mono/mono#16215)
Theoretically could help reduce frame size but it has not been seen to.
Commit migrated from https://github.com/mono/mono/commit/
74b0d01e07c01d0bbc40c2b80ca4d007b037270a
Jay Krell [Wed, 14 Aug 2019 10:25:44 +0000 (03:25 -0700)]
[interp] Outline `mono_interp_calli_nat_dynamic_pinvoke` to reduce stack. (mono/mono#16201)
Now that we have that function, also change from malloc to alloca.
This is part of mono/mono#16171 and ultimately over 100 bytes were saved.
Commit migrated from https://github.com/mono/mono/commit/
4c17442dc31553109a8792e0f6d32221392d798c
Jay Krell [Wed, 14 Aug 2019 10:24:50 +0000 (03:24 -0700)]
Completely replace mono_error_ok with is_ok and make first external_only. (mono/mono#16217)
Commit migrated from https://github.com/mono/mono/commit/
136205ab45ca3fe01c49a321103e1563885c8da1
Jay Krell [Wed, 14 Aug 2019 10:22:40 +0000 (03:22 -0700)]
Skip degenerate qsort: num < 2, size == 0, base == 0 (mono/mono#16016)
Fixes https://github.com/mono/mono/issues/15994
Some is redundant for some qsort implementations.
Commit migrated from https://github.com/mono/mono/commit/
12de10007cf9a2973452c9cf2df36692808fefb6
Jay Krell [Wed, 14 Aug 2019 10:19:08 +0000 (03:19 -0700)]
Fix warning LNK4221 warning in assembly-load-context.obj (mono/mono#16004)
LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
Commit migrated from https://github.com/mono/mono/commit/
6873d5370d78c2385aa5a1782fed5fc9bd7d36f4
Jay Krell [Wed, 14 Aug 2019 10:17:23 +0000 (03:17 -0700)]
[interp] Outline `get_virtual_method_fast` to save 16 bytes of stack. (mono/mono#16198)
Ultimately over 100 bytes are savable in a few steps.
Commit migrated from https://github.com/mono/mono/commit/
9123ac0197071f084f463899f082e44cd5722e08
Jay Krell [Wed, 14 Aug 2019 10:17:01 +0000 (03:17 -0700)]
[interp] Outline `set_resume_state` to conserve stack in main interpreter loop (mono/mono#16200)
This is not intuitive but I definitely saw it.
Commit migrated from https://github.com/mono/mono/commit/
dbf13301c8bb48982da0a1021619631d1c52c0db
Thays Grazia [Wed, 14 Aug 2019 01:47:28 +0000 (22:47 -0300)]
[debugger] Debugger tries to execute a single step when the thread is already terminated (mono/mono#16208)
* Debugger tries to execute a single step when the thread is already terminated.
* Fixing how to get thread tls.
Commit migrated from https://github.com/mono/mono/commit/
f812d90fa1b62590169f9d12e4aae76ea76b1387
Aleksey Kliger (λgeek) [Tue, 13 Aug 2019 19:16:05 +0000 (15:16 -0400)]
[runtime] Initialize thread suspend policy at startup, inline getter (mono/mono#16149)
* [runtime] Initialize thread suspend policy at startup, inline getter
On some benchmarks we saw mono_threads_suspend_policy() using a lot of CPU
time.
Rather than doing an init-on-first-use, initialize the policy once upfront when
the JIT it starting up and make the getter method static inline.
* move mono_threads_suspend_policy_init into mono_thread_info_init
* [mini] Initialize suspend policy for `mono --version`
Need to initialize the suspend policy before printing its name. Otherwise the
suspend policy is unset since no other runtime initialization is done for `--version`.
Commit migrated from https://github.com/mono/mono/commit/
592de53a1f687d115fef86978e56a7fe7b4340c2
Alexander Köplinger [Tue, 13 Aug 2019 14:41:03 +0000 (16:41 +0200)]
[netcore] Cleanup System.Private.CoreLib.csproj (mono/mono#16199)
- The eng/Versions.props was already imported by the arcade targets causing a double-import warning:
> warning MSB4011: "/Users/alexander/dev/mono/eng/Versions.props" cannot be imported again. It was already imported at "/Users/alexander/.nuget/packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19379.1/tools/DefaultVersions.props (17,3)". This is most likely a build authoring error. This subsequent import will be ignored.
- Remove BaseAddress and TRACE from the project file, this was done upstream at https://github.com/dotnet/coreclr/commit/mono/mono@
bc430cdd2010bf7790854a60380d00c506c346a6
- Remove unecessary DebugSymbols/DebugType settings, we already set them in the global PropertyGroup
Commit migrated from https://github.com/mono/mono/commit/
ff77b427f4f0c9ef7f926a302564ee239619e471
Aleksey Kliger (λgeek) [Tue, 13 Aug 2019 13:31:31 +0000 (09:31 -0400)]
[sre] Outline typebuilder_setup_fields loop body (mono/mono#16184)
The loop body uses coop handles, so wrap it in HANDLE_FUNCTION_ENTER/HANDLE_FUNCTION_RETURN
Commit migrated from https://github.com/mono/mono/commit/
1f4ac5d767570b5c4c73ce75b6c9c49bfcb5fc56
Jay Krell [Tue, 13 Aug 2019 13:30:28 +0000 (06:30 -0700)]
[interp] Replace `mono_error_ok` with `is_ok`. (mono/mono#16193)
The locally unknown function, despite being small/fast, forces saving values in stack and nonvolatile registers
around calling it.
Both nonvolatile registers and stack are at a premium here, whereas usually stack is cheap.
The macro is just a read from offset 0 and checking for zero.
Commit migrated from https://github.com/mono/mono/commit/
ef199425a2867b20695cb1c4e6df4b699dd8891a
Egor Bogatov [Mon, 12 Aug 2019 19:57:47 +0000 (22:57 +0300)]
[netcore] decimal should have alignment=8 (mono/mono#15666)
* Fix System.Runtime.InteropServices tests
* Update marshal.c
* Update marshal.c
* Update marshal.c
Commit migrated from https://github.com/mono/mono/commit/
c36f0a126ecb41ba44bb57e098cb6cece8124d68
Zoltan Varga [Mon, 12 Aug 2019 18:44:54 +0000 (14:44 -0400)]
Merge pull request mono/mono#16151 from spouliot/ios-intr-enable-sre
[sdk] Enable the SRE runtime code inside iOS builds
Commit migrated from https://github.com/mono/mono/commit/
5bc4944bf09ccf0a56a28c8e5a957d6001f51063
Aleksey Kliger (λgeek) [Mon, 12 Aug 2019 17:09:59 +0000 (13:09 -0400)]
[interp] Fix stub_get_resume_state write to out parameter (mono/mono#16145)
Addresses Coverity CID 1452245
Commit migrated from https://github.com/mono/mono/commit/
ad64c781eba4e9fcbf104a64828cdf7fc1d910a3
Ryan Lucia [Mon, 12 Aug 2019 15:46:12 +0000 (11:46 -0400)]
[netcore] Pass MONO_ASMCTX_LOADFROM on LoadFrom calls (mono/mono#16075)
Commit migrated from https://github.com/mono/mono/commit/
cadd114f6435e732d532733cd92db49c11fabc6c
Ankit Jain [Mon, 12 Aug 2019 15:03:13 +0000 (11:03 -0400)]
[msbuild] Bump to track xplat-master and update roslyn (mono/mono#16155)
Prompted by mono/msbuildmono/mono#126:
This includes:
- merge mono-2019-06
- SDK update to track dotnet release/3.0.100-preview8
- Roslyn updated to 3.3.0-beta2-19381-14
Commit migrated from https://github.com/mono/mono/commit/
c028454befe4ab6f9bf59f90e4136fc197014216
Aleksey Kliger (λgeek) [Mon, 12 Aug 2019 13:50:58 +0000 (09:50 -0400)]
[debugger] Cleanup MonoError on in isFixedSizeArray (mono/mono#16146)
Cleanup MonoError on error paths. Also change `return FALSE` to `return 0`.
Addresses Coverity CID 1452205
Commit migrated from https://github.com/mono/mono/commit/
dd3f6e0d31a055f616e42561383e0365c8fc6e4c
Nikolay Sivov [Mon, 12 Aug 2019 10:42:59 +0000 (13:42 +0300)]
[mono] Fix some compiler warnings (mono/mono#16159)
* [mini] Remove unused variables.
* [mini] Remove unused function.
Single call site is conditionally compiled.
* [sgen] Remove unused variable.
* [utils] Fix misleading indentation warnings.
Commit migrated from https://github.com/mono/mono/commit/
612e0644b6a183d15e66a3761d995b5f8b837d4b
Jay Krell [Mon, 12 Aug 2019 10:35:30 +0000 (03:35 -0700)]
[remoting+interp] [remoting+debugger] Fix use of dangling local. (mono/mono#16173)
Commit migrated from https://github.com/mono/mono/commit/
c70b4cc3cc8ef19b9b5c25a96ad23421d1b65175
Jay Krell [Mon, 12 Aug 2019 10:34:46 +0000 (03:34 -0700)]
[interp] Remove unnecessary loops, that optimizer might handle. (mono/mono#16169)
Commit migrated from https://github.com/mono/mono/commit/
4e5544f02de02eb72df30c3a94cc650c3768ad0d
Vincent Povirk [Mon, 12 Aug 2019 10:05:05 +0000 (05:05 -0500)]
[w32process-win32] Don't duplicate CreateProcess search logic. (mono/mono#16156)
When given a null application name, CreateProcess already
searches the path and appends .exe in some cases. .NET's
Process class behaves in the same way (see
https://github.com/mono/mono/pull/16089#issuecomment-
519984244).
The duplicated logic is unnecessary and broken in several ways.
Failures are ignored and the command line arguments are
executed. Relative paths are expected not to end in "exe".
Many corner cases work differently from .NET and CreateProcess.
This change makes it impossible for process_complete_path to fail,
so I removed the gboolean return and pulled out the output
parameter. Its caller wasn't handling the return value correctly
anyway.
Commit migrated from https://github.com/mono/mono/commit/
7413bb84ec909502d922cb0b45d8d998f7e5d259
Zoltan Varga [Mon, 12 Aug 2019 02:32:01 +0000 (22:32 -0400)]
Merge pull request mono/mono#16136 from EgorBo/fix-inlining
[netcore] Fix inlining
Commit migrated from https://github.com/mono/mono/commit/
835282004ca3f466f809a7440b7e79f189cc86cc
Vlad Brezae [Fri, 9 Aug 2019 17:28:30 +0000 (20:28 +0300)]
[interp] Fix overflow of execution stack (mono/mono#16115)
We were not tracking max_stack_height for a few opcodes.
Commit migrated from https://github.com/mono/mono/commit/
b52830cf1120bdeaf693080e22b3af87e3aef9e8
Zoltan Varga [Fri, 9 Aug 2019 16:58:01 +0000 (12:58 -0400)]
Merge pull request mono/mono#16139 from steveisok/run-single-ios-sdk-test
Added the option to run a single test in the iOS SDK
Commit migrated from https://github.com/mono/mono/commit/
54c07051a8f3c633dd9392bff4adb12a8b5f03cd
Ryan Lucia [Fri, 9 Aug 2019 15:44:50 +0000 (11:44 -0400)]
[netcore] Make mono_assembly_request_prepare take an ALC (mono/mono#16061)
* Make mono_assembly_request_prepare take an ALC
* Typo
* Fix pedump
* Use default ALC
* Make v1 preload hook external-only
* Convert pedump and monodis
* fixup: use default ALC in netcore preload hook
trusted platform assemblies should be loaded into the default ALC
Commit migrated from https://github.com/mono/mono/commit/
a1bb37cd52a15184fc6b5da4d680249132421c78
Alexander Köplinger [Wed, 7 Aug 2019 18:40:10 +0000 (20:40 +0200)]
[build] Remove ILDISASM variable from platform Makefiles
It was written by configure.ac to config.make and is unused anyway.
Commit migrated from https://github.com/mono/mono/commit/
f15fe47075a5981d20c8d3d7ccff5de1be97e502
Alexander Köplinger [Wed, 7 Aug 2019 18:23:25 +0000 (20:23 +0200)]
[build] Remove EXTERNAL_MCS setting in platform Makefiles
Setting an explicit mcs is no longer supported by the rest of the build scripts.
Commit migrated from https://github.com/mono/mono/commit/
8697b31082e5f21447e46c4cf4389ec950a645a3
Egor Bogatov [Fri, 9 Aug 2019 09:55:50 +0000 (12:55 +0300)]
fix inlining
Commit migrated from https://github.com/mono/mono/commit/
a7e428d82f3042960e42a638e26afe73b1381eda
Egor Bogatov [Thu, 8 Aug 2019 16:38:39 +0000 (19:38 +0300)]
Make System.Runtime.Intrinsics.X86.*.IsSupported intrinsic
Commit migrated from https://github.com/mono/mono/commit/
7deb53514dfd0c0662c2a8a95e019b9ec6244f3d
Egor Bogatov [Thu, 8 Aug 2019 15:29:53 +0000 (18:29 +0300)]
fix minor issues
Commit migrated from https://github.com/mono/mono/commit/
9442ed95d7b781fd2562f73bbd5f4fac326f32b2
Alexis Christoforides [Fri, 9 Aug 2019 07:31:57 +0000 (10:31 +0300)]
[merp] Use a separate program as the hang supervisor. (mono/mono#15715)
* [merp] Use a separate program as the hang supervisor.
Fixes https://github.com/mono/mono/issues/15646
macOS does not like signals being sent from the forked supervisor process, possibly towards anywhere but definitely when sent to the parent process. The following message is currently spewed after the supervisor process attempting to send a SIGSEGV to a hanged Mono process:
"The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec()."
We follow that direction and introduce a new binary that, when available in the mono executable's binary directory, is used to abort the parent process for us.
Commit migrated from https://github.com/mono/mono/commit/
2c4b60fe24bfbccb3fa1553aed1065ce072343e1
Ryan Lucia [Thu, 8 Aug 2019 22:07:54 +0000 (18:07 -0400)]
[netcore] Don't return REFERENCE_MISSING in netcore_load_reference
Commit migrated from https://github.com/mono/mono/commit/
6a459c25d771dec436bb6a8785c683f6b15fe6f7
Zoltan Varga [Fri, 9 Aug 2019 07:20:03 +0000 (03:20 -0400)]
Merge pull request mono/mono#16125 from vargaz/wasm-keep-config-cache
[wasm] Add a KEEP_CONFIG_CACHE option to Make.config to avoid deleting the autoconf cache file on make clean.
Commit migrated from https://github.com/mono/mono/commit/
e71604d695f57dc39a496509dddd99f898d39eb2
Alexander Köplinger [Thu, 8 Aug 2019 22:07:41 +0000 (00:07 +0200)]
[tests] Fix accessing field of MarshalByRefObject in remoting1.cs (mono/mono#16119)
We need to copy it to a local variable first.
This was exposed by a new Roslyn optimization for String.Concat (see https://github.com/dotnet/roslyn/issues/37830).
Commit migrated from https://github.com/mono/mono/commit/
ec35e146360962d49a26d628d2254c85c5322449
Aleksey Kliger (λgeek) [Thu, 8 Aug 2019 18:06:21 +0000 (14:06 -0400)]
[perfcounter] Define mono_perfcounter_foreach even if perfcounters are disabled. (mono/mono#16100)
Fixes netcore build on win32
Commit migrated from https://github.com/mono/mono/commit/
36af44e3be4a0f73586e886b96f86ee500f8ab32
imhameed [Thu, 8 Aug 2019 00:05:55 +0000 (17:05 -0700)]
[sdb][interp] Use the interpreter's resume state to compute the IL offset in compute_frame_info. (mono/mono#15936)
[sdb][interp] Use the interpreter's resume state to compute the IL offset in compute_frame_info.
This recovers the relevant bits of the "resume state" from the interpreter and uses that to recalculate the `il_offset` for the top frame.
Fixes https://github.com/mono/mono/issues/15687.
Commit migrated from https://github.com/mono/mono/commit/
fc4d234ef61bc3150be6a3d15e8e80a6bc9fbfa5
imhameed [Wed, 7 Aug 2019 19:15:55 +0000 (12:15 -0700)]
[llvm] Explicitly check for errors when calling LegacyIRCompileLayer::addModule. (mono/mono#16082)
[llvm] Explicitly check for errors when calling LegacyIRCompileLayer::addModule.
LLVM built with LLVM_ENABLE_ASSERTIONS=On will crash if errors are not
explicitly consumed.
Commit migrated from https://github.com/mono/mono/commit/
4462f10fb66e85b66d8d5497653fdbcd2775eb93
Ryan Lucia [Wed, 7 Aug 2019 18:17:19 +0000 (14:17 -0400)]
Relax locking (mono/mono#15986)
* Remove usage of loader lock
Originally added in https://github.com/mono/mono/commit/mono/mono@
c4cbd3b700eea52c84c68c9450d80357b3be681d but no longer relevant
* Make get_agent_domain_info lock-free and relax loader lock
* Syntax errors
* Undo first commit, other than the commit message
* Fixes
Commit migrated from https://github.com/mono/mono/commit/
aece3efc9939a22e970f0d30a654bfaece61aea0
Ryan Lucia [Tue, 6 Aug 2019 18:12:59 +0000 (14:12 -0400)]
[netcore] Re-enable IsAssignableFrom test
This was fixed a while back but never removed from the exclusions
Commit migrated from https://github.com/mono/mono/commit/
dcd57151613af34b213e0bd49de70e402d19cc47
Zoltan Varga [Wed, 7 Aug 2019 15:17:12 +0000 (11:17 -0400)]
Merge pull request mono/mono#16085 from kjpou1/wasm-sdk-v0.2.0
[wasm][sdk] Bump SDK Version 0.2.0
Commit migrated from https://github.com/mono/mono/commit/
d18daefdbc9fa6ad530f1d28642f305d308cc90a
Jay Krell [Wed, 7 Aug 2019 14:40:57 +0000 (07:40 -0700)]
There is no need to zero static data, and it is racy (mono/mono#15699)
if there are multiple threads calling (unlikely).
This zeroing was made moot by mono/mono@
470354fa817716739615ff0c6cfefca42ec8b385 January 2019.
Commit migrated from https://github.com/mono/mono/commit/
e8d28feb1e7a8cb0820704aee66410f4ae13c252
Thays Grazia [Wed, 7 Aug 2019 14:06:56 +0000 (11:06 -0300)]
Allow generating DIM bitcode (mono/mono#16070)
Commit migrated from https://github.com/mono/mono/commit/
e690fb0240027d95908f1d7ffa3d401b8d1167ba
Alexander Köplinger [Wed, 7 Aug 2019 13:54:09 +0000 (15:54 +0200)]
[utils] Move MAP_ANONYMOUS check after sys/mman.h import
The flag is defined in that header on OSX. Followup to mono/mono@
2abe569ede069f172c3213a49cfb07c39c5c58dc
Commit migrated from https://github.com/mono/mono/commit/
521d4c839555a9df6d0dcade229072c7b8b9ee21
Aleksey Kliger (λgeek) [Wed, 7 Aug 2019 13:42:39 +0000 (09:42 -0400)]
[w32socket] Translate ELOOP and ENAMETOOLONG (mono/mono#16039)
Translate to WSAELOOP and WSAENAMETOOLONG, respectively.
See https://docs.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2
Addresses part of https://github.com/mono/mono/issues/16024
Commit migrated from https://github.com/mono/mono/commit/
aea457cdb3ea8217ef702e8a521e732f6f3e3693
Nikolay Sivov [Wed, 7 Aug 2019 13:05:44 +0000 (16:05 +0300)]
[trace] Improve enter/leave output formatting (mono/mono#16036)
* [trace] Use specific integer types for return value traces.
* [trace] Improve argument list formatting for ENTER lines.
Return value changes are especially visible for bools, where currently 4 bytes integers are printed.
Commit migrated from https://github.com/mono/mono/commit/
10c5e6407ec5f3f691cd65b4fe6591e05cb224aa
Nikolay Sivov [Wed, 7 Aug 2019 12:45:19 +0000 (15:45 +0300)]
[win32] Fix some compilation warnings (mono/mono#15956)
* [mini] Remove unused variable.
* [mini] Mark win32 exception handling functions static.
* [mini] Remove unused variable.
* [mini] Suppress unused function warning.
* [metadata] Fix unused function warning for Win32 build.
Commit migrated from https://github.com/mono/mono/commit/
d34381f72e0a04febdb6d6ea084377d0d635e15f
iamphi [Wed, 7 Aug 2019 12:42:57 +0000 (05:42 -0700)]
Fix compilation on OSX 10.9 (mono/mono#14411)
Found solution from:
https://github.com/eclipse/omr/issues/902#issuecomment-
288559044
Commit migrated from https://github.com/mono/mono/commit/
2abe569ede069f172c3213a49cfb07c39c5c58dc
Zoltan Varga [Wed, 7 Aug 2019 10:06:00 +0000 (06:06 -0400)]
[runtime] Fix an autoconf warning. (mono/mono#16078)
[runtime] Fix an autoconf warning.
<!--
Thank you for your Pull Request!
If you are new to contributing to Mono, please try to do your best at conforming to our coding guidelines http://www.mono-project.com/community/contributing/coding-guidelines/ but don't worry if you get something wrong. One of the project members will help you to get things landed.
Does your pull request fix any of the existing issues? Please use the following format: Fixes #issue-number
-->
Commit migrated from https://github.com/mono/mono/commit/
ba1c949a24594c65d9fca77fb13c3af09c54c16b
Vlad Brezae [Wed, 7 Aug 2019 09:47:41 +0000 (12:47 +0300)]
[interp] Fix DEBUG_INTERP build (mono/mono#16057)
Commit migrated from https://github.com/mono/mono/commit/
e702e8286fc3a7267fdd9eda572b0539446701cc
Marek Safar [Wed, 7 Aug 2019 06:54:49 +0000 (08:54 +0200)]
Remove code moved to shared partition
Commit migrated from https://github.com/mono/mono/commit/
25b84915e180d6721d6e2dd87585e366a61ca9ec
Ryan Lucia [Tue, 6 Aug 2019 17:22:45 +0000 (13:22 -0400)]
[netcore] Set flag for processor arch when parsing assembly names
Commit migrated from https://github.com/mono/mono/commit/
022fc4ea3798f6c8e56a9c888e27c0bcc562245c
Bernhard Urban [Tue, 6 Aug 2019 22:25:51 +0000 (00:25 +0200)]
[arm] respect I1 and I2 on gsharedvt out transition (mono/mono#16000)
[arm] respect I1 and I2 on gsharedvt out transition
In order to trigger the problem, we must call into gsharedvt code ("in" transition) and then escape the gsharedvt world ("out" transition). The bug happens in the latter. Also some other stars need to align (I haven't fully understood it), thus the repro is quite long.
The provided repro only triggers with LLVM, which we don't have enabled on CI yet: https://github.com/mono/mono/issues/15999
Fixes https://github.com/mono/mono/issues/15261
Fixes https://github.com/mono/mono/issues/15262
Fixes https://github.com/mono/mono/issues/15263
Fixes https://github.com/mono/mono/issues/15307
Commit migrated from https://github.com/mono/mono/commit/
fe0f311a848068ab2d17a9b9dd15326e5712d520
Zoltan Varga [Tue, 6 Aug 2019 21:57:22 +0000 (17:57 -0400)]
Merge pull request mono/mono#16071 from vargaz/wasm-xunit-3
[wasm] More xunit fixes.
Commit migrated from https://github.com/mono/mono/commit/
add830f9cbffc7a531a744baf76211e4300193ab
Zoltan Varga [Sun, 4 Aug 2019 21:50:54 +0000 (17:50 -0400)]
[wasm] Compile interp.c with -mllvm -join-liveintervals=false to fix compilation times.
Commit migrated from https://github.com/mono/mono/commit/
476af240d242b557ea82723f601795697fffb2e5
Jay Krell [Tue, 6 Aug 2019 19:26:55 +0000 (12:26 -0700)]
[Coop] Convert mono_object_isinst_icall. (mono/mono#15963)
Commit migrated from https://github.com/mono/mono/commit/
9bf703b031bf81fa621c3d2318a4fc4333b80d3b
coypoop [Tue, 6 Aug 2019 18:32:38 +0000 (18:32 +0000)]
Update NetBSD support (mono/mono#15938)
Based on the FreeBSD variation.
Needs some additional changes I'm still ironing out.
Commit migrated from https://github.com/mono/mono/commit/
5a4283d1b3d0dc4dacac97cd56326179324fde78
Ryan Lucia [Tue, 6 Aug 2019 18:08:18 +0000 (14:08 -0400)]
[netcore] Update test exclusions to reflect ALC work (mono/mono#16059)
Commit migrated from https://github.com/mono/mono/commit/
64bf7ef9db3db3d4ed27a3809bc7b98e9322208a
Zoltan Varga [Tue, 6 Aug 2019 13:49:28 +0000 (09:49 -0400)]
[netcore] Avoid calling load hooks during AOT.
Fixes https://github.com/mono/mono/issues/16046.
Commit migrated from https://github.com/mono/mono/commit/
3c88e9f251684c46ca07286a9637a2e5266eec15
Zoltan Varga [Tue, 6 Aug 2019 16:53:44 +0000 (12:53 -0400)]
Merge pull request mono/mono#16058 from vargaz/wasm-requests-2
[wasm] Update WASM-REQUESTS.md.
Commit migrated from https://github.com/mono/mono/commit/
662b72f913db6e7e8a3f51540a6c8361e188763f
Ryan Lucia [Tue, 6 Aug 2019 10:16:15 +0000 (06:16 -0400)]
[netcore] Make the load hook ALC-aware (mono/mono#16012)
The meat of this PR is what the title suggests, and with this commit all the basic ALC functionality should be working properly. Probably worth checking if this makes any new tests pass.
Additionally, this PR includes a second commit that switches over the search hook to use loaded_assemblies from the ALCs. This may break some existing tests due to remaining unimplemented ALC behavior, notably the native loading mechanism needed for Openssl in some of the cryptography tests. My inclination is to include the commit regardless and just disable the failing tests so that any future ALC work can watch for regressions in the loader, but I would appreciate input from steveisok on how important those tests are. I've not disabled anything yet in order to see exactly what new failures are introduced.
Commit migrated from https://github.com/mono/mono/commit/
85296ef1be7bb34c1c92953ca66a026e5dcd0771
Jay Krell [Tue, 6 Aug 2019 10:14:38 +0000 (03:14 -0700)]
UWP now allows LoadLibrary. (mono/mono#16015)
Commit migrated from https://github.com/mono/mono/commit/
474092add6c0c9f41ff3724485d3d05be48b4c5f
Zoltan Varga [Tue, 6 Aug 2019 01:04:44 +0000 (21:04 -0400)]
Merge pull request mono/mono#16006 from vargaz/as-gsharedvt
[jit] Avoid asserting on Unsafe.As<T> in gsharedvt methods.
Commit migrated from https://github.com/mono/mono/commit/
9b4bc613e4193441c041f7f33e4da668da75b9b1
Jo Shields [Mon, 5 Aug 2019 19:31:47 +0000 (15:31 -0400)]
Bump version to 6.7 (mono/mono#16031)
* Bump version to 6.7
Commit migrated from https://github.com/mono/mono/commit/
c8c52f7e9f75113a8fcaa58397496a3423b47e58
Zoltan Varga [Mon, 5 Aug 2019 15:13:40 +0000 (11:13 -0400)]
[netcore] ifdef out unused icalls/files. (mono/mono#16009)
* [netcore] ifdef out unused icalls/files.
* Add MONO_EMPTY_SOURCE_FILE.
Commit migrated from https://github.com/mono/mono/commit/
93a6bc31511decdf93357e78fb2a1a14bf7c76c1
Zoltan Varga [Sun, 4 Aug 2019 21:05:59 +0000 (17:05 -0400)]
Merge pull request mono/mono#15640 from vargaz/wasm-xunit
Add beginnings of support for running xunit tests.
Commit migrated from https://github.com/mono/mono/commit/
17b35dc4fc96144e19078a5fca965cb8c4c75805
Zoltan Varga [Sat, 3 Aug 2019 19:06:55 +0000 (15:06 -0400)]
[jit] Avoid asserting on Unsafe.As<T> in gsharedvt methods.
Fixes https://github.com/mono/mono/issues/15992.
Commit migrated from https://github.com/mono/mono/commit/
60bfa99043e0112a4d30ebccd5c9f800d0cc101a
Egor Bogatov [Sat, 3 Aug 2019 18:49:38 +0000 (21:49 +0300)]
[netcore] Minor fixes around System.Reflection (mono/mono#15905)
* Minor fixes
* Update HelloWorld.csproj
Commit migrated from https://github.com/mono/mono/commit/
e08bddaa63bd117fad4fe6b99d41e272689adf97
Ryan Lucia [Sat, 3 Aug 2019 18:47:38 +0000 (14:47 -0400)]
[netcore] Enable ALC loaded_assemblies (mono/mono#15850)
* Typo
* Enable loaded_assemblies and lock
* Make mono_domain_assembly_open_internal ALC-aware
* Populate loaded_assemblies
Switch from prepend to append
* Some notes
* Exclude add_assembly_to_alc on non-netcore
* Cleanup appdomain.c
* Remove mono_alc_cleanup for now
* Update comment
* Disable using loaded_assemblies in the search hook
* Adjust alc cleanup
Commit migrated from https://github.com/mono/mono/commit/
848811e4b26519ce62672886813f6eb73d572be5
Zoltan Varga [Sat, 3 Aug 2019 16:00:46 +0000 (12:00 -0400)]
Remove error_init from native icall wrappers since managed does it. (mono/mono#15943)
Preferable would be native only, i.e. for interpreter and for when
it is actually unused, but ok for now.
Between removing the managed and the native, managed is preserved
in case there uses of MonoError in C# other than icall wrappers.
Keep them safe.
But again ideally move it to native and remove the managed type,
pending debugging WebAssembly failure doing so.
Commit migrated from https://github.com/mono/mono/commit/
9da563509e7d6f0e05d0c9f14dc949dc182567df
Jb Evain [Sat, 3 Aug 2019 15:59:25 +0000 (08:59 -0700)]
Fix usage of mono_debug_get_seq_points to avoid leaks (mono/mono#15977)
Commit migrated from https://github.com/mono/mono/commit/
283c0557d376a7c680cfe5993d1ea872391bbf99
imhameed [Sat, 3 Aug 2019 15:58:40 +0000 (08:58 -0700)]
[llvm] Add support for JIT + LLVM 9.0. (mono/mono#15997)
* [llvm] Add support for llvm 9.0.
Works with this branch:
https://github.com/mono/llvm/tree/release_90
* Add support for JIT + LLVM 9.
* Don't assume that all memset targets will be aligned; fixes LLVM 6 on amd64.
Commit migrated from https://github.com/mono/mono/commit/
3ab93f97e681868216327b8b0b7c19112ccfc1d3
Calvin Buckley [Fri, 2 Aug 2019 23:00:02 +0000 (20:00 -0300)]
Enable MONO_ARCH_EMULATE_FCONV_TO_U4 on PPC (mono/mono#15991)
Fixes regression related to floating point introduced in mono/mono#15930.
This does mean we have to take a slower path instead of using the
PPC instruction, but it provides consistent results. Other CPUs
have to do this too, so it's not like PPC is impacted unfairly.
(i.e, NaN gives an inconsistent result, at least with POWER7 and
some amd64 CPUs tested)
Fixes mono/mono#15990.
Commit migrated from https://github.com/mono/mono/commit/
e70ac8c6ae7ff3f03517be90babb8f7c25d18b97
Calvin Buckley [Fri, 2 Aug 2019 21:04:50 +0000 (18:04 -0300)]
Don't use clock_nanosleep on PASE (mono/mono#15988)
* Don't use clock_nanosleep on PASE
PASE exports this AIX syscall so autoconf detects it, but using it
will trigger SIGILL (for unimplemented syscall), which emits a LIC
log entry type of 4700-000F.
* Change ifdef guard for clock_nanosleep in threads
It only used clock_nanosleep on Linux, but enable it for all except
PASE. Android used to be guarded against, but the reasoning was
unknown, so @akoeplinger requested to have that guard removed.
Commit migrated from https://github.com/mono/mono/commit/
9ea07610ee4c2879f5d598aa6f34b6df79401047
Aleksey Kliger (λgeek) [Fri, 2 Aug 2019 20:31:06 +0000 (16:31 -0400)]
[netcore] Fix comments in ALC to use Mono terminology (mono/mono#15998)
Commit migrated from https://github.com/mono/mono/commit/
713df6a9c48c2c4da4037b4bbad43244fbcc505f
Aleksey Kliger (λgeek) [Fri, 2 Aug 2019 18:06:44 +0000 (14:06 -0400)]
[netcore] Implement referenced assembly resolving and ALC.GetLoadContext (mono/mono#15946)
* [netcore] Implement GetLoadContext
* [netcore] Implement ALC-aware referenced assembly resolution.
The process is described in
https://docs.microsoft.com/en-us/dotnet/api/system.runtime.loader.assemblyloadcontext?view=netcore-3.0#usage-in-the-runtime
We try four things until one of them returns a non-null assembly.
1. Check if the assembly is already loaded in the ALC of the requesting
assembly.
2. If the ALC is not the default ALC, invoke the Load override.
3. Try the default ALC (TPA - trusted platform assemblies) loading.
4. Invoke the Resolving event of the original ALC.
The implementation borrows some managed code from
https://github.com/dotnet/coreclr/blob/mono/mono@
8ba2e15201361402acd0ae9710bd37d50785cdfa/src/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.CoreCLR.cs#L84-L187
It would be nice if that code was shared between the runtimes.
* [runtime] Implement mono_assembly_name_culture_is_neutral
* [netcore] Add mono_alc_invoke_resolve_using_resolve_satellite
* [netcore] Use ResolveSatelliteAssembly for satellite assembly refs
* [netcore] Some AssemblyLoadContextTest tests now pass
System.Runtime.Loader.Tests.AssemblyLoadContextTest.PublicConstructor_Default
System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetAssemblyNameTest_NullParameter
System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromAssemblyName_AssemblyNotFound
System.Runtime.Loader.Tests.AssemblyLoadContextTest.PublicConstructor_Theory (with isCollectible: False)
System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetAssemblyNameTest_ValidAssembly
System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetLoadContextTest_SystemPrivateCorelibAssembly
System.Runtime.Loader.Tests.AssemblyLoadContextTest.DefaultAssemblyLoadContext_Properties
System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetAssemblyNameTest_AssemblyNotFound
System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetLoadContextTest_ValidTrustedPlatformAssembly
Commit migrated from https://github.com/mono/mono/commit/
2f2f6c104b2a0115a7fb1ab24673b587c27e4365
Egor Bogatov [Fri, 2 Aug 2019 15:06:37 +0000 (18:06 +0300)]
[netcore] Use mono-netcore to run real world apps using `dotnet run` (mono/mono#15942)
So currently we have two .NET Core:
1) `mono-repo/.dotnet` - we use it to bootstrap and build stuff (the SDK version is specified in `global.json`) - if you open `netcore/Makefile` it's referred there as `$(DOTNET)` variable.
2) `mono-repo/netcore/.dotnet` - it's just a runtime + CoreFX libs (it doesn't contain SDK stuff, templates, msbuild, etc) - we use it only to run tests because this runtime is synchronized with corefx tests in `eng/Versions.prop` file which is updated by a bot and `netcore/shared` sources for our System.Private.CoreLib also depend on that exact runtime version (the sources also updated by the bot).
This PR introduces a rule to copy mono bits to the `mono-repo/.dotnet` folder to be able to run real world apps (at your own risk) using mono-netcore (so when you run `mono-root/.dotnet/.dotnet run -c Release` for an app - even MSBuild will use mono runtime to build that app). However in theory we need exact SDK for the runtime version we have but I have no idea where and how to get one.
BTW, currently MSBuild crashes when it's powered by mono on `$(DOTNET) build` command for a hello world.
```
monoeg_assertion_message
mono_domain_assembly_preload
invoke_assembly_preload_hook
...
at <unknown> <0xffffffff>
at System.Reflection.RuntimeAssembly:GetExportedTypes <0x000a2>
at AssemblyInfoToLoadedTypes:ScanAssemblyForPublicTypes <0x0008e>
```
Commit migrated from https://github.com/mono/mono/commit/
d0aa0310ee386433a9ef0b4c15ac07c928211bcb
Egor Bogatov [Fri, 2 Aug 2019 14:05:22 +0000 (17:05 +0300)]
Make System.Private.CoreLib.csproj VS friendly (mono/mono#15965)
Now it's possible to open System.Private.CoreLib.csproj in an IDE and build (use Roslyn version from eng/Versions.props).
Commit migrated from https://github.com/mono/mono/commit/
40f28b2e6371c708989ff59dd1cb4f7dcc22aedc
Thays Grazia [Fri, 2 Aug 2019 13:47:25 +0000 (10:47 -0300)]
[debugger] Invoke method with fixed size array as an attribute of this (mono/mono#15766)
Implement debugger invoke when the this has an attribute that is a fixed size array.
Fixes mono/mono#15556
Commit migrated from https://github.com/mono/mono/commit/
3a9df67a64c129fa3c5c32334c231739965f1efb
Vlad Brezae [Fri, 2 Aug 2019 09:16:07 +0000 (12:16 +0300)]
[interp] Remove unconditional branches to next instruction (mono/mono#15939)
[interp] Remove unconditional branches to next instruction
These are very common, at least in debug builds. Optimize them away so it doesn't distort performance numbers.
Commit migrated from https://github.com/mono/mono/commit/
4883b56c10a077e4c82feff604172d6994994e1a
Egor Bogatov [Thu, 1 Aug 2019 20:56:56 +0000 (23:56 +0300)]
[netcore] Minor fixes, fix GetTypeTests.GetType_EmptyString (mono/mono#15933)
* Fixes https://github.com/mono/mono/issues/15023
* Fixes https://github.com/mono/mono/issues/15189 (were marked as "require large array
support" in dotnet/corefx by @filipnavara)
* Move InternalGetHashCode to RuntimeHelpers
Commit migrated from https://github.com/mono/mono/commit/
26f3df98810411b62fcf41daaff5d407df3ba7b5
Zoltan Varga [Thu, 1 Aug 2019 20:27:40 +0000 (16:27 -0400)]
[netcore] Add a README. (mono/mono#15934)
* [netcore] Add a README.
Commit migrated from https://github.com/mono/mono/commit/
6f0519266903983c28d159a8e9154e02a1467cc4
Jay Krell [Thu, 1 Aug 2019 19:38:52 +0000 (12:38 -0700)]
Bump monolite version. (mono/mono#15969)
It got out of sync for some reason.
Commit migrated from https://github.com/mono/mono/commit/
75a99b7e84dfa6716e9c1ef5eaf7740bd689a53d
Vlad Brezae [Thu, 1 Aug 2019 18:48:23 +0000 (21:48 +0300)]
[sgen] Fix check-nursery-pinned debug option (mono/mono#15865)
* [sgen] Remove dead unpin_queue argument
* [sgen] Fix check-nursery-pinned debug option
And rename it to better reflect what is is doing now (which is to check that we don't leave any vtables tagged at the end of a collection). It used to also check that nursery objects are pinned, back when we were doing a nursery collection as part of the finishing pause of a concurrent collection.
Commit migrated from https://github.com/mono/mono/commit/
87ba12e13f98a24eb140e933876a25b45fd806b8
Filip Navara [Thu, 1 Aug 2019 17:37:41 +0000 (19:37 +0200)]
[jit] Align float/double Nan/Inf to uint conversion behavior with CoreCLR/LLVM/Roslyn (mono/mono#15930)
* [jit] Align float/double Nan/Inf to uint conversion behavior with CoreCLR/LLVM
* Fix float/double -> ulong conversion for edge cases
* Fix mono_fconv_u8 / mono_rconv_u8 to also return 0 for PositiveInfinity
* Enable support for platform specific implementations of OP_RCONV_U8/OP_FCONV_U8/OP_FCONV_U4
* Restore OP emulation on WASM target
* Update tests
* Disable failing tests for now
* Adjust tests
* Adjust tests
* Fix float -> uint conversion on WASM
* Make interpreter consistent with compiled code
* Blind attempt to fix WASM test leg
* Implement remaining conversions in LLVM
* Fix ARM32
* Workaround for Windows x64 FullAOT+LLVM
* Bump AOT version
Commit migrated from https://github.com/mono/mono/commit/
3c92cd8c94c027b7c9215a12044345106851262b
Jay Krell [Thu, 1 Aug 2019 13:53:41 +0000 (06:53 -0700)]
Support proper Windows kernel Unicode thread names. (mono/mono#15919)
These do not require a debugger, can be retrieved, appear in ETW, etc.
Extracted from https://github.com/mono/mono/pull/15859.
Commit migrated from https://github.com/mono/mono/commit/
a7b74fc69c8c42911c5406bceca35220c87fccc4
Zoltan Varga [Thu, 1 Aug 2019 13:50:28 +0000 (09:50 -0400)]
[wasm] Add normal GC support. (mono/mono#15577)
* [llvm] Spill all ref variables to the stack on wasm, so GC stack scanning can scan all references.
* [runtime] Add an option to enable on-demand GC.
Commit migrated from https://github.com/mono/mono/commit/
6a66472815ff06d365281cd5cb6c2cf60b4ac138
Vlad Brezae [Thu, 1 Aug 2019 13:06:05 +0000 (16:06 +0300)]
[marshal] Free delegates with target that are passed to native code. (mono/mono#15935)
* [marshal] Always use gchandles in delegate_hash_table
Makes the code easier to follow and it also fixes race from https://github.com/mono/mono/commit/mono/mono@
caa4a753ca8e15d43baaa01adb0f56f374b74a2b with boehm.
* [marshal] Free delegates with target that are passed to native code.
For static method delegates, we have a unique delegate_trampoline that is shared among all delegates. We always keep alive the first static method delegate passed to native, by creating a normal gchandle to it and storing it in delegate_hash_table. For instance methods, each delegate will create a separate wrapper and these wrappers are never shared (which was wrongly assumed in https://github.com/mono/mono/commit/mono/mono@
caa4a753ca8e15d43baaa01adb0f56f374b74a2b). We shuldn't keep the delegate alive and this commit reverts the behavior for delegate with instance methods introduced in the mentioned commit.
Fixes https://github.com/mono/mono/issues/15751
Commit migrated from https://github.com/mono/mono/commit/
e3ca891235609663785d70aa1bbc544232070321
Vlad Brezae [Thu, 1 Aug 2019 12:21:50 +0000 (15:21 +0300)]
[mini] Ignore conv.r.un if top of stack is already float (mono/mono#15818)
Fixes https://github.com/mono/mono/issues/15794
Commit migrated from https://github.com/mono/mono/commit/
ce398411a06b85441611565b9b6119c2702cb284
Jay Krell [Wed, 31 Jul 2019 23:25:31 +0000 (16:25 -0700)]
Factor copy/pasted code into mono_gstring_append_thread_name. (mono/mono#15920)
Extracted from https://github.com/mono/mono/pull/15859.
Commit migrated from https://github.com/mono/mono/commit/
180fcfe1fdbddb22b0c52c6e0b169b427b583ab3