Search Unity

Failed running il2cpp.exe

Discussion in 'Web' started by Ewanuk, Aug 11, 2017.

  1. Ewanuk

    Ewanuk

    Joined:
    Jul 9, 2011
    Posts:
    257
    Has there been any work within the last 6 months of releases to fix this?

    Fully half of my webGL builds now just fail and require a full system restart plus a cache clear to fix. in addition, we're now finding cases where a successful build may have mangled code inside that could cause issues anywhere. This means we now have to fully test each feature in our project before release. Completely insane.

    This is extremely frustrating, having to make WebGL builds completely kills the productivity for the day. We're not in a position to upgrade our current version of unity unless we know this will address it. None of the release notes between 5.5.1 and 2017.1.0 mention fixes that relate to these issues.

    The amount of productivity lost is starting to push us towards abandoning Unity completely for our webGL solution. What exactly is going on under the hood of this issue?

    Below is the latest failure we've seen:
    Failed running C:\Program Files\Unity 5 f4\Editor\Data\il2cpp/build/il2cpp.exe --convert-to-cpp --emit-null-checks --enable-stacktrace --enable-array-bounds-check --compile-cpp --libil2cpp-static --platform="WebGL" --architecture="EmscriptenJavaScript" --configuration="Release" --outputpath="D:\a b\a\cLab Unity\cLab\Assets /../Temp/StagingArea/Data\Native\build.js" --cachedirectory="D:\a b\a\cLab Unity\cLab\Assets\..\Library/il2cpp_cache" --compiler-flags="-Oz" --linker-flags="-s PRECISE_F32=2 -s DISABLE_EXCEPTION_CATCHING=0 --memory-init-file 1 -O3 -s NO_EXIT_RUNTIME=1 -g0 -s USE_WEBGL2=1 -s TOTAL_MEMORY=1073741824 --separate-asm --emit-symbol-map --output_eol linux -s MEMFS_APPEND_TO_TYPED_ARRAYS=1 -s ALLOW_MEMORY_GROWTH=1" --js-pre="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\prejs\FileSystem.js" --js-pre="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\prejs\MediaDevices.js" --js-pre="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\prejs\SendMessage.js" --js-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\Audio.js" --js-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\Cursor.js" --js-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\Eval.js" --js-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\FileSystem.js" --js-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\library_memfs.js" --js-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\Logging.js" --js-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\SystemInfo.js" --js-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\UnetWebSocket.js" --js-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\WebCam.js" --js-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\WebRequest.js" --js-libraries="D:\a b\a\cLab Unity\cLab\Assets\Plugins\WebGL\SharedBuffer.jslib" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_AIModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_AnimationModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_AudioModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_ClothModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_CloudWebServicesModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_CoreModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_CrashReportingModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_IMGUIModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_JSONSerializeModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_ParticlesLegacyModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_ParticleSystemModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_Physics2DModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_PhysicsModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_TerrainModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_TerrainPhysicsModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_TextRenderingModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UIModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UmbraModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UNETModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityAdsModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityAnalyticsModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityConnectModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityWebRequestModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_VehiclesModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_VideoModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_VRModule_Dynamic.bc" --additional-libraries="C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_WebModule_Dynamic.bc" --map-file-parser="C:\Program Files\Unity 5 f4\Editor\Data\Tools\MapFileParser\MapFileParser.exe" --extra-types.file="C:\Program Files\Unity 5 f4\Editor\Data\il2cpp\il2cpp_default_extra_types.txt" --assembly="D:\a b\a\cLab Unity\cLab\Temp\StagingArea\Data\Managed\Assembly-CSharp-firstpass.dll" --assembly="D:\a b\a\cLab Unity\cLab\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll" --assembly="D:\a b\a\cLab Unity\cLab\Temp\StagingArea\Data\Managed\Assembly-UnityScript.dll" --assembly="D:\a b\a\cLab Unity\cLab\Temp\StagingArea\Data\Managed\UnityEngine.UI.dll" --assembly="D:\a b\a\cLab Unity\cLab\Temp\StagingArea\Data\Managed\UnityEngine.dll" --generatedcppdir="D:\a b\a\cLab Unity\cLab\Temp\StagingArea\Data\il2cppOutput"

    stdout:
    Building build.js with EmscriptenToolChain.
    Output directory: D:\a b\a\cLab Unity\cLab\Temp\StagingArea\Data\Native
    Cache directory: D:\a b\a\cLab Unity\cLab\Library\il2cpp_cache
    ObjectFiles: 470 of which compiled: 470
    Time Compile: 43092 milliseconds Bulk_Generics_14.cpp
    Time Compile: 30227 milliseconds Bulk_Assembly-CSharp_4.cpp
    Time Compile: 28454 milliseconds Bulk_Generics_5.cpp
    Time Compile: 27669 milliseconds GenericMethods0.cpp
    Time Compile: 25025 milliseconds Bulk_mscorlib_1.cpp
    Time Compile: 24060 milliseconds Bulk_Assembly-CSharp_2.cpp
    Time Compile: 22787 milliseconds GenericMethods1.cpp
    Time Compile: 22101 milliseconds Bulk_mscorlib_6.cpp
    Time Compile: 21816 milliseconds Bulk_Assembly-CSharp_0.cpp
    Time Compile: 20211 milliseconds Bulk_Assembly-CSharp_5.cpp
    Total compilation time: 182898 milliseconds.
    Response file: C:\Users\FrostFire\AppData\Local\Temp\_1676015110\response.rsp
    Response file: C:\Users\FrostFire\AppData\Local\Temp\_142218300\response.rsp
    il2cpp.exe didn't catch exception: Unity.IL2CPP.Building.BuilderFailedException: "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten_Win\python\2.7.5.3_64bit\python.exe" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emcc" -o "D:\a b\a\cLab Unity\cLab\Library\il2cpp_cache\linkresult_9AC891824E9624C9CE12E4DC4AC82085\build.js" -s PRECISE_F32=2 -s DISABLE_EXCEPTION_CATCHING=0 --memory-init-file 1 -O3 -s NO_EXIT_RUNTIME=1 -g0 -s USE_WEBGL2=1 -s TOTAL_MEMORY=1073741824 --separate-asm --emit-symbol-map --output_eol linux -s MEMFS_APPEND_TO_TYPED_ARRAYS=1 -s ALLOW_MEMORY_GROWTH=1 --pre-js "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\prejs\FileSystem.js" --pre-js "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\prejs\MediaDevices.js" --pre-js "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\prejs\SendMessage.js" --js-library "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\Audio.js" --js-library "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\Cursor.js" --js-library "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\Eval.js" --js-library "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\FileSystem.js" --js-library "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\library_memfs.js" --js-library "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\Logging.js" --js-library "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\SystemInfo.js" --js-library "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\UnetWebSocket.js" --js-library "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\WebCam.js" --js-library "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\WebRequest.js" --js-library "D:\a b\a\cLab Unity\cLab\Assets\Plugins\WebGL\SharedBuffer.jslib" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_AIModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_AnimationModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_AudioModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_ClothModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_CloudWebServicesModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_CoreModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_CrashReportingModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_IMGUIModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_JSONSerializeModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_ParticlesLegacyModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_ParticleSystemModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_Physics2DModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_PhysicsModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_TerrainModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_TerrainPhysicsModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_TextRenderingModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UIModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UmbraModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UNETModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityAdsModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityAnalyticsModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityConnectModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityWebRequestModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_VehiclesModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_VideoModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_VRModule_Dynamic.bc" "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib\modules\WebGLSupport_WebModule_Dynamic.bc" @"C:\Users\FrostFire\AppData\Local\Temp\_142218300\response.rsp"

    WARNING:root:did not see a source tree above or next to the LLVM root directory (guessing based on directory of C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten_FastComp_Win\llc), could not verify version numbers match
    INFO:root:(Emscripten: Running sanity checks)
    WARNING:root:java does not seem to exist, required for closure compiler, which is optional (define JAVA in C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\emscripten.config if you want it)
    WARNING:root:closure compiler will not be available
    WARNING:root:--separate-asm works best when compiling to HTML. otherwise, you must yourself load the '.asm.js' file that is emitted separately, and must do so before loading the main '.js` file
    WARNING:root:not all asm.js optimizations are possible with ALLOW_MEMORY_GROWTH, disabling those
    warning: unresolved symbol: glGetInternalformativ
    warning: unresolved symbol: _ZN4FMOD13DSPConnection6setMixEf
    warning: unresolved symbol: glUnmapBuffer
    warning: unresolved symbol: glMapBufferRange
    warning: unresolved symbol: glFlushMappedBufferRange
    wrote symbol map file to D:\a b\a\cLab Unity\cLab\Library\il2cpp_cache\linkresult_9AC891824E9624C9CE12E4DC4AC82085\build.js.symbols
    Traceback (most recent call last):
    File "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emcc", line 13, in <module>
    emcc.run()
    File "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emcc.py", line 1811, in run
    JSOptimizer.flush()
    File "C:\Program Files\Unity 5 f4\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emcc.py", line 1708, in flush
    run_passes(chunks[0], title, just_split=False, j<message truncated>
     
  2. Ewanuk

    Ewanuk

    Joined:
    Jul 9, 2011
    Posts:
    257
    If we can't get a solution to the issue, can we at least get some idea of what IL2CPP is doing under the covers and what could cause it to fail?
     
  3. Marco-Trivellato

    Marco-Trivellato

    Unity Technologies

    Joined:
    Jul 9, 2013
    Posts:
    1,654
    Have you submitted a bug report? If so, what's the number?
     
  4. Ewanuk

    Ewanuk

    Joined:
    Jul 9, 2011
    Posts:
    257
    I have not, I cannot reproduce it reliably, and the error logs here are too long to include in the Details panel of the Unity Bug Reporter Window.

    I cannot attach the project, the code belongs to my employer.

    At this point I'm looking for details on how IL2CPP is used by the build chain so I can troubleshoot further. Is it possible my system is low on memory and something gets bogged down? Is there a specific plugin or code feature of C# that doesn't translate to IL or CPP nicely?
     
  5. Schubkraft

    Schubkraft

    Unity Technologies

    Joined:
    Dec 3, 2012
    Posts:
    1,073
    1) there was a series of blog posts called "IL2CPP Internals" but not sure it is what you are looking for
    3) there are is nothing that doesn't work nicely apart from it being an AOT platform
    2) even of you dont attach the whole project just us getting the complete logs this way might help too
     
  6. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,935
    At this point, IL2CPP is finished translating IL code to C++ code. IL2CPP is now shelling out to Emscripten to compile the C++ code to JavaScript. You can see the Emscripten command line after the message "il2cpp.exe didn't catch exception: Unity.IL2CPP.Building.BuilderFailedException:" (it is pretty long).

    I'm not sure what is causing this, and the error mess from Emscripten is not too helpful here, unfortunately.

    Is an upgrade to a newer version of Unity something you can try on the side to see if it will correct this issue? It might be that an upgrade of the project is too much work for a quick test, but you might also be able to eliminate parts of the from that don't impact script and assembly compilation, and not upgrade those. Only script code and .NET assemblies used in the project are inputs to Emscripten.