- Nov 19, 2018
-
-
Bernhard Urban authored
Seems like this change got lost when backporting https://github.com/mono/mono/pull/10445. The other branches, 2018-06 and 2018-10, are fine. This should make the LLVM step on the iOS SDK lane green again. Context: https://github.com/mono/mono/pull/10440#issuecomment-439461353
-
- Nov 16, 2018
-
-
monojenkins authored
[2018-06] [interp] attempt to intrinsify again after a method is resolved regarding generics discovered when running https://github.com/Clancey/gMusic Backport of #11712. /cc @luhenry @lewurm
-
monojenkins authored
Backport of #11705.
-
- Nov 15, 2018
-
-
monojenkins authored
This code is duplicated completely from the code directly above it (github doesn't show in this diff) Backport of #11700.
-
monojenkins authored
Backport of #11672.
-
- Nov 14, 2018
-
-
Bernhard Urban authored
* [llvm] bump for armhf callingconv fix Commit list for mono/llvm: * mono/llvm@f80899cb3eb [mono] respect hardfloat/softloat setting in ARM ABI (#16) * mono/llvm@f80899cb3eb (HEAD -> master, origin/master) [mono] respect hardfloat/softloat setting in ARM ABI (#16) * mono/llvm@37e14bd72e6 Fix the mono calling convention on arm64+linux. * mono/llvm@acb33f3436e Pack 32bits llc, opt and llvm-dis in archive as well * mono/llvm@9b92b4b8760 Merge pull request #14 from lateralusX/lateralusX/build-llvm-windows-x64 * mono/llvm@e2ae3309b0c Fixes Mono LLVM usage on Windows x64. * mono/llvm@384caa9849a Build LLVM Windows x64 using CMake + VS2015 or VS2017. * mono/llvm@0b3cb8ac12c Emit an LSDA for methods without landing pads too since we need the information about the 'this' register.fbbfbae4fea [ci] Enable x86/amd64 backends. (#9) * mono/llvm@8e14f6654ad Add 3.9 Packaging Scripts and Cross Compilation Support (#8) * mono/llvm@bdb3a116dbf Change some code slighly in AArch64InstrInfo.cpp to work around a gcc optimizer problem. https://github.com/xamarin/xamarin-android/issues/1182. * mono/llvm@3b82b3c9041 [ci] Really compile the 32 bit llvm as 32 bit. * mono/llvm@73c983a02a2 [ci] Distribute 32 bit llvm-config. * mono/llvm@0692a5ea231 [ci] Install 64-bit binaries into usr64 for consistency. * mono/llvm@804c869e6b5 [ci] Fix 32 bit build.8dfa8ebfc25 [ci] Compile a 32 bit version of llvm as well.07582cba7cc [ci] Package llvm-config as well. * mono/llvm@a9cfb50e5af [ci] Fix an rm statement which can fail. * mono/llvm@a21fcae962a Add a jenkins build script. * mono/llvm@21492ec92e2 Revert "Add a workaround to the problem where the amd64 JIT would make all calls as register indirect." * mono/llvm@6aa74ae5723 Fix a regression caused by: * mono/llvm@5056b9f2bcb Rename the temp labels used by DwarfMonoException so they don't collide with the ones used by the GNU EH frame. * mono/llvm@975e3a69030 Align the size of the Mono EH table to 8 to prevent an ld assertion. Fixes #55553. * mono/llvm@dbb6fdffdeb [arm] Handle CallingConv::Mono in getEffectiveCallingConv (), previously it would be handled by the default branch, which would fall through to the next switch case because llvm_unreachable() was a noop in release builds. * mono/llvm@5b94bc7097e Avoid making the EH table symbol global, its not needed any more. * mono/llvm@8b1520c8aae Merge pull request #6 from Xaltotun/feature/cmake_build * mono/llvm@8d00fd38456 Fixed MONO_API_VERSION define for the cmake build. For #cmakedefine to work, the variable needs to be declared in the cmake script otherwise it will be commented out in the generated file. * mono/llvm@73df95d02d3 Merge pull request #5 from alexanderkyte/mastere * mono/llvm@51cd999c98 [mono] Fix MONO_API_VERSION usage with cmake Diff: https://github.com/mono/llvm/compare/9f79399f87282524fee099b328bd8cbf07929daf...f80899cb3eb75f7f5640b4519e83bd96991bffb8 * [arm64] Pass small stack args correctly on linux. Fixes pinvoke.exe with llvm+full aot. Backport of #10674.
-
- Nov 07, 2018
-
-
Bernhard Urban authored
[2018-06] [ios] remove DISABLE_POLICY_EVIDENCE Originally it was introduced with db3591bb It seems like only the icall definitions were disabled for device runtimes (which aren't shipped there anyway), however the icalls themselves are _included_ in the device runtime. Not sure what the rationale was behind this. Since the original change is very old, I think it just happened to be like that today. When running with the interpreter we need the definitions at runtime too (via the optional icall table that is linked in, so no additional cost for the fullAOT runtime due to this change). Backport of https://github.com/mono/mono/pull/11565
-
- Nov 06, 2018
-
-
Alexander Köplinger authored
(cherry picked from commit c8d59d1d)
-
monojenkins authored
-
monojenkins authored
-
monojenkins authored
-
- Nov 05, 2018
-
-
Alexander Köplinger authored
(cherry picked from commit de2cb5fd)
-
- Oct 31, 2018
-
-
monojenkins authored
so it doesn't trigger a stack overflow on Xamarin.iOS with interpreter on a debug build (`CFLAGS=-O0`).
-
Alexander Kyte authored
We were previously only setting it from the icall. The icall was therefore fine, while invocations associated with actual dumps caused crashes like this: ``` thread #10, name = 'Thread Pool Worker' frame #0: 0x00007fff978dac22 libsystem_kernel.dylib`__psynch_mutexwait + 10 frame #1: 0x00007fff979c5dfa libsystem_pthread.dylib`_pthread_mutex_lock_wait + 100 frame #2: 0x00007fff979c3519 libsystem_pthread.dylib`_pthread_mutex_lock_slow + 285 frame #3: 0x0000000108e0d4a9 mono`mono_loader_lock + 73 frame #4: 0x0000000108dc9106 mono`mono_class_create_from_typedef + 182 frame #5: 0x0000000108dc1f2c mono`mono_class_get_checked + 92 frame #6: 0x0000000108e21da2 mono`mono_metadata_parse_type_internal + 1378 frame #7: 0x0000000108e25e11 mono`mono_metadata_parse_mh_full + 1233 frame #8: 0x0000000108ca4f79 mono`mono_debug_add_aot_method + 121 frame #9: 0x0000000108cc6b1e mono`decode_exception_debug_info + 5918 frame #10: 0x0000000108cc5047 mono`mono_aot_find_jit_info + 1367 frame #11: 0x0000000108e082cc mono`mono_jit_info_table_find_internal + 204 frame #12: 0x0000000108cdb035 mono`mini_jit_info_table_find_ext + 69 frame #13: 0x0000000108cdad5c mono`mono_find_jit_info_ext + 124 frame #14: 0x0000000108cdc3a5 mono`unwinder_unwind_frame + 229 frame #15: 0x0000000108cdbade mono`mono_walk_stack_full + 798 frame #16: 0x0000000108cda1a4 mono`mono_summarize_managed_stack + 100 frame #17: 0x0000000108e6dc03 mono`mono_threads_summarize_execute + 1347 frame #18: 0x0000000108e6df88 mono`mono_threads_summarize + 360 ```
-
- Oct 30, 2018
-
-
Alexander Kyte authored
The change which made the handler return (rather than crashing the runtime) did not consider this control flow path that causes the sigterm signal handler to trigger the merp dumper if we return. We now always return. This was previously so that a random sigterm could be used to trigger a dump. This isn't really used, and won't work right now anyways (we don't register it until right before we dump). My fix is to remove it, and to make the signal handler only work as part of the dumper machinery.
-
monojenkins authored
Backport of #11433. /cc @lewurm Description:
-
- Oct 29, 2018
-
-
Bernhard Urban authored
* [interp] Overflow fixes (#9688) * [interp] Fix some conv ovf opcodes * [interp] Correctly hande a few conv ovf cases For conversion from unsigned value to i1 and i2. * [interp] Fix multiplication overflow case * [interp] Remove some constants from code * [interp] throw overflow exception when {float,double}.NaN is converted to an int type (#11380) [interp] throw overflow exception when {float,double}.NaN is converted to an int type A comparison with NaN is always `false`.
-
- Oct 25, 2018
-
-
Bernhard Urban authored
[2018-06] [aot] add unbox_arbitrary_trampoline for fullaot/interp mixed mode Backport of https://github.com/mono/mono/pull/11321
-
- Oct 24, 2018
-
-
monojenkins authored
so it doesn't overflow the stack when running on macOS with `clang -O0`.
-
Marek Habersack authored
Mono doesn't use libxml2 and neither do the LLVM bits used by Mono when building the AOT cross-compilers. Presence of `-lxml2` on the command line breaks 32-bit builds on 64-bit Linux hosts: libtool: link: cc -shared -fPIC -DPIC -Wl,--whole-archive ./.libs/libmini.a ./.libs/libmono-ee-interp.a ./.libs/libmono-dbg.a ../../mono/metadata/.libs/libmonoruntimesgen.a ../../mono/sgen/.libs/libmonosgen.a ../../mono/utils/.libs/libmonoutils.a ../../mono/eglib/.libs/libeglib.a -Wl,--no-whole-archive -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMMC -lLLVMBitReader -lLLVMCore -lLLVMBinaryFormat -lLLVMSupport -lLLVMDemangle -L$HOME/xamarin-android/external/mono/sdks/out/llvm-llvm32/lib -lz -ltinfo -lxml2 -lstdc++ -lm -lrt -ldl -lpthread -O0 -ggdb3 -m32 -g -mno-tls-direct-seg-refs -Wl,-export-dynamic -Wl,-soname -Wl,libmonosgen-2.0.so.1 -o .libs/libmonosgen-2.0.so.1.0.0 mv -f .deps/libmini_la-aot-runtime-wasm.Tpo .deps/libmini_la-aot-runtime-wasm.Plo /usr/bin/ld: skipping incompatible //usr/lib/x86_64-linux-gnu/libxml2.so when searching for -lxml2 /usr/bin/ld: skipping incompatible //usr/lib/x86_64-linux-gnu/libxml2.a when searching for -lxml2 /usr/bin/ld: cannot find -lxml2 collect2: error: ld returned 1 exit status make[7]: *** [Makefile:1495: libmonosgen-2.0.la] Error 1 Installation of `libxml2-dev` (on Ubuntu/Debian + friends) for the x86 architecture (or x86_64 architecture on 32-bit host) would be possible but then it would break the 64-bit build because the 64-bit version of the library would be absent. It would be a problem if Mono+LLVM actually used xml2, but since it doesn't we can just disable the feature completely.
-
- Oct 22, 2018
-
-
Aleksey Kliger (λgeek) authored
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
-
- Oct 20, 2018
-
-
monojenkins authored
[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 -->
-
monojenkins authored
[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">
-
- Oct 19, 2018
-
-
Bernhard Urban authored
* [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
-
markusbeth authored
Flags to DrawText never reached MeasureText therefore strings with '&' were measured incorrect when drawn with flag TextFormatFlags.NoPrefix. Fixes #6352
-
- Oct 18, 2018
-
-
Alexander Kyte authored
* [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
-
Vlad Brezae authored
* [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.
-
Alexander Köplinger authored
Allows us to better utilize the bockbuild cache. (cherry picked from commit 229a4673)
-
monojenkins authored
[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 -->
-
- Oct 17, 2018
-
-
monojenkins authored
Fixes #https://github.com/mono/mono/issues/11202
-
- Oct 16, 2018
-
-
Ludovic Henry authored
This breaks when LLVM is built on 10.13+ and the runtimes are built on 10.12.
-
- Oct 11, 2018
-
-
Alexander Köplinger authored
-
Ludovic Henry authored
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.
-
- Oct 10, 2018
-
-
Ludovic Henry authored
* [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
-
- Oct 05, 2018
-
-
monojenkins authored
[2018-06] [interp] fixes for native type Backport of https://github.com/mono/mono/pull/10749
-
Bernhard Urban authored
-
Bernhard Urban authored
-
Bernhard Urban authored
-
Bernhard Urban authored
-
Bernhard Urban authored
-