Skip to content
Snippets Groups Projects
  1. Nov 19, 2018
  2. Nov 16, 2018
  3. Nov 15, 2018
  4. Nov 14, 2018
    • Bernhard Urban's avatar
      [2018-06] [llvm] bump for armhf callingconv fix (#11610) · 1ac52d18
      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.
      1ac52d18
  5. Nov 07, 2018
    • Bernhard Urban's avatar
      [ios] remove DISABLE_POLICY_EVIDENCE (#11580) · eee1d634
      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
      eee1d634
  6. Nov 06, 2018
  7. Nov 05, 2018
  8. Oct 31, 2018
    • monojenkins's avatar
      [tests] reduce recursion depth (#11484) · 709b46e3
      monojenkins authored
      so it doesn't trigger a stack overflow on Xamarin.iOS with interpreter on a debug build (`CFLAGS=-O0`).
    • Alexander Kyte's avatar
      [crash] Fix async setting for crash reporter · b2915194
      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
      
      ```
  9. Oct 30, 2018
    • Alexander Kyte's avatar
      [crash] Fix merp invocation (#11436) · 149206a5
      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.
      149206a5
    • monojenkins's avatar
      [2018-06] [delegates] do not use CEE_CALLVIRT for non-virtual methods (#11450) · 2f2615ff
      monojenkins authored
      Backport of #11433.
      
      /cc @lewurm 
      
      Description:
      2f2615ff
  10. Oct 29, 2018
    • Bernhard Urban's avatar
      [2018-06] [interp] Overflow fixes (#11426) · 47eb7c55
      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`.
      47eb7c55
  11. Oct 25, 2018
  12. Oct 24, 2018
    • monojenkins's avatar
      [tests] lower recursion depth of PerformNoPinAction (#11325) · c4f7644e
      monojenkins authored
      so it doesn't overflow the stack when running on macOS with `clang -O0`.
      c4f7644e
    • Marek Habersack's avatar
      [SDKS, LLVM] Disable detection and use of libxml2 (#11341) · adeaf3e0
      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.
      adeaf3e0
  13. Oct 22, 2018
  14. Oct 20, 2018
  15. Oct 19, 2018
  16. Oct 18, 2018
    • Alexander Kyte's avatar
      [2018-06] Crash Reporter V2 (#11162) · 5ed4143b
      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
      5ed4143b
    • Vlad Brezae's avatar
      [interp] Implement interpreter entry trampolines on amd64 (#10978) (#11165) · f0db92c2
      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.
      f0db92c2
    • Alexander Köplinger's avatar
      [ci] Move OSX .pkg build to a separate bot pool · c1f1a7bf
      Alexander Köplinger authored
      Allows us to better utilize the bockbuild cache.
      
      (cherry picked from commit 229a4673)
      c1f1a7bf
    • monojenkins's avatar
      [aot] Ensure shared got entries are initialized before loading methods (#11225) · d80ced60
      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
      -->
  17. Oct 17, 2018
  18. Oct 16, 2018
  19. Oct 11, 2018
  20. Oct 10, 2018
    • Ludovic Henry's avatar
      [2018-06] [sdks] Create archive targets for pre-building on CI (#10936) · 46b723d6
      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
  21. Oct 05, 2018
Loading