1. 16 12月, 2021 12 次提交
    • M
      Making user secrets optional by default (#62821) · 0c5e9e56
      Maryam Ariyan 提交于
      0c5e9e56
    • J
      Unify the FlushProcessWriteBuffers mechanism for macOS arm64 / x64 (#62822) · 4dd867ff
      Jan Vorlicek 提交于
      The macOS arm64 was using a new mechanism to implement FlushProcessWriteBuffers
      because the original one based on a wired memory page doesn't work on arm64.
      We have seen people hitting problems with the wired memory page allocation on
      x64 in the past due to the fact that wired memory is a scarce resource and
      in some cases, e.g. in presence of apps that greedily grab all of the available
      wired memory pages, we were unable to initialize coreclr and execute any .NET
      application.
      
      This change switches x64 to the same mechanism as arm64 to prevent that issue
      from happening and updates the minimum supported x64 macOS to 10.14. That's the
      version required for the new APIs the change is using. Apple stopped supporting
      10.13 a year ago anyways.
      4dd867ff
    • W
      Add ConstantExpectedAttribute (#62436) · af726fcc
      Wei Zheng 提交于
      af726fcc
    • T
      Make `ControlFlowBuilder.Clear` public. (#62811) · 6845361b
      Theodore Tsirpanis 提交于
      6845361b
    • F
      Updated tracking issue (#62814) · 7d3a18e2
      Fan Yang 提交于
      7d3a18e2
    • E
      Pass HFA/HVA in registers (#62623) · c5fa4699
      Egor Chesakov 提交于
      * Have more concise check for "HFAs should not be morphed to FieldList when they are not passed on SIMD registers" in src/coreclr/jit/morph.cpp
      
      * Pass HFA/HVA arguments in registers in src/coreclr/jit/morph.cpp
      c5fa4699
    • B
      Make emitAddrMode xarch only (#62830) · 5e36c33c
      Bruce Forstall 提交于
      It is not used on arm32/arm64.
      5e36c33c
    • J
    • J
      Add ubuntu 21.10 (#62783) · fbabdb66
      Jan Jahoda 提交于
      fbabdb66
    • J
      [MonoAOTCompiler] more properties & custom WorkingDirectory (#62725) · b2f0441c
      Jonathan Peppers 提交于
      Fixes: https://github.com/dotnet/runtime/issues/56163
      
      PR #58523 fixed something on Windows, but it didn't actually address
      our issues on Android.
      
      A directory name like `foo Ümläüts` fails:
      
      * `mkdir 'foo Ümläüts' ; cd 'foo Ümläüts'`
      * `dotnet new android`
      * `dotnet build -c Release -p:RunAOTCompilation=true` (adding
        `-p:EnableLLVM=true` complicates further)
      
      The error:
      
          Precompiling failed for C:\src\foo Ümläüts\obj\Release\android-arm64\linked\System.Private.CoreLib.dll: Error: Loaded assembly 'C:\src\foo ├£ml├ñ├╝ts\obj\Release\android-arm64\linked\System.Private.CoreLib.dll' doesn't match original file name 'C:\foo ▄mlΣⁿts\obj\Release\android-arm64\linked\System.Private.CoreLib.dll'. Set MONO_PATH to the assembly's location.
      
      Reviewing the existing AOT implementation in Xamarin.Android, I found
      out *why* Xamarin.Android works:
      
          [AOT] response file obj\Release\120\aot\arm64-v8a\App36.dll\response.txt: --llvm "--aot=temp-path=obj\Release\120\aot\arm64-v8a\App36.dll,llvm-path=C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Xamarin\Android,outfile=obj\Release\120\aot\arm64-v8a\libaot-App36.dll.so,msym-dir=obj\Release\120\aot\arm64-v8a,asmwriter,mtriple=aarch64-linux-android,tool-prefix=C:\Program Files (x86)\Android\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\aarch64-linux-android-,ld-name=ld.EXE,ld-flags=\"-LC:\Program Files (x86)\Android\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\lib\gcc\aarch64-linux-android\4.9.x\";\"-LC:\Program Files (x86)\Android\android-sdk\ndk-bundle\platforms\android-21\arch-arm64\usr\lib\";\"C:\Program Files (x86)\Android\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\lib\gcc\aarch64-linux-android\4.9.x\libgcc.a\";\"C:\Program Files (x86)\Android\android-sdk\ndk-bundle\platforms\android-21\arch-arm64\usr\lib\libc.so\";\"C:\Program Files (x86)\Android\android-sdk\ndk-bundle\platforms\android-21\arch-arm64\usr\lib\libm.so\"" C:\Users\jopepper\source\repos\App36\App36\obj\Release\120\android\assets\shrunk\App36.dll
      
      1. Xamarin.Android passes *relative* paths. The `foo Ümläüts`
         directory name doesn't even come into play for some arguments.
      
      2. With LLVM, `ld-flags` contains a `;`.
      
      The existing code splits on `;` and joins on `,`:
      
      https://github.com/dotnet/runtime/blob/25c207351c4f57cf2daa98caaf327a8b8d83edb8/src/tasks/AotCompilerTask/MonoAOTCompiler.cs#L505-L509
      
      So we lose any `;` delimiters for the `ld-flags` value, they get
      replaced by `,`.
      
      I think the solution here is:
      
      1. Add several missing properties to `<MonoAOTCompiler/>` so we don't
         have to rely on the `%(AotArguments)` item metadata. No splitting
         on `;` would be required, `ld-flags` can be passed in and used as-is.
      
      2. Add a new `WorkingDirectory` property. When this is set, assume
         paths passed in might be relative -- and don't transform paths by
         calling `Path.GetFullPath()`.
      
      Lastly, I fixed a place where the UTF8 encoding wasn't passed when
      MSBuild logging the response file.
      
      These changes I tried to make in a way where this shouldn't break
      other .NET workloads like wasm. If existing MSBuild targets call this
      task (not using the new properties), the behavior should remain
      unchanged.
      
      I tested these changes by commiting a modified `MonoAOTCompiler.dll`:
      
      https://github.com/xamarin/xamarin-android/pull/6562
      
      I'm able to enable several AOT tests related to dotnet/runtime#56163.
      b2f0441c
    • M
      4733c70d
    • A
      Update libunwind to v1.6.2 (#62092) · 74e6d016
      Adeel Mujahid 提交于
      * Update libunwind to v1.6.2
      
      * Apply libunwind changes from 1b5719c2Co-authored-by: NJan Vorlicek <janvorli@microsoft.com>
      
      * Suppress Wincompatible-pointer-types on arm64
      
      * Fix remote unwinding on win-arm64
      
      * Mark base as both input and output
      Co-authored-by: NJan Vorlicek <jan.vorlicek@volny.cz>
      Co-authored-by: NJan Vorlicek <janvorli@microsoft.com>
      Co-authored-by: NJan Vorlicek <jan.vorlicek@volny.cz>
      74e6d016
  2. 15 12月, 2021 27 次提交
  3. 14 12月, 2021 1 次提交