-
Notifications
You must be signed in to change notification settings - Fork 5k
csc.dll code 139 error when building project on .NET Core 2.1.302 Ubuntu 16.04 ARM64 #10933
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
Comments
Adding info from the Roslyn issue: This currently has not been investigated. For a work around to this issue please use the dotnet core 2.2 aarch64 preview release in place of dotnet core 2.1 for aarch64. The latest preview of 2.2 can be found https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-linux-arm64.tar.gz. If the link no longer works see: https://github.com/dotnet/core-sdk for more downloads. Please feel free to target netcoreapp2.1, just use the newer runtime. Currently the dotnet core 3.0 preview is broken due to https://github.com/dotnet/coreclr/issues/19805. Once it is fixed I will update with a link and suggest using the 3.0 preview. |
I tried this version and it didn't work for me: |
@pellet Can you provide more details about your platform so that I can know if we have the same issue or not? P.S. I am not working on this anymore but would like to keep track of the issue for the future. |
@gauravagarwal28 sure it's ubuntu 16 arm64. I've switched to using mono for the time being. |
The problem still exists on 2.1.402 and 2.2.100-preview3-009423. |
Here is mine testcase: Processing post-creation actions... Restore succeeded. The build failed. Please fix the build errors and run again. rock64@rock64:~/dev/myApp$ dotnet --info Runtime Environment: Host (useful for support): .NET Core SDKs installed: .NET Core runtimes installed: To install additional .NET Core runtimes or SDKs: |
I installed preview version of dotnet: Runtime Environment: Host (useful for support): .NET Core SDKs installed: .NET Core runtimes installed: To install additional .NET Core runtimes or SDKs: rock64@rock64:~/dev$ dotnet new console -o myApp2 --force
|
@olgierdd as for the package restoration issue, the arm64 2.2 packages for the runtime you are using are not on nuget yet. You need to add <?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="myget" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
</packageSources>
</configuration> The same is tru in case you'd like to try the 3.0 SDK nightly builds. |
I concur with @hez2010 . I still have the issue with 2.2.100-preview3-009423, but not 3.0.100-alpha1-009640 |
@janvorli Thenks for helpful hint. I was able to restore packages, but compilation still does not work. The build failed. Please fix the build errors and run again. rock64@rock64:~/dev/myApp5$ dotnet --info Runtime Environment: Host (useful for support): .NET Core SDKs installed: .NET Core runtimes installed: To install additional .NET Core runtimes or SDKs: |
I confirm dotnet core 3.0.100-alpha1-009640 works on ROCK64 ARM64. Good job. Runtime Environment: Host (useful for support): .NET Core SDKs installed: .NET Core runtimes installed: To install additional .NET Core runtimes or SDKs: |
I still see this problem in 2.1.403:
Build fails with:
|
Hit by dotnet/coreclr#20885 |
I'm getting the same issue with the GA bits .NET Core 2.2 for ARM64 (dotnet-sdk-2.2.100-linux-arm64.tar.gz)
I did the build with /bl on, and pulled down the msbuild.binlog file to my Windows 10 laptop.
Or if someone wants to the msbuild.binlog file itself, I'm more than happy to stick it up on an S3 bucket or something. |
I am also receiving this error when trying to simply do the Hello World tutorial.
Armbian Ubunto 18.04 build. Used the precompiled dotnet-sdk-2.2.100-linux-arm64.tar.gz 3.0.100-preview-009820 seems to have the problem fixed, but it would be good to have it fixed in 2.2... |
I also got same error 'error MSB6006: "csc.dll" exited with code 139' on arm64 (dotnet-sdk-2.2.100-linux-arm64.tar.gz) root@odroid-stretch64:/opt/webapp2# dotnet --info Runtime Environment: Host (useful for support): .NET Core SDKs installed: .NET Core runtimes installed: To install additional .NET Core runtimes or SDKs: Restore completed in 262.96 ms for /opt/webapp2/webapp2.csproj. |
I can confirm I ran repro it reliably on my Raspberry PI 3 with aarch64 arch linux. From the first look at the stack trace it looks like a GC hole. I will look into it. |
I've found what's wrong. It is not a GC hole, but rather a JIT bug when accessing If I recall it correctly, The relevant part of the callee code looks like this: 0000ffff3f3de8a0 a0630191 add x0, x29, #0x58 <<< Arg location Nullable<System.Security.Cryptography.HashAlgorithmName>
^^^^^^^^^^^^^^^^ The value at that location contains byte 0x01 followed by eight bytes of the System.Security.Cryptography.HashAlgorithmName
0000ffff3f3de8a4 0b004039 ldrb w11, [x0]
0000ffff3f3de8a8 ab630039 strb w11, [x29, #0x18] <<< local Nullable<System.Security.Cryptography.HashAlgorithmName> (hasValue )
0000ffff3f3de8ac 000440f9 ldr x0, [x0, #0x8]
0000ffff3f3de8b0 a01300f9 str x0, [x29, #0x20] <<< local Nullable<System.Security.Cryptography.HashAlgorithmName> (the value) And the relevant part of the code of the caller ( 0000ffff3fcf9844 e0a30039 strb w0, [sp, #0x28] <<< This is the 'hasValue' member
0000ffff3fcf9848 eb9302f8 stur x11, [sp, #0x29] <<< This is the actual value
0000ffff3fcf984c e00317aa mov x0, x23
0000ffff3fcf9850 abc340f9 ldr x11, [x29, #0x180]
0000ffff3fcf9854 eb0300f9 str x11, [sp]
0000ffff3fcf9858 cbcffff0 adrp x11, -1541
0000ffff3fcf985c 6b413d91 add x11, x11, #0xf50
0000ffff3fcf9860 030080d2 mov x3, #0x0
0000ffff3fcf9864 040080d2 mov x4, #0x0
0000ffff3fcf9868 c9cffff0 adrp x9, -1541
0000ffff3fcf986c 29413d91 add x9, x9, #0xf50
0000ffff3fcf9870 290140f9 ldr x9, [x9]
0000ffff3fcf9874 20013fd6 blr x9 Due to this issue, the call to I've debugged it with 2.2.101-rtm-009628 release of the .NET core SDK (coreclr commit 418e094916). |
I think This should repro for any |
That is not correct.
That is correct. |
Ah, I got mislead by the reflection code - what I've said is true only for "this" reference. |
@AndyAyersMS just in case you've missed that from the conversation above, the issue is fixed in master, so it would be great to figure out which commit was the cure and port it to 2.2. |
Looked for likely PRs but nothing looked exactly like this. I would have to do some digging. Before I do that let me see if anyone else recognizes this issue with passing or receiving (potentially odd-sized) structs as memory args on Arm64. @dotnet/arm64-contrib does the above ring any bells? Something that got fixed in the past few months? |
We don't support ARM64 in 2.x (https://github.com/dotnet/coreclr/issues/19843), so do we need to keep this issue open? |
Agree -- given that ARM64 is not supported in 2.2, I think we should close this. |
I have downloaded .NET Core SDK for linux ARM64 on my Jetson TX2 running ubuntu 16.04.
However I am unable to run any dotnet application (even the hello world example) on my Jetson TX2.
I wish to build iotedge for Jetson TX2 and dotnet Core 2.1 is a dependency for the same.
This is my binary log file. I had to rename it with a .zip extension to upload here.
just rename the file from msbuild.binlog.zip to msbuild.binlog
msbuild.binlog.zip
dotnet/roslyn#29194
The text was updated successfully, but these errors were encountered: