100% reproducible AOT compiler crash
My AIR project causes the (non-legacy) AOT compiler to crash during compilation 100% of the time.
To be very clear: this is a crash in the compiler, and NOT in the compiled application.
I created a bug in Adobe's bugbase back in September; the bug was incorrectly marked as a duplicate of a bug causing *runtime crashes in the compiled application*, using the new compiler. I've posted additional comments to my bug explaining that it was incorrectly marked as a duplicate, but it's months later, and no response.
There seem to be Adobe engineers paying some attention to this forum, so I'm trying my luck over here, as whoever's in charge of triaging the bugbase issues is completely unresponsive. (If you can't tell, this is pretty frustrating!)
My bugbase bug is Bug#3822043 - iOS AOT packaging crash
I'm copy-pasting the details below as well.
It'd be great to hear back from somebody at Adobe about this! I can work around the bug using the legacyAOT compiler, but the iOS game I'm developing will not ship till next year, and I'm worried about being out of luck when Apple flips the mandatory-64-bit switch on App Store submissions -- presumably 64-bit support will come to the new AOT compiler and not the legacy one.
Thanks,
Tim Conkling
---
Title
iOS AOT packaging crash
Description
Problem Description:
I just updated to AIR SDK 15, and my project fails to package using the new (fast/non-legacy) AOT compiler.
(I had not used the new AOT compiler prior to AIR 15, so this crash may have been present in earlier versions)
Steps to Reproduce:
Compile my project with AIR SDK 15
Actual Result:
I get the following crash while packaging with the new AOT compiler:
package-ios:
[java] 0 compile-abc 0x00962048 PrintStackTrace(void*) + 40
[java] 1 compile-abc 0x009624c1 SignalHandler(int) + 449
[java] 2 libsystem_platform.dylib 0x963c1deb _sigtramp + 43
[java] 3 libsystem_platform.dylib 0xffffffff _sigtramp + 1774445119
[java] 4 compile-abc 0x0005bb3b halfmoon::Cleaner::simplify(halfmoon::BlockEndInstr*) + 667
[java] 5 compile-abc 0x0005c696 halfmoon::cleanBlocks(halfmoon::Context*, halfmoon::InstrGraph*, halfmoon::Cleaner*) + 166
[java] 6 compile-abc 0x0005e204 halfmoon::removeDeadCode(halfmoon::Context*, halfmoon::InstrGraph*) + 324
[java] 7 compile-abc 0x00051d1c halfmoon::AbcBuilder::visitBlocks(nanojit::Seq<halfmoon::AbcBlock*>*) + 316
[java] 8 compile-abc 0x000c5776 halfmoon::parseAbc(avmplus::MethodInfo*, halfmoon::Lattice*, halfmoon::InfoManager*, nanojit::Allocator&, halfmoon::AbcGraph*, avmplus::Toplevel*, avmplus::AbcEnv*, halfmoon::ProfiledInformation*, halfmoon::Context&) + 182
[java] 9 compile-abc 0x000c6483 halfmoon::JitWriter::writeEpilogue(avmplus::FrameState const*) + 211
[java] 10 compile-abc 0x0012eceb avmplus::NullWriter::writeEpilogue(avmplus::FrameState const*) + 27
[java] 11 compile-abc 0x001887cc avmplus::Verifier::verify(avmplus::CodeWriter*) + 1260
[java] 12 compile-abc 0x0000535f compile_abc::CompilerCore::emitPoolinSpilttedModules(compile_abc::PoolInfo&) + 1055
[java] 13 compile-abc 0x0000424d compile_abc::CompilerCore::compile() + 4909
[java] 14 compile-abc 0x00002c6f compile_abc::CompilerCore::run(int, char**) + 1471
[java] 15 compile-abc 0x00006402 main + 66
[java] 16 compile-abc 0x00001835 start + 53
[java] Stack dump:
[java] 0. Program arguments: /export/flex/AIRSDK/lib/aot/bin/compile-abc/compile-abc -mtriple=armv7-apple-ios -filetype=obj -sdk /export/flex/AIRSDK/lib/aot/lib/avmglue.abc -fields /export/flex/AIRSDK/lib/aot/lib/air-fields.arm-air.txt -O3 -ane-symbol=nativeUtilsExtInitializer -ane-symbol=nativeUtilsExtFinalizer -ane-symbol=AirPushExtInitializer -ane-symbol=AirPushExtFinalizer -abc-file-list=/export/aciv/dist/AOTBuildOutput4100343720286006462.tmp/ABCFilesList.txt
[java] Compilation failed while executing : compile-abc
[java] /var/folders/3m/vj94gw0d1sbbjdvn17jnm5br0000gn/T/cmd1708876391282881035.tmp: line 2: 3273 Bus error: 10 "/export/flex/AIRSDK/lib/aot/bin/compile-abc/compile-abc" "-mtriple=armv7-apple-ios" "-filetype=obj" "-sdk" "/export/flex/AIRSDK/lib/aot/lib/avmglue.abc" "-fields" "/export/flex/AIRSDK/lib/aot/lib/air-fields.arm-air.txt" "-O3" "-ane-symbol=nativeUtilsExtInitializer" "-ane-symbol=nativeUtilsExtFinalizer" "-ane-symbol=AirPushExtInitializer" "-ane-symbol=AirPushExtFinalizer" "-abc-file-list=/export/aciv/dist/AOTBuildOutput4100343720286006462.tmp/ABCFilesList.txt"
Expected Result:
It shouldn't crash ![]()
Any Workarounds:
Using the legacy AOT compiler, via the "-useLegacyAOT yes" compiler option, works without issue
