Copy link to clipboard
Copied
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
---
iOS AOT packaging crash
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
Copy link to clipboard
Copied
Hi,
Could you please share a sample app with this problem at govindag@adobe.com?
Thanks
Govind
Copy link to clipboard
Copied
Hi Govind,
Just sent email with a sample project.
For anyone else following along: this seems to be caused by a third-party library my project uses (protobuf.swc - tconkling/protoc-gen-as3 · GitHub).
Copy link to clipboard
Copied
Hi,
Thanks for sharing the project.
we are able to reproduce issue at our end. we are investigating it
Best Regards,
Jitender
Copy link to clipboard
Copied
Any updates on this? We have the same problem in our project with the latest AIR SDK 16 and beta releases. We had no problem with AIR 14, but we NEED to update since Apple is requiring the 64-bit update by Feb 1.
We tried taking out all ANEs and SWCs, and looked at all conditional compilation codes to make sure they are not empty, but it still shows the same problem. Please fix it soon, otherwise we can't update our app after Feb 1. Thanks!
Here are the error outputs we got when exporting release build to iOS:
Error occurred while packaging the application:
0 compile-abc 0x00c38708 llvm::sys::PrintStackTrace(__sFILE*) + 40
1 compile-abc 0x00c3898c PrintStackTraceSignalHandler(void*) + 28
2 compile-abc 0x00c38c21 SignalHandler(int) + 433
3 libsystem_platform.dylib 0x91744deb _sigtramp + 43
4 libsystem_platform.dylib 0xffffffff _sigtramp + 1854648895
5 compile-abc 0x00062001 halfmoon::Cleaner::simplify(halfmoon::BlockEndInstr*) + 641
6 compile-abc 0x00062ba6 halfmoon::cleanBlocks(halfmoon::Context*, halfmoon::InstrGraph*, halfmoon::Cleaner*) + 166
7 compile-abc 0x00064674 halfmoon::removeDeadCode(halfmoon::Context*, halfmoon::InstrGraph*) + 324
8 compile-abc 0x00057e5d halfmoon::AbcBuilder::visitBlocks(nanojit::Seq<halfmoon::AbcBlock*>*) + 317
9 compile-abc 0x000d5d78 halfmoon::parseAbc(avmplus::MethodInfo*, halfmoon::Lattice*, halfmoon::InfoManager*, nanojit::Allocator&, halfmoon::AbcGraph*, avmplus::Toplevel*, avmplus::AbcEnv*, halfmoon::ProfiledInformation*, halfmoon::Context&) + 184
10 compile-abc 0x000d6adf halfmoon::JitWriter::writeEpilogue(avmplus::FrameState const*) + 223
11 compile-abc 0x00146c4b avmplus::NullWriter::writeEpilogue(avmplus::FrameState const*) + 27
12 compile-abc 0x001a65e1 avmplus::Verifier::verify(avmplus::CodeWriter*) + 1281
13 compile-abc 0x00005984 compile_abc::CompilerCore::emitPoolToSpilttedModules(compile_abc::PoolInfo&) + 1092
14 compile-abc 0x00004885 compile_abc::CompilerCore::compile() + 5029
15 compile-abc 0x00003255 compile_abc::CompilerCore::run(int, char**) + 1429
16 compile-abc 0x00007363 main + 147
17 compile-abc 0x00001e35 start + 53
18 compile-abc 0x00000009 start + 4294959625
Stack dump:
0. Program arguments: /Applications/Adobe Flash Builder 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK/lib/aot/bin/compile-abc/compile-abc -mtriple=armv7-apple-ios -filetype=obj -sdk /Applications/Adobe Flash Builder 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK/lib/aot/lib/avmglue.abc -fields /Applications/Adobe Flash Builder 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK/lib/aot/lib/air-fields.arm-air.txt -O3 -abc-file-list=/Users/michael/BTSync/michael/blast/flash/bin-release-temp/AOT/AOTBuildOutput1569862434000997258.tmp/ABCFilesList.txt
/var/folders/lb/6qf0rdhd565gn7_wrgsj17g00000gn/T/cmd4649154888160376913.tmp: line 2: 81263 Bus error: 10 "/Applications/Adobe Flash Builder 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK/lib/aot/bin/compile-abc/compile-abc" "-mtriple=armv7-apple-ios" "-filetype=obj" "-sdk" "/Applications/Adobe Flash Builder 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK/lib/aot/lib/avmglue.abc" "-fields" "/Applications/Adobe Flash Builder 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK/lib/aot/lib/air-fields.arm-air.txt" "-O3" "-abc-file-list=/Users/michael/BTSync/michael/blast/flash/bin-release-temp/AOT/AOTBuildOutput1569862434000997258.tmp/ABCFilesList.txt"
Compilation failed while executing : compile-abc
Copy link to clipboard
Copied
An update on this issue, for anyone following along:
I've had some back and forth with Govind, from Adobe, who's confirmed the issue is caused by a corrupt swc. (The protobuf library I'm using.)
Since I'm compiling the swc with the latest AIR SDK (I've tried the latest stable build of AIR 15 as well as the beta AIR 16), any corruption is a result of the compc compiler. I'm including a link to a stripped-down sample project that demonstrates the issue:
Running the included ant build will compile the protobuf swc, compile and link the AOTCrasher swf, and then (attempt) to package that swf into an iOS ipa. The compile-abc process crashes and spits out a stacktrace.
Copy link to clipboard
Copied
Hi there. Do you know if it is possible to use the legacy compiler in CS6? I am using SDK 16 and am getting the same error as you mention above. Any help would be appreciated.
Copy link to clipboard
Copied
I don't use Flash CS, so I'm not sure. (I'm compiling with the command-line tools.)
However, the error seems to be related to class names with special characters in them. My project uses a third-party swc that has classnames with "$" in them. Do you have an unusually-named classes in your project?
Copy link to clipboard
Copied
thanks for the response.
For the code I wrote myself there will be no special characters - I never use anything other than CamelCase naming.
After reading a bit two things stand out for me in my project:
1. I am making use of shineMP3_alchemy.swc which could have oddly named class names. I can't be sure though - how do I check?!
2. I include a really large SWC that contains animations which I extrapolated because my Flash kept crashing (7MB file)
thanks again.
Copy link to clipboard
Copied
If you don't have access to the source code for shineMP3, I think there are swf/swc decompilation tools out there? (I don't have any direct experience with them, but "swf decompiler" pops up some Google results)
Copy link to clipboard
Copied
Thanks for all the responses tconkling. I also tried version 15 of the SDK but I still get the -abc error on compile.
My app starts off with an embedded H263 FLV video playing (or at least it used to). I also have a similar app that doesn't start with the video and it still runs fine. Looks like there's issues around the video playback or something.
Just wish I could get it exported with the new SDK to test.
Copy link to clipboard
Copied
Hi
I has the same problem by use a third-party library (protobuf.swc - tconkling/protoc-gen-as3 · GitHub).
Now, I fix this bug by modify TextFormat.as.
private static function skipWhitespace(source:ISource):void {
for (;; ) {
const b:int = source.read()
switch (b) {
case 0x20:/* space */
case 0x09:/* \t */
case 0x0a:/* \n */
case 0x0d:/* \r */
continue
case 0x23:/* # */
for (;;) {
var isLineEnd:Boolean = false;
switch (source.read()) {
case 0x0a:/* \n */
case 0x0d:/* \r */
isLineEnd = true;
break;
default:
break;
}
if(isLineEnd)
{
break;
}
}
break;
default:
source.unread(b)
return
}
}
}
Good luck!
Copy link to clipboard
Copied
We are not using that library but THANK YOU for pointing us to the right direction. I remembered another thread talking about empty switch statements, and we searched our code for those and this was the cause:
switch(this._list.selectedIndex)
{
case 0:
break;
}
Although this does nothing, but the syntax is correct and the compiler/linker should handle it.
Thanks again.
Copy link to clipboard
Copied
Thanks a lot for pointing this out. (Incidentally, that's my Github repo, though I'm not the original author of the protobuf library. I'll add your fix.)
I've sent several followup emails to govindag@adobe.com about this, with small test cases, but haven't heard back for several months