Age | Commit message (Collapse) | Author |
|
We must not get a TLE if referenced types are in an assembly that can't be
loaded.
Backported fix of https://github.com/mono/mono/issues/11123
|
|
[2018-06] [aot] Reenable recursion checking when initing shared got entries
Backport of #11258.
/cc @BrzVlad
Description:
Broken in https://github.com/mono/mono/pull/11190
<!--
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
-->
|
|
[2018-06] [interp] use unsigned conversion for nuint
Backport of #11259.
/cc @lewurm
Description:
Fixes `MutableDataTest.Constructor` on Xamarin.iOS with interpreter.
monotouch tests are looking good now with interp-only:
<img width="906" alt="screenshot 2018-10-19 at 11 22 07" src="https://user-images.githubusercontent.com/75403/47209686-3d7b2780-d391-11e8-887f-9e1f39de2026.png">
😬
|
|
for dyncalls (#11266)
* [arm64] Remove the limitation on the number of nullable arguments for dyncalls. (#11186)
* [arm64] Remove the limitation on the number of nullable arguments for dyncalls.
Fixes https://github.com/xamarin/xamarin-macios/issues/4984.
* [amd64] Remove the limitation on the number of nullable arguments for dyncalls.
* [jit] Add tests for dyncalls with lots of nullable arguments.
* fix merge conflict
|
|
(#11251)
Flags to DrawText never reached MeasureText therefore strings with '&' were measured incorrect when drawn with flag TextFormatFlags.NoPrefix.
Fixes #6352
|
|
* [runtime] Add icall to format crashes to disk in uniform way
* [crash] More gentle error handling around stack walking
* [crash] Make self-summarizier not need managed thread state
* [crash] Remove reliance on sgen/gchandles
* [crash] Refactor dumper mechanism
* [crash] Make threads not die during thread dump
* [crash] Add silent option to dumper
* [crash] Print error when unable to dump thread
* [crash] Add icalls to directly trigger telemetry-style walks
* [crash] Increase maximum frame depth
* [crash] Add support for concurrent global dump requests
* [crash] Switch from CAS+Sleep to semaphore for dumper
Locks and GC-Safe regions are both unsafe in a signal handler
context. CAS primitives and the sleep syscall was used before.
Semaphores appear to be safe, enabling the following cleanup.
* [runtime] Make find_method use stack memory for dumper-facing entry point
* [crash] Enable install_state_summarizer on all platforms
* [crash] Dump managed stacks from controlling thread
* [crash] Fix string races with DumpTotal icall
* [crash] Fix space in crash file name
* [crash] Fix lifetime and size checks on mono-state memory
* [runtime] Make sequence point lookup lockless
* [crash] Fix managed exception dumper icall format
* [crash] Add tests for concurrent dumping
* [crash] Print half-completed dump when space runs out
* [crash] Bump static memory for crash string to 500k
Note:
- This memory isn't accessed until we're crashing
- On any modern machine, unused static memory is lazily allocated. When
we access it, the fault will trigger the MMU to map memory for us.
- This is guaranteed to be reentrant and safe. mmap (the alternative) is
surely fairly stable on many systems, but this is not guaranteed. The
documentation pages for mmap specifically claim it as not safe in these async
contexts.
* [crash] Make whitelist lookup lockless
* [crash] Split unmanaged ptrs into method ip + offset
* [crash] Copy safer strings with crash privacy disabled
* [crash] Fix BindingFlags undefined with mcs+linux x64
* [crash] Fix icall declarations for new style
* [crash] Squashed support for RegisterReportingForNativeLib
* [crash] Disable tests on linux / non-osx platforms
|
|
* [interp] Avoid unnecessary allocations when pinvoke void functions
* [amd64] Refactor interp pinvoke context computation
* [amd64] Interp trampoline for interpreter entry
* [aot] Don't include interp_in_wrapper when we use entry trampoline
These wrappers take a lot of space in the image.
|
|
Allows us to better utilize the bockbuild cache.
(cherry picked from commit 229a4673d43a332544c6a8a7b831efbc9166acf0)
|
|
[2018-06] [aot] Ensure shared got entries are initialized before loading methods
Backport of #11190.
/cc @luhenry @BrzVlad
Description:
Executing aot code that uses them would crash. Fixes random csc crashes.
<!--
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
-->
|
|
Fixes #https://github.com/mono/mono/issues/11202
|
|
10.13 (#11174)
This breaks when LLVM is built on 10.13+ and the runtimes are built on 10.12.
|
|
|
|
We couldn't compile llvmwin{32,64} on Linux because we would try to use {i686,x86_64}-w64-mingw-cmake but it wouldn't exist.
|
|
* [sdks] Remove redundant --enable-cxx
* [sdks] Shorten `-m32`/`-m64` parameters detection for runtimes
* [sdks] Build BCL profiles without configure flags
* [sdks] Create archive targets for pre-building on CI
* [sdks] Add BclTemplate to build BCL profiles
This is to avoid building all the profiles in a single `sdks/out/bcl` directory which will be shared between android, ios and wasm.
* [sdks] Use archive-{android,ios,wasm} on CI
* [sdks] Run archive-llvm-llvm{,win}{32,64} on CI
* [sdks] Add download/pack capabilities for LLVM
* [sdks] Ensure LLVM is cloned before trying to download
* [sdks] Simplify call to BclTemplate
* Put xunit tests in mcs/class/lib/PROFILE/tests too
So they are next to their NUnit counterparts.
Move xunit remote executor app to tests dir too and compile it when
compiling the test assembly instead of doing it before running the test.
We need to use an absolute path for the xunit remote executor and it
needs to be in Windows format on Windows since we pass it as an env var
to the xunit tests.
* [sdks] Build LLVM with make in parallel
* [mcs] Make directory dependency as order-only
We would otherwise always rebuild the target since the directory is updated whenever something is added to the directory. This is a common Makefile technique.
* [sdks] Build tests for BCL targets
* [build] Switch to netstandard based xunit
|
|
[2018-06] [interp] fixes for native type
Backport of https://github.com/mono/mono/pull/10749
|
|
|
|
|
|
|
|
|
|
|
|
Conversion operators have been mostly broken in the interpreter, for
example conversion from nint to float didn't work. While some
conversions are easy to intrinsify (like nint -> I8), there are harder
cases like nint -> decimal. The JIT actually falls back to the managed
implementation, so let's do this in the interpreter as well.
However the managed implementation expects a pointer to the value type,
i.e. the container type System.nfloat instead of float/double primitives.
In such cases the value is going to be stored in a local and then the
address of its storage is pushed on the stack before invoking the
managed implementation of the conversion.
Added test cases for scenarios observed in Xamarin.iOS.
|
|
zlib-helper.o is created. (#10921) (#10970)
xamarin-macios currently builds zlib-helper.o using mono's source code.
It would be preferrable to use a version built by mono, and since
zlib-helper.o is a byproduct of building libMonoPosixHelper, we need to build
libMonoPosixHelper (we already build it for simulator architectures), even
though we don't need/use libMonoPosixHelper itself.
|
|
[2018-06] [runtime] Disable stack guard for main thread on osx
Backport of #10899.
/cc @luhenry @BrzVlad
Description of #10899:
On macOS Mojave, it seems that changing the mapping of stack pages for main thread can lead to corruption bugs.
https://github.com/mono/mono/issues/10802
<!--
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
-->
|
|
It is exported only when _DARWIN_C_SOURCE is defined.
|
|
filter criteria
|
|
|
|
On macOS Mojave, it seems that changing the mapping of stack pages for main thread can lead to corruption bugs.
https://github.com/mono/mono/issues/10802
|
|
It turns out some Debian versions identify themselves as `Debian GNU/Linux`, add
this string to the list of distributions which have mingw. This *should* fix the
PR builds (fingers crossed)
|
|
|
|
timeout. #10488. (#10732)
* [System]Make sure `HttpWebRequest` observes exceptions on timeout. #10488.
`HttpWebRequest.RunWithTimeoutWorker()` needs to observe the worker task's exception
on timeout to prevent it from being thrown via the `TaskScheduler.UnobservedTaskException`
event. Fixes #10488.
* Add `TaskContinuationOptions.OnlyOnFaulted | TaskContinuationOptions.OnlyOnCanceled` as suggested by Marek.
* Use 'OnlyFaulted' only.
|
|
|
|
Debian and its derivatives include full mingw chain (both 64 and 32-bit) and so
they don't need to build the toolchain at all. However, the current detection of
Linux flavor takes into account only Ubuntu and all other distros are configured
to *require* MXE but they do *not* build them.
This commit fixes detection of distros which provide the mingw toolchain in a
way that makes it easy to extend the set of compatible distributions as needed.
In order to mark a distribution as one with MinGW one has to add the `:Distro:`
string to the `LINUX_WITH_MINGW` make variable in `mxe.mk`. The `Distro` string
is whatever the `determine-linux-flavor.sh` script returns.
|
|
|
|
|
|
When building 32-bit binaries on a 64-bit system and vice versa, it is necessary
to pass the `-m32` or `-m64` compiler flags, respectively. Failure to do so will
result not only in linking problems (different binary architecture) but also in
problems when using some system headers which are sensitive to the architecture.
For instance, `ucontext.h` contains register set definitions for different
architectures and building Mono runtime with a 64-bit compiler targetting 32-bit
architecture results in this error:
.../mono/mono/utils/mono-sigcontext.h:173:74: error: ‘REG_EIP’ undeclared (first use in this function); did you mean ‘REG_RIP’?
#define UCONTEXT_REG_EIP(ctx) (((ucontext_t*)(ctx))->uc_mcontext.gregs [REG_EIP])
The issue here is that the compiler defines the `__x86_64__` macro which causes
`ucontext.h` to choose declarations for amd64 (which does not use `REG_EIP` but
has `REG_RIP` instead) while Mono runtime assumes its building for a 32-bit host
and uses 32-bit register names. Passing `-m32` to the compiler will fix the
issue as now the compiler will define the `__i386__` macro and all parties will
agree where they are and what they want.
This commit uses a rather baroque statement when constructing compiler flags to
build the Mono runtime to check whether the host triple targets 32 or 64-bit
host and adds the appropriate flag.
|
|
|
|
(#10721)
* disable some not compatible with xunit 2.4 tests
* bump corefx
|
|
|
|
Fixes this warning when comparing Xamarin.iOS.dll:
Comparison resulting in no changes (src: Public, HasFieldMarshal dst: Public) :
<field name="EdgeTessellationFactor" attrib="4102" fieldtype="System.UInt16[]" />
<field name="EdgeTessellationFactor" attrib="6" fieldtype="System.UInt16[]" />
|
|
|
|
* Implement IEnumerable for ConditionalWeakTable
* Update ConditionalWeakTable.cs
|
|
on IOS. (#10591)
Fixes https://github.com/xamarin/xamarin-macios/issues/4347.
|
|
Fixes https://github.com/mono/mono/issues/10303.
|
|
|
|
|
|
|
|
and sets up facades without corresponding nuget _._ for conflict
resolution done by msbuild
|
|
Backport of #10528.
/cc @akoeplinger
|
|
Fixes https://github.com/mono/mono/issues/10483.
|
|
|