Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by dkoontz · Apr 07, 2014 at 05:44 AM · ioscompilationaot

Is it possible to generate the .s files for AOT compiled dll's outside of Unity?

I am trying to use a pure .NET dll that fails AOT compilation for iOS. This has been submitted to Unity as a bug but I want to move forward in the meantime. More modern versions of Mono can AOT compile the dll just fine using:

 mono --aot=static,asmonly FSharp.Core.dll

and then I tried

 mono --aot=mtriple=armv7-ios,static,asmonly,nodebug,full FSharp.Core.dll

This produces the FSharp.Core.dll.s file that you would expect. I then take that file and replace the FSharp.Core.dll.s file in the XCode project that has errors in it from Unity's failed AOT attempt. I then run the app and it hangs in RegisterMonoModules.cpp in the RegisterMonoModules function on:

 mono_aot_register_module(mono_aot_module_FSharp_Core_info); // Thread1: EXC_BAD_ACCESS (code=1, address=0x5d)

If I inspect the assembly generated by mono vs the assembly generated by Unity's AOT there are some differences, Unity compiled files start like this:

 #if defined(__arm__)
 .text
     .align 3
 methods:
     .space 16
     .align 2
 ...

Direct Mono compiled files (using the second command given above):

 .text
     .align 3
 methods:
     .space 16
 .text
     .align 4
 L_m_0:
 ...

I'm guessing Unity invokes the mono AOT in a slightly different manner than I am doing, hopefully not in a super customized way. Does anyone know the compiler flags I would need to duplicate Unity's compiled versions or if there are any other problems that await me should that succeed?

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by povilas · Apr 08, 2014 at 02:20 PM

It's not possible to use a different mono version than unity uses. Newer mono is very likely to be incompatible with the mono runtime that Unity uses - the data layout may be different, new internal functions may be called, etc. Any such incompatibilities may lead to loss of features at best and a crash at worst. Unfortunately here we're observing the latter case.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

22 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Error with iOS compile: Cross Compilation job Mono.WebBrowser.dll failed 1 Answer

Failed to load AOT module 'mscorlib' while running in aot-only mode 0 Answers

Loading scripts dynamically in AoT compilers 1 Answer

Saving Data on IOS produces JIT Error in Xcode 2 Answers

Templates/Generic - AOT problems 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges