Skip to content

[LoongArch64] Improve the functionality of LoongArch64 R2R #114666

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Apr 22, 2025

Conversation

lawn123
Copy link
Contributor

@lawn123 lawn123 commented Apr 15, 2025

[LoongArch64] Improve the functionality of LoongArch64 R2R.
Add align assemblies in the bundle at 16K.
Add LoongArch64 implementation in the TranslatePEToArchitectureType function.

Change-Id: Ifa535603ef60504042f3ae10dc00acf1afabcf31
@ghost ghost added the area-Single-File label Apr 15, 2025
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Apr 15, 2025
Copy link
Contributor

Tagging subscribers to this area: @agocke, @vitek-karas, @VSadov
See info in area-owners.md if you want to be subscribed.

@lawn123
Copy link
Contributor Author

lawn123 commented Apr 15, 2025

Hi @shushanhf @jkotas , could you please review this PR? Thanks.

Copy link
Contributor

@shushanhf shushanhf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
Thanks

Comment on lines 167 to 168
else if (dwImageType == IMAGE_FILE_MACHINE_LOONGARCH64)
*PeKind = peLOONGARCH64;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is for windows only (PE+ is windows executable binary format, like ELF and MACHO).

Suggested change
else if (dwImageType == IMAGE_FILE_MACHINE_LOONGARCH64)
*PeKind = peLOONGARCH64;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@am11 Thank you for your suggestion.
When I use the - p: PublicSingleFile=true - p: SelfContained=true - p: PublicReadyToRun=true parameter to publish a Hello World single file and then execute it, I encounter the following problem:
liuan@liuan-pc:~/dotnet3/hello$ ./bin/release/net9.0/linux-loongarch64/publish/hello Failed to load System.Private.CoreLib.dll (error code 0x8007000B) Path: /home/liuan/dotnet3/hello/bin/release/net9.0/linux-loongarch64/publish/System.Private.CoreLib.dll Error message: Could not load file or assembly '/home/liuan/dotnet3/hello/bin/release/net9.0/linux-loongarch64/publish/System.Private.CoreLib.dll'. An attempt was made to load a program with an incorrect format. (0x8007000B) Failed to create CoreCLR, HRESULT: 0x8007000B
Then I debugged and found that when loading the SPC.dll assembly, the code ended up at this point.

135	        DWORD dwImageType = pdwPAFlags[1];
(gdb) bt
#0  BINDER_SPACE::AssemblyBinderCommon::TranslatePEToArchitectureType (pdwPAFlags=0xffffff53a8, PeKind=0xffffff5134)
    at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/binder/assemblybindercommon.cpp:135
#1  0x000000aaab2092cc in BINDER_SPACE::AssemblyName::Init (this=0xaaab6a2890, pPEImage=<optimized out>)
    at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/binder/assemblyname.cpp:63
#2  0x000000aaab20325c in BINDER_SPACE::Assembly::Init (this=0xaaab6eab00, pPEImage=0xaaab6a2a10, fIsInTPA=1)
    at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/binder/assembly.cpp:44
#3  0x000000aaab205008 in BINDER_SPACE::AssemblyBinderCommon::GetAssembly (assemblyPath=..., fIsInTPA=1, ppAssembly=0xffffff55c8, bundleFileLocation=...)
    at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/binder/assemblybindercommon.cpp:1020
#4  0x000000aaab2042b4 in BINDER_SPACE::AssemblyBinderCommon::BindToSystem (systemDirectory=..., ppSystemAssembly=0xffffff5eb8)
    at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/binder/assemblybindercommon.cpp:282
#5  0x000000aaab20d16c in DefaultAssemblyBinder::BindToSystem (this=0xaaab6a0f10, ppSystemAssembly=0xffffff6168)
    at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/binder/defaultassemblybinder.cpp:199
#6  0x000000aaaaebc724 in PEAssembly::DoOpenSystem () at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/vm/peassembly.cpp:829
#7  0x000000aaaaebc49c in PEAssembly::OpenSystem () at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/vm/peassembly.cpp:801
#8  0x000000aaaadeec4c in SystemDomain::LoadBaseSystemClasses (this=0xaaab6217e0 <g_pSystemDomainMemory>) at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/vm/appdomain.cpp:1163
#9  0x000000aaaadee854 in SystemDomain::Init (this=0xaaab6217e0 <g_pSystemDomainMemory>) at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/vm/appdomain.cpp:1028
#10 0x000000aaab46e2a0 in EEStartupHelper () at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/vm/ceemain.cpp:953
#11 0x000000aaab46d860 in EEStartup()::$_0::operator()(void*) const (this=<optimized out>, p=<optimized out>) at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/vm/ceemain.cpp:1091
#12 EEStartup () at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/vm/ceemain.cpp:1093
#13 0x000000aaab46d740 in EnsureEEStarted () at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/vm/ceemain.cpp:303
#14 0x000000aaaae2d4e8 in CorHost2::Start (this=0xaaab6a0e50) at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/vm/corhost.cpp:100
#15 0x000000aaab191118 in coreclr_initialize (exePath=0xaaab691ec0 "/home/liuan/test1/hello/bin/Release/net9.0/linux-loongarch64/publish/hello", 
    appDomainFriendlyName=0xaaaab4f614 "clrhost", propertyCount=<optimized out>, propertyKeys=<optimized out>, propertyValues=<optimized out>, hostHandle=0xffffff6848, 
    domainId=0xffffff6844) at /home/liuan/project/dotnet-runtime-loongarch/src/coreclr/dlls/mscoree/exports.cpp:310
#16 0x000000aaaadbf758 in coreclr_t::create (libcoreclr_path=..., exe_path=0xaaab691ec0 "/home/liuan/test1/hello/bin/Release/net9.0/linux-loongarch64/publish/hello", 
    app_domain_friendly_name=0xaaaab4f614 "clrhost", properties=..., inst=...) at /home/liuan/project/dotnet-runtime-loongarch/src/native/corehost/hostpolicy/coreclr.cpp:72
#17 0x000000aaaadd87fc in (anonymous namespace)::create_coreclr () at /home/liuan/project/dotnet-runtime-loongarch/src/native/corehost/hostpolicy/hostpolicy.cpp:75
#18 0x000000aaaadd8060 in corehost_main (argc=<optimized out>, argv=0xffffff7018) at /home/liuan/project/dotnet-runtime-loongarch/src/native/corehost/hostpolicy/hostpolicy.cpp:422
#19 0x000000aaaada9950 in execute_app (impl_dll_dir="/home/liuan/test1/hello/bin/Release/net9.0/linux-loongarch64/publish/", init=0xaaab692820, argc=1, argv=0xffffff7018)
    at /home/liuan/project/dotnet-runtime-loongarch/src/native/corehost/fxr/fx_muxer.cpp:145
#20 (anonymous namespace)::read_config_and_execute (host_command=..., host_info=..., app_candidate="/home/liuan/test1/hello/bin/Release/net9.0/linux-loongarch64/publish/hello.dll", 
    opts=std::unordered_map with 0 elements, new_argc=1, new_argv=0xffffff7018, mode=<optimized out>, is_sdk_command=<optimized out>, out_buffer=<optimized out>, 
    buffer_size=<optimized out>, required_buffer_size=<optimized out>) at /home/liuan/project/dotnet-runtime-loongarch/src/native/corehost/fxr/fx_muxer.cpp:532
#21 fx_muxer_t::handle_exec_host_command (host_command=..., host_info=..., app_candidate="/home/liuan/test1/hello/bin/Release/net9.0/linux-loongarch64/publish/hello.dll", 
    opts=std::unordered_map with 0 elements, argc=<optimized out>, argv=<optimized out>, argoff=<optimized out>, mode=apphost, is_sdk_command=<optimized out>, result_buffer=0x0, 
    buffer_size=<optimized out>, required_buffer_size=0x0) at /home/liuan/project/dotnet-runtime-loongarch/src/native/corehost/fxr/fx_muxer.cpp:1007
#22 0x000000aaaada8a64 in fx_muxer_t::execute (host_command="", argc=<optimized out>, argv=<optimized out>, host_info=..., result_buffer=0x0, buffer_size=0, 
    required_buffer_size=<optimized out>) at /home/liuan/project/dotnet-runtime-loongarch/src/native/corehost/fxr/fx_muxer.cpp:578
#23 0x000000aaaada29f8 in hostfxr_main_bundle_startupinfo (argc=<optimized out>, argv=0xffffff7018, 
    host_path=0xaaab6920c0 "/home/liuan/test1/hello/bin/Release/net9.0/linux-loongarch64/publish/hello", 
    dotnet_root=0xaaab691110 "/home/liuan/test1/hello/bin/Release/net9.0/linux-loongarch64/publish/", app_path=<optimized out>, bundle_header_offset=<optimized out>)
--Type <RET> for more, q to quit, c to continue without paging--
    at /home/liuan/project/dotnet-runtime-loongarch/src/native/corehost/fxr/hostfxr.cpp:48
#24 0x000000aaaad9dd14 in exe_start (argc=<optimized out>, argv=0xffffff7018) at /home/liuan/project/dotnet-runtime-loongarch/src/native/corehost/corehost.cpp:225
#25 0x000000aaaad9e098 in main (argc=<optimized out>, argv=0xffffff7018) at /home/liuan/project/dotnet-runtime-loongarch/src/native/corehost/corehost.cpp:321```

Copy link
Member

@am11 am11 Apr 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it with .NET 8 or .NET 9? #101084 and #101038 removed arch-specificity in .NET 9. It should be reported as AnyCPU: i386+ILOnly. p dwImageType and p/x dwImageType will show what value it's getting.

Comment on lines 1324 to 1325
#elif defined(TARGET_LOONGARCH64)
peLOONGARCH64;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#elif defined(TARGET_LOONGARCH64)
peLOONGARCH64;

This is also PE specific. We use neutral assembly architecture on Unix.

@@ -9,7 +9,7 @@

<!-- Set the RID when building on a platform where we support self-contained + apphost -->
<_SupportedPlatform Condition="'$(TargetsLinux)' == 'true' or '$(TargetsOSX)' == 'true' or '$(TargetsWindows)' == 'true'">true</_SupportedPlatform>
<_SupportedArchitecture Condition="'$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'x86' or '$(TargetArchitecture)' == 'arm' or'$(TargetArchitecture)' == 'arm64'">true</_SupportedArchitecture>
<_SupportedArchitecture Condition="'$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'x86' or '$(TargetArchitecture)' == 'arm' or'$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'loongarch64'">true</_SupportedArchitecture>
Copy link
Member

@am11 am11 Apr 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<_SupportedArchitecture Condition="'$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'x86' or '$(TargetArchitecture)' == 'arm' or'$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'loongarch64'">true</_SupportedArchitecture>
<_SupportedArchitecture Condition="'$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'x86' or '$(TargetArchitecture)' == 'arm' or '$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'loongarch64'">true</_SupportedArchitecture>

(space after or)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your suggestion. I will modify it.

Comment on lines 61 to 69
peNone = 0x00000000,
peMSIL = 0x00000001,
peI386 = 0x00000002,
peIA64 = 0x00000003,
peAMD64 = 0x00000004,
peARM = 0x00000005,
peARM64 = 0x00000006,
peLOONGARCH64 = 0x00000007,
peInvalid = 0xffffffff,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
peNone = 0x00000000,
peMSIL = 0x00000001,
peI386 = 0x00000002,
peIA64 = 0x00000003,
peAMD64 = 0x00000004,
peARM = 0x00000005,
peARM64 = 0x00000006,
peLOONGARCH64 = 0x00000007,
peInvalid = 0xffffffff,
peNone = 0x00000000,
peMSIL = 0x00000001,
peI386 = 0x00000002,
peIA64 = 0x00000003,
peAMD64 = 0x00000004,
peARM = 0x00000005,
peARM64 = 0x00000006,
peInvalid = 0xffffffff,

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @am11. These changes should not be needed. The PEKIND needs to support Windows-specific architectures only for backward compatibility, and it needs to match managed System.Reflection.ProcessorArchitecture that we are not adding non-Windows architectures to.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jkotas, it looks like System.Private.CoreLib has CorFlags: 0xc on all platforms. Should we make this condition match 0xc (pe32Plus & pe32Unmanaged):

if ((CLRPeKind & peILonly) && !(CLRPeKind & pe32Plus) &&
!(CLRPeKind & pe32BitRequired) && dwImageType == IMAGE_FILE_MACHINE_I386)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we always want to treat them as MSIL, we can check the machine flag for non-windows:

// treat non-windows like MSIL
if ((dwImageType ^ IMAGE_FILE_MACHINE_NATIVE_OS_OVERRIDE) != 0 /* 0 is windows */)
{ *PeKind = peMSIL; }

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@am11 @jkotas,I used it earlier NET9, But I just tried it NET10 still has this issue, dwImageType=0x6264,CLRPeKind=pe32Plus.

176	                if(dwImageType == IMAGE_FILE_MACHINE_I386)
(gdb) n
137	        *PeKind = peNone;
(gdb) 
139	        if(CLRPeKind == peNot)
(gdb) 
146	            if ((CLRPeKind & peILonly) && !(CLRPeKind & pe32Plus) &&
(gdb) p dwImageType 
$2 = 25188
(gdb) p/x dwImageType 
$3 = 0x6264
(gdb) p CLRPeKind 
$4 = pe32Plus

So perhaps the previous suggestion can solve the problem

// treat non-windows like MSIL
if ((dwImageType ^ IMAGE_FILE_MACHINE_NATIVE_OS_OVERRIDE) != 0 /* 0 is windows */)
{ *PeKind = peMSIL; }

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When use the - p: PublicSingleFile=true - p: SelfContained=true - p: PublicReadyToRun=true parameter to publish a Hello World single file.The task Csc will use the following command line to generate Hello.dll.

/data/liuan/sdk1/dotnet exec "/data/liuan/sdk1/sdk/10.0.100-preview.3.25201.16/Roslyn/bincore/csc.dll" /noconfig /unsafe- /checked- /nowarn:1701,1702,1701,1702 /fullpaths /nostdlib+ /platform:arm64 /errorreport:prompt /warn:10 /define:TRACE;RELEASE;NET;NET10_0;NETCOREAPP;NET5_0_OR_GREATER;NET6_0_OR_GREATER;NET7_0_OR_GREATER;NET8_0_OR_GREATER;NET9_0_OR_GREATER;NET10_0_OR_GREATER;NETCOREAPP1_0_OR_GREATER;NETCOREAPP1_1_OR_GREATER;NETCOREAPP2_0_OR_GREATER;NETCOREAPP2_1_OR_GREATER;NETCOREAPP2_2_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER /highentropyva+ /nullable:enable /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/Microsoft.CSharp.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/Microsoft.VisualBasic.Core.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/Microsoft.VisualBasic.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/Microsoft.Win32.Primitives.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/Microsoft.Win32.Registry.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/mscorlib.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/netstandard.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.AppContext.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Buffers.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Collections.Concurrent.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Collections.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Collections.Immutable.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Collections.NonGeneric.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Collections.Specialized.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.ComponentModel.Annotations.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.ComponentModel.DataAnnotations.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.ComponentModel.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.ComponentModel.EventBasedAsync.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.ComponentModel.Primitives.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.ComponentModel.TypeConverter.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Configuration.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Console.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Core.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Data.Common.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Data.DataSetExtensions.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Data.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Diagnostics.Contracts.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Diagnostics.Debug.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Diagnostics.DiagnosticSource.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Diagnostics.FileVersionInfo.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Diagnostics.Process.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Diagnostics.StackTrace.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Diagnostics.Tools.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Diagnostics.TraceSource.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Diagnostics.Tracing.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Drawing.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Drawing.Primitives.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Dynamic.Runtime.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Formats.Asn1.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Formats.Tar.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Globalization.Calendars.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Globalization.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Globalization.Extensions.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.Compression.Brotli.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.Compression.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.Compression.FileSystem.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.Compression.ZipFile.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.FileSystem.AccessControl.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.FileSystem.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.FileSystem.DriveInfo.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.FileSystem.Primitives.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.FileSystem.Watcher.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.IsolatedStorage.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.MemoryMappedFiles.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.Pipelines.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.Pipes.AccessControl.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.Pipes.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.IO.UnmanagedMemoryStream.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Linq.AsyncEnumerable.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Linq.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Linq.Expressions.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Linq.Parallel.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Linq.Queryable.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Memory.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.Http.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.Http.Json.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.HttpListener.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.Mail.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.NameResolution.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.NetworkInformation.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.Ping.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.Primitives.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.Quic.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.Requests.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.Security.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.ServerSentEvents.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.ServicePoint.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.Sockets.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.WebClient.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.WebHeaderCollection.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.WebProxy.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.WebSockets.Client.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Net.WebSockets.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Numerics.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Numerics.Vectors.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.ObjectModel.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Reflection.DispatchProxy.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Reflection.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Reflection.Emit.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Reflection.Emit.ILGeneration.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Reflection.Emit.Lightweight.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Reflection.Extensions.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Reflection.Metadata.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Reflection.Primitives.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Reflection.TypeExtensions.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Resources.Reader.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Resources.ResourceManager.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Resources.Writer.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.Extensions.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.Handles.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.InteropServices.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.Intrinsics.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.Loader.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.Numerics.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.Serialization.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.Serialization.Formatters.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.Serialization.Json.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.Serialization.Primitives.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Runtime.Serialization.Xml.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.AccessControl.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Claims.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Cryptography.Algorithms.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Cryptography.Cng.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Cryptography.Csp.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Cryptography.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Cryptography.Encoding.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Cryptography.OpenSsl.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Cryptography.Primitives.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Cryptography.X509Certificates.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Principal.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.Principal.Windows.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Security.SecureString.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.ServiceModel.Web.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.ServiceProcess.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Text.Encoding.CodePages.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Text.Encoding.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Text.Encoding.Extensions.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Text.Encodings.Web.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Text.Json.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Text.RegularExpressions.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Threading.Channels.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Threading.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Threading.Overlapped.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Threading.Tasks.Dataflow.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Threading.Tasks.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Threading.Tasks.Extensions.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Threading.Tasks.Parallel.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Threading.Thread.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Threading.ThreadPool.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Threading.Timer.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Transactions.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Transactions.Local.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.ValueTuple.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Web.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Web.HttpUtility.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Windows.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Xml.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Xml.Linq.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Xml.ReaderWriter.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Xml.Serialization.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Xml.XDocument.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Xml.XmlDocument.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Xml.XmlSerializer.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Xml.XPath.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/System.Xml.XPath.XDocument.dll /reference:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/ref/net10.0/WindowsBase.dll /debug- /debug:portable /filealign:512 /optimize+ /out:obj/Release/net10.0/linux-arm64/hellow.dll /refout:obj/Release/net10.0/linux-arm64/refint/hellow.dll /target:exe /warnaserror- /utf8output /deterministic+ /langversion:13.0 /analyzerconfig:/data/liuan/sdk1/sdk/10.0.100-preview.3.25201.16/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_default.globalconfig /analyzerconfig:obj/Release/net10.0/linux-arm64/hellow.GeneratedMSBuildEditorConfig.editorconfig /analyzer:/data/liuan/sdk1/sdk/10.0.100-preview.3.25201.16/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll /analyzer:/data/liuan/sdk1/sdk/10.0.100-preview.3.25201.16/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll /analyzer:/home/liuan/.nuget/packages/microsoft.net.illink.tasks/10.0.0-preview.3.25171.5/analyzers/dotnet/cs/ILLink.CodeFixProvider.dll /analyzer:/home/liuan/.nuget/packages/microsoft.net.illink.tasks/10.0.0-preview.3.25171.5/analyzers/dotnet/cs/ILLink.RoslynAnalyzer.dll /analyzer:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll /analyzer:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll /analyzer:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll /analyzer:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll /analyzer:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll /analyzer:/data/liuan/sdk1/packs/Microsoft.NETCore.App.Ref/10.0.0-preview.3.25171.5/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll Program.cs obj/Release/net10.0/linux-arm64/hellow.GlobalUsings.g.cs "obj/Release/net10.0/linux-arm64/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs" obj/Release/net10.0/linux-arm64/hellow.AssemblyInfo.cs /warnaserror+:NU1605,SYSLIB0011

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/platform:arm64 is left-over from Windows .NET Framework support. We have dotnet/sdk#42344 and related issues to remove it or change it to anycpu.

You should not see this argument when targeting loongarch at all.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the csc.dll command line on LoongArch64 when it does not work?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should not see this argument when targeting loongarch at all.

Yes, on LoongArch64, the parameter is anycpu.

/home/liuan/sdk/dotnet exec "/home/liuan/sdk/sdk/10.0.100-alpha.1.25066.1/Roslyn/bincore/csc.dll" /noconfig /unsafe- /checked- /nowarn:1701,1702,1701,1702 /fullpaths /nostdlib+ /platform:AnyCPU /errorreport:prompt /warn:10 /define:TRACE;RELEASE;NET;NET10_0;NETCOREAPP;NET5_0_OR_GREATER;NET6_0_OR_GREATER;NET7_0_OR_GREATER;NET8_0_OR_GREATER;NET9_0_OR_GREATER;NET10_0_OR_GREATER;NETCOREAPP1_0_OR_GREATER;NETCOREAPP1_1_OR_GREATER;NETCOREAPP2_0_OR_GREATER;NETCOREAPP2_1_OR_GREATER;NETCOREAPP2_2_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER /highentropyva+ /nullable:enable /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/Microsoft.CSharp.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/Microsoft.VisualBasic.Core.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/Microsoft.VisualBasic.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/Microsoft.Win32.Primitives.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/Microsoft.Win32.Registry.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/mscorlib.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/netstandard.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.AppContext.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Buffers.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Collections.Concurrent.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Collections.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Collections.Immutable.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Collections.NonGeneric.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Collections.Specialized.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.ComponentModel.Annotations.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.ComponentModel.DataAnnotations.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.ComponentModel.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.ComponentModel.EventBasedAsync.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.ComponentModel.Primitives.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.ComponentModel.TypeConverter.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Configuration.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Console.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Core.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Data.Common.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Data.DataSetExtensions.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Data.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Diagnostics.Contracts.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Diagnostics.Debug.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Diagnostics.DiagnosticSource.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Diagnostics.FileVersionInfo.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Diagnostics.Process.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Diagnostics.StackTrace.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Diagnostics.Tools.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Diagnostics.TraceSource.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Diagnostics.Tracing.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Drawing.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Drawing.Primitives.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Dynamic.Runtime.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Formats.Asn1.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Formats.Tar.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Globalization.Calendars.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Globalization.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Globalization.Extensions.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.Compression.Brotli.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.Compression.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.Compression.FileSystem.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.Compression.ZipFile.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.FileSystem.AccessControl.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.FileSystem.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.FileSystem.DriveInfo.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.FileSystem.Primitives.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.FileSystem.Watcher.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.IsolatedStorage.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.MemoryMappedFiles.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.Pipelines.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.Pipes.AccessControl.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.Pipes.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.IO.UnmanagedMemoryStream.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Linq.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Linq.Expressions.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Linq.Parallel.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Linq.Queryable.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Memory.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.Http.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.Http.Json.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.HttpListener.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.Mail.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.NameResolution.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.NetworkInformation.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.Ping.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.Primitives.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.Quic.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.Requests.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.Security.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.ServicePoint.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.Sockets.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.WebClient.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.WebHeaderCollection.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.WebProxy.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.WebSockets.Client.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Net.WebSockets.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Numerics.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Numerics.Vectors.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.ObjectModel.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Reflection.DispatchProxy.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Reflection.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Reflection.Emit.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Reflection.Emit.ILGeneration.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Reflection.Emit.Lightweight.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Reflection.Extensions.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Reflection.Metadata.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Reflection.Primitives.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Reflection.TypeExtensions.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Resources.Reader.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Resources.ResourceManager.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Resources.Writer.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.Extensions.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.Handles.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.InteropServices.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.Intrinsics.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.Loader.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.Numerics.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.Serialization.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.Serialization.Formatters.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.Serialization.Json.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.Serialization.Primitives.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Runtime.Serialization.Xml.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.AccessControl.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Claims.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Cryptography.Algorithms.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Cryptography.Cng.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Cryptography.Csp.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Cryptography.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Cryptography.Encoding.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Cryptography.OpenSsl.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Cryptography.Primitives.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Cryptography.X509Certificates.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Principal.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.Principal.Windows.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Security.SecureString.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.ServiceModel.Web.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.ServiceProcess.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Text.Encoding.CodePages.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Text.Encoding.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Text.Encoding.Extensions.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Text.Encodings.Web.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Text.Json.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Text.RegularExpressions.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Threading.Channels.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Threading.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Threading.Overlapped.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Threading.Tasks.Dataflow.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Threading.Tasks.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Threading.Tasks.Extensions.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Threading.Tasks.Parallel.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Threading.Thread.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Threading.ThreadPool.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Threading.Timer.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Transactions.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Transactions.Local.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.ValueTuple.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Web.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Web.HttpUtility.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Windows.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Xml.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Xml.Linq.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Xml.ReaderWriter.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Xml.Serialization.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Xml.XDocument.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Xml.XmlDocument.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Xml.XmlSerializer.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Xml.XPath.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/System.Xml.XPath.XDocument.dll /reference:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/ref/net10.0/WindowsBase.dll /debug- /debug:portable /filealign:512 /optimize+ /out:obj/Release/net10.0/linux-loongarch64/hello.dll /refout:obj/Release/net10.0/linux-loongarch64/refint/hello.dll /target:exe /warnaserror- /utf8output /deterministic+ /langversion:13.0 /analyzerconfig:/home/liuan/sdk/sdk/10.0.100-alpha.1.25066.1/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_default.globalconfig /analyzerconfig:obj/Release/net10.0/linux-loongarch64/hello.GeneratedMSBuildEditorConfig.editorconfig /analyzer:/home/liuan/sdk/sdk/10.0.100-alpha.1.25066.1/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll /analyzer:/home/liuan/sdk/sdk/10.0.100-alpha.1.25066.1/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll /analyzer:/home/liuan/.nuget/packages/microsoft.net.illink.tasks/10.0.0-alpha.1.25063.12/analyzers/dotnet/cs/ILLink.CodeFixProvider.dll /analyzer:/home/liuan/.nuget/packages/microsoft.net.illink.tasks/10.0.0-alpha.1.25063.12/analyzers/dotnet/cs/ILLink.RoslynAnalyzer.dll /analyzer:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll /analyzer:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll /analyzer:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll /analyzer:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll /analyzer:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll /analyzer:/home/liuan/sdk/packs/Microsoft.NETCore.App.Ref/10.0.0-alpha.1.25063.12/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll Program.cs obj/Release/net10.0/linux-loongarch64/hello.GlobalUsings.g.cs "obj/Release/net10.0/linux-loongarch64/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs" obj/Release/net10.0/linux-loongarch64/hello.AssemblyInfo.cs /warnaserror+:NU1605,SYSLIB0011

The IsReadyToRunPlatformNeutral criterion on LoongArch64 holds for hello.dll because it is in PE32 format. So the reason for generating PE32+files on ARM64 is because /platform:arm64 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@am11 @jkotas Thank you for your help. I understand now. I have updated the architecture.LoongArch64 and removing unnecessary code modifications. The single file 'hello world' published with three parameters - p: PublicSingleFile=true - p: SelfContaining=true - p: PublicReadyToRun=true. is now working properly on LoongArch64.

@@ -69,6 +69,12 @@ public TargetInfo(OSPlatform? os, Architecture? arch, Version targetFrameworkVer
// See https://github.com/dotnet/runtime/issues/41832.
AssemblyAlignment = 4096;
}
else if (Arch == (Architecture)6 /* Architecture.LoongArch64 */)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you see a build break in current main if you use Architecture.LoongArch64? I would expect Architecture.LoongArch64 to be available in the current main.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ok ... I guess it is needed for .NET Framework target.

Copy link
Member

@am11 am11 Apr 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ViktorHofer updated the HostModel project to multi-target recently, if we want, we can use preprocessors in more places:

#if NET
else if (Arch == Architecture.LoongArch64)
...
#endif

(assuming nobody will be publishing for LA64 from VS under .NET Framework)

Copy link

@GerardSmit GerardSmit Apr 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With extensions everything, the following is now possible:

#if NETFRAMEWORK
internal static class ArchitectureExtensions
{
     extension(Architecture)
     {
         public static Architecture LoongArch64 => (Architecture)6;
     }
}
#endif

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lawn123 if you want to use the new extensions syntax:
TargetInfo.cs.txt

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merge upstream main to your PR branch, git clean and rebuild.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I'll give it a try.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, after synchronization, it can be compiled correctly.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! There was a compiler upgrade, which brought the new extension-everything feature.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TargetInfo.cs.txt

I have updated.

@@ -309,7 +309,7 @@ public void AssemblyAlignment()
Bundler bundler = CreateBundlerInstance();
bundler.GenerateBundle(fileSpecs);

var alignment = OperatingSystem.IsLinux() && RuntimeInformation.OSArchitecture == Architecture.Arm64 ? 4096 : 16;
var alignment = OperatingSystem.IsLinux() && RuntimeInformation.OSArchitecture == Architecture.Arm64 ? 4096 : (OperatingSystem.IsLinux() && RuntimeInformation.OSArchitecture == (Architecture)6 ? 16384 : 16);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
var alignment = OperatingSystem.IsLinux() && RuntimeInformation.OSArchitecture == Architecture.Arm64 ? 4096 : (OperatingSystem.IsLinux() && RuntimeInformation.OSArchitecture == (Architecture)6 ? 16384 : 16);
var alignment = OperatingSystem.IsLinux() && RuntimeInformation.OSArchitecture == Architecture.Arm64 ? 4096 : (OperatingSystem.IsLinux() && RuntimeInformation.OSArchitecture == Architecture.LoongArch64 ? 16384 : 16);

It should be always available here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your suggestion. I will modify it

lawn123 added 4 commits April 21, 2025 14:05
Change-Id: I46b8bdbe573f88f17fe60f2415027bf0d570aee7
Change-Id: Ibd9f1165220abe2e777553b1949766d5daa8b5b5
Change-Id: I23f9dedf36492858fdecdaa55225e8660fd7d3d8
Copy link
Member

@am11 am11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

Copy link
Member

@jkotas jkotas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@jkotas jkotas merged commit e714d5d into dotnet:main Apr 22, 2025
75 checks passed
@lawn123 lawn123 deleted the loongarch64_R2R branch April 22, 2025 06:19
@github-actions github-actions bot locked and limited conversation to collaborators May 22, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-loongarch64 area-crossgen2-coreclr community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants