Skip to content
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

AOT fails on テスト.dll #6685

Closed
jonathanpeppers opened this issue Jan 28, 2022 · 3 comments
Closed

AOT fails on テスト.dll #6685

jonathanpeppers opened this issue Jan 28, 2022 · 3 comments
Assignees
Labels
Area: App+Library Build Issues when building Library projects or Application projects.
Milestone

Comments

@jonathanpeppers
Copy link
Member

jonathanpeppers commented Jan 28, 2022

Android application type

Classic Xamarin.Android (MonoAndroid12.0, etc.), Android for .NET (net6.0-android, etc.)

Affected platform version

xamarin-android/main

Description

If I add proj.AotAssemblies = true; to this test, it fails:

https://github.com/xamarin/xamarin-android/blob/ce0d212e85f5710ebcfd68533221cead76bda5ec/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs#L123-L134

C:\src\xamarin-android\bin\Debug\lib\xamarin.android\xbuild\Xamarin\Android\Xamarin.Android.Legacy.targets(692,5): error XA3001: Could not AOT the assembly: テスト.dll [C:\src\xamarin-android\bin\TestDebug\temp\SmokeTestBuildWithSpecialCharactersFalse\テスト\テスト.csproj]

Steps to Reproduce

  1. Create a Xamarin.Android or .NET 6 project named テスト
  2. Build with -p:Configuration=Release -p:AotAssemblies=true

Did you find any workaround?

Probably rename the assembly?

Relevant log output

No response

@jonathanpeppers jonathanpeppers added Area: App+Library Build Issues when building Library projects or Application projects. needs-triage Issues that need to be assigned. labels Jan 28, 2022
@jonathanpeppers jonathanpeppers added this to the .NET 6 milestone Jan 28, 2022
@jonathanpeppers jonathanpeppers removed the needs-triage Issues that need to be assigned. label Jan 28, 2022
@steveisok
Copy link
Member

@jonathanpeppers I think this might be something with the runtime aot task and/or compiler.

@jonathanpeppers
Copy link
Member Author

Yeah, it doesn't work in Xamarin.Android either -- so I think it might be the AOT compiler.

@steveisok
Copy link
Member

ok, I'll move this issue into runtime then.

jonpryor pushed a commit that referenced this issue Mar 17, 2022
Context: fd5f31c
Context: #6685
Context: https://github.com/xamarin/xamarin-android-binutils
Context: dotnet/android-native-tools@6d4e3bb
Context: #6840

Changes: dotnet/android-native-tools@2.35.2-XA.1...L_13.0.1-4.0.1

So far, Xamarin.Android has been using a GNU Binutils toolchain to
compile and link native assembler code we generate during application
build.  Unfortunately, Binutils have a problem with certain filename
encodings on Windows -- which required that we downgrade to Binutils
2.35.2 in commit fd5f31c -- so we decided to switch to an LLVM-based
toolchain which handles such file names without issues.

However, as mono/mono & dotnet/runtime AOT expects a
GNU Binutils-compatible toolchain, it was necessary to implement a
GNU Assembler (`gas`) wrapper around the LLVM `llvm-mc` assembler, so
that command lines used by the Mono AOT compiler keep working fine.

Since LLVM utilities are multi-target by default and, unlike GNU
Binutils, LLVM doesn't need separate builds of every utility, we now
provide GNU Binutils architecture-prefixed wrapper scripts which
invoke their LLVM counterparts with appropriate parameters.

The following LLVM utilities are included:

  - `llvm-mc` (assembler)
  - `lld` (linker)
  - `llvm-strip`

Migrating to LLVM from GNU Binutils increases our install size:

  * macOS `.pkg` size increases by ~29MB,
    installation size increases by ~75MB.
  * Windows `.vsix` size increases by ~14MB,
    installation size increases by ~40MB.

Aside: We've updated our unit tests to set
`$(_DisableParallelAot)`=True, because when AOT is done in parallel,
it's very difficult to make sense of the AOT compiler messages, as
messages from multiple processes are all intermixed.  We're disabling
parallel AOT to preserve our sanity when things break.

TODO: the Resulting `.apk` sizes also increase unexpectedly, with
`Xamarin.Forms_Performance_Integration-Signed-Release-Profiled-Aot.apkdesc`
showing a 1.7MB increase in `.apk` size.  We believe that this is
because of more verbose debug symbols.
#6840 will track this.
@ghost ghost locked as resolved and limited conversation to collaborators Jun 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Area: App+Library Build Issues when building Library projects or Application projects.
Projects
None yet
Development

No branches or pull requests

3 participants