Search Unity

Android IL2CPP build failed due to clang++ error. Way to run linker command with verbose flag?

Discussion in 'Android' started by hungrybelome, Feb 16, 2019.

  1. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    336
    Hi, I'm trying to build an Android IL2CPP build with 2018.3.5f1 on debug build and debug IL2CPP.

    The Android mono build works fine, and the iOS IL2CPP build works fine. I'm thinking that maybe some of my code is referencing iOS-only code, causing the Android AOT compiler to fail. But I'm getting this unhelpful error log, so I was wondering if there is a way to run the clang++ linker command with the -v flag so that I can get more info on what assemblies/code may be causing errors.

    Anyone know how to actually run with -v, as suggested by this error:
    clang++: error: linker command failed due to signal (use -v to see invocation)


    Log:

    Code (csharp):
    1. Failed running /Users/belome/Workspace/2018.3.5f1/Unity.app/Contents/il2cpp/build/il2cppcore/il2cppcore.dll --convert-to-cpp --emit-null-checks --enable-array-bounds-check --dotnetprofile="unityaot" --enable-debugger --compile-cpp --libil2cpp-static --platform="Android" --architecture="ARM64" --configuration="Debug" --outputpath="/Users/belome/Workspace/ar/MyGame/Temp/StagingArea/assets/bin/Data/Native/arm64-v8a/libil2cpp.so" --cachedirectory="/Users/belome/Workspace/ar/MyGame/Assets/../Library/il2cpp_android_arm64-v8a/il2cpp_cache" --additional-include-directories="/Users/belome/Workspace/2018.3.5f1/PlaybackEngines/AndroidPlayer/Tools/bdwgc/include" --additional-include-directories="/Users/belome/Workspace/2018.3.5f1/PlaybackEngines/AndroidPlayer/Tools/libil2cpp/include" --tool-chain-path="/Users/belome/Workspace/android-ndk-r16b" --map-file-parser="/Users/belome/Workspace/2018.3.5f1/Unity.app/Contents/Tools/MapFileParser/MapFileParser" --directory="/Users/belome/Workspace/ar/MyGame/Temp/StagingArea/assets/bin/Data/Managed" --generatedcppdir="/Users/belome/Workspace/ar/MyGame/Temp/StagingArea/Il2Cpp/il2cppOutput"
    2.  
    3. stdout:
    4. Building libil2cpp.so with AndroidToolChain
    5.     Output directory: /Users/belome/Workspace/ar/MyGame/Temp/StagingArea/assets/bin/Data/Native/arm64-v8a
    6.     Cache directory: /Users/belome/Workspace/ar/MyGame/Library/il2cpp_android_arm64-v8a/il2cpp_cache
    7. ObjectFiles: 947 of which compiled: 947
    8.     Time Compile: 30677 milliseconds Bulk_Unity.TextMeshPro_3.cpp
    9.     Time Compile: 28205 milliseconds Bulk_Unity.TextMeshPro_4.cpp
    10.     Time Compile: 22169 milliseconds Bulk_Assembly-CSharp_28.cpp
    11.     Time Compile: 18420 milliseconds Bulk_Unity.TextMeshPro_2.cpp
    12.     Time Compile: 18046 milliseconds Il2CppTypeDefinitions.cpp
    13.     Time Compile: 15781 milliseconds Il2CppInvokerTable.cpp
    14.     Time Compile: 14996 milliseconds Il2CppAttributes.cpp
    15.     Time Compile: 12380 milliseconds Bulk_Assembly-CSharp_3.cpp
    16.     Time Compile: 11448 milliseconds Bulk_Assembly-CSharp-firstpass_4.cpp
    17.     Time Compile: 11312 milliseconds Il2CppMetadataUsage.cpp
    18. Total compilation time: 420403 milliseconds.
    19. il2cpp.exe didn't catch exception: Unity.IL2CPP.Building.BuilderFailedException: /Users/belome/Workspace/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ @"/var/folders/cp/nd4c68ld7gv5685p04l84msh0000gn/T/tmp8OwPUT.tmp" -o "/Users/belome/Workspace/ar/MyGame/Library/il2cpp_android_arm64-v8a/il2cpp_cache/linkresult_00E25250B4842C651EE0608E04DE6D29/libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "/Users/belome/Workspace/android-ndk-r16b/platforms/android-21/arch-arm64" -gcc-toolchain "/Users/belome/Workspace/android-ndk-r16b/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64" -target aarch64-none-linux-android -Wl,--wrap,sigaction -L "/Users/belome/Workspace/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a" -lgnustl_static -llog -Xlinker -Map="/Users/belome/Workspace/ar/MyGame/Library/il2cpp_android_arm64-v8a/il2cpp_cache/linkresult_00E25250B4842C651EE0608E04DE6D29/libil2cpp.map" -rdynamic -fuse-ld=bfd
    20.  
    21. clang++: error: unable to execute command: Segmentation fault: 11
    22. clang++: error: linker command failed due to signal (use -v to see invocation)
    23.  
    24.  
    25.   at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(HashSet`1 objectFiles, CppToolChainContext toolChainContext)
    26.   at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
    27.   at il2cpp.Program.DoRun(String[] args)
    28.   at il2cpp.Program.Run(String[] args)
    29.   at il2cpp.Program.Main(String[] args)
    30. stderr:
    31.  
    32. Unhandled Exception: Unity.IL2CPP.Building.BuilderFailedException: /Users/belome/Workspace/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ @"/var/folders/cp/nd4c68ld7gv5685p04l84msh0000gn/T/tmp8OwPUT.tmp" -o "/Users/belome/Workspace/ar/MyGame/Library/il2cpp_android_arm64-v8a/il2cpp_cache/linkresult_00E25250B4842C651EE0608E04DE6D29/libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "/Users/belome/Workspace/android-ndk-r16b/platforms/android-21/arch-arm64" -gcc-toolchain "/Users/belome/Workspace/android-ndk-r16b/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64" -target aarch64-none-linux-android -Wl,--wrap,sigaction -L "/Users/belome/Workspace/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a" -lgnustl_static -llog -Xlinker -Map="/Users/belome/Workspace/ar/MyGame/Library/il2cpp_android_arm64-v8a/il2cpp_cache/linkresult_00E25250B4842C651EE0608E04DE6D29/libil2cpp.map" -rdynamic -fuse-ld=bfd
    33.  
    34. clang++: error: unable to execute command: Segmentation fault: 11
    35. clang++: error: linker command failed due to signal (use -v to see invocation)
    36.  
    37.  
    38.   at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(HashSet`1 objectFiles, CppToolChainContext toolChainContext)
    39.   at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
    40.   at il2cpp.Program.DoRun(String[] args)
    41.   at il2cpp.Program.Run(String[] args)
    42.   at il2cpp.Program.Main(String[] args)
    43.   at Program.Main(String[] args)
    44.  
    45. UnityEngine.Debug:LogError(Object)
    46. UnityEditorInternal.Runner:RunProgram(Program, String, String, String, CompilerOutputParserBase) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:128)
    47. UnityEditorInternal.Runner:RunNetCoreProgram(String, String, String, CompilerOutputParserBase, Action`1) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:79)
    48. UnityEditorInternal.IL2CPPBuilder:RunIl2CppWithArguments(List`1, Action`1, String) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:366)
    49. UnityEditorInternal.IL2CPPBuilder:ConvertPlayerDlltoCpp(String, String, String, Boolean) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:349)
    50. UnityEditorInternal.IL2CPPBuilder:Run() (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:211)
    51. UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action`1, RuntimeClassRegistry) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:35)
    52. UnityEditor.EditorApplication:Internal_CallGlobalEventHandler()
    53.  
    Thanks for reading!

    *EDIT*
    Fixed the Android IL2CPP error by upgrading to 2018.3.6f1 and reimporting library. Not sure what exactly fixed it.
     
    Last edited: Feb 16, 2019
  2. g-aleksandrov

    g-aleksandrov

    Joined:
    Jan 11, 2019
    Posts:
    6
    I suddenly started to experience same problem with 2018.3.4f1. Reimporting Library didn't help but updating to 2018.3.6f1 fixed it.

    Anyway it would be helpful to know how to invoke linker with -v flag.