-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Android: AOT compiler fails on Windows in directory named BuildAot AndÜmläüts
#88625
Comments
cc @radical |
BuildAot AndÜmläüts
BuildAot AndÜmläüts
From the binlog:
The runtime changes in that PR are 3e87528...3110693 . It also includes b3d2503 - with the new cc @steveisok |
@directhex could this possibly be related to LLVM changes? |
Sorry, forgot to post the It appears that only this one test with |
Where can I most easily download a suitably equipped |
I think the exact build from the PR above is: https://dotnetbuilds.azureedge.net/public/Sdk/8.0.100-preview.7.23360.1/dotnet-sdk-8.0.100-preview.7.23360.1-win-x64.exe Then you should be able to do:
^^ untested, but hopefully that repros? |
I can't satisfy myself that my environment is dependably "correct", but my testing seems to imply LLVM 16 is not the cause of issues. Can someone who isn't me:
|
I was able to confirm this has nothing to do with LLVM and has everything to do with the aot compiler not supporting non-ASCII symbols. @jonathanpeppers, I'm not sure how this test passed before. The problem in either case is that the aot compiler tries to The fix would be to modify the aot compiler to support unicode files. I think that would be a pretty big, at the very least, validation task, so this is not something we can fix in the short term. |
Would passing relative paths to the aot compiler help? Though I think we had some problems with that in the past. And it would help only with unicode chars in the containing project directory name. Update: and I can't say where it would fail next down the build pipeline! |
I suspect this is how it somehow worked before. We've had this test passing since 2020 or so: dotnet/android@28add0d Maybe something changed from a relative path to a full path recently? |
cc @mdh1418 |
Could you please point to the code for this? I'm wondering what file is it trying to load, and how it got that path. |
runtime/src/mono/mono/mini/aot-compiler.c Lines 15358 to 15367 in 693eef6
|
So |
I don't know why yet, but the unicode name ends up in the path. For example:
|
runtime/src/mono/mono/mini/aot-compiler.c Lines 8776 to 8777 in 693eef6
runtime/src/mono/mono/mini/aot-compiler.c Lines 8550 to 8563 in 693eef6
|
oh, sorry, I thought |
Do you have the binlog handy? I want to check |
@radical here you go. @jonathanpeppers, I noticed the binlog you provided and the reproduction steps differ in that the latter will have a unicode named assembly and working directory versus just a unicode named working directory. I still think the end result is the same though. |
So the MonoAOTCompiler is passing We could sanitize that temp path before passing it.. but I don't know what else the aot-compiler will get stuck on! I can't reproduce myself, so somebody else will have to try this. |
Our test might be setting something like I would focus on just the project directory being the issue -- as customers a lot of the time will have something like |
How does that case fail? project directory |
It is the
|
Changes: dotnet/installer@28d4a6b...ca467d6 Changes: dotnet/runtime@3e87528...ae99bb2 Changes: dotnet/emsdk@60a73f9...afbff08 Changes: dotnet/cecil@3e46711...1a6a83a Updates: * Microsoft.Dotnet.Sdk.Internal: from 8.0.100-preview.7.23330.16 to 8.0.100-preview.7.23364.32 * Microsoft.NETCore.App.Ref: from 8.0.0-preview.7.23329.8 to 8.0.0-preview.7.23364.3 * Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport: from 8.0.0-preview.7.23326.1 to 8.0.0-preview.7.23361.2 * Microsoft.NET.ILLink.Tasks: from 8.0.0-preview.7.23329.8 to 8.0.0-preview.7.23364.3 * Microsoft.DotNet.Cecil: from 0.11.4-alpha.23327.1 to 0.11.4-alpha.23360.2 ~~ Other changes ~~ * Update `.apkdesc` files for app size changes * Ignore several tests around an LLVM build issue on Windows: dotnet/runtime#88625 * Workarounds for behavior changes around `$DOTNET_ROOT`: This appears to be the way to get `<Csc/>` to pick the right `dotnet`: https://github.com/dotnet/roslyn/pull/68918/files#diff-ec99cd9453fe657dd1ea08e93e94b0bb51c51484b8ad25882d312564e5fe8e26R61 * [tests] disable failing Java.Interop tests under LLVM dotnet/runtime#89190 * Bump to xamarin/java.interop/main@62efc0980 Changes: dotnet/java-interop@151b03e...62efc09 Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>
Description
This happened during code flow here: dotnet/android#8176
Reproduction Steps
mkdir 'BuildAot AndÜmläüts' && cd 'BuildAot AndÜmläüts'
dotnet new android
dotnet build -c Release
Expected behavior
Build succeeds.
Actual behavior
<MonoAOTCompiler/>
MSBuild task fails.Regression?
Yes
Known Workarounds
You could disable AOT with
-p:RunAOTCompilation=false
, but this is a default setting forRelease
builds.Configuration
.NET SDK 8.0.100-preview.7.23360.1
Other information
It appears this may only be an issue on Windows?
The text was updated successfully, but these errors were encountered: