2017-04-10 39 views
0

我有一個基本的SDL2編譯android安裝程序。構建SDL2 for android(在OSX 10.11.6上)w/ndk-每次在不同的SDL文件上構建致命錯誤

當我運行ndk-build,它(在全部下文)吐出位錯誤日誌,與重點線(我認爲)是這樣的:

[armeabi] Compile thumb : SDL2 <= SDL_dummyaudio.c 
fatal error: error in backend: Cannot select: 0x7fb5830ed1c0: i32 = ARMISD::SSAT 0x7fb5830d9080, Constant:i32<15> 

我每次編譯(字面意思只是重新鍵入ndk-build),它在不同的地方出現錯誤。例如:

[armeabi] Compile thumb : SDL2 <= SDL_clipboardevents.c 
fatal error: error in backend: Cannot select: 0x7fbf7187dfc0: i32 = ARMISD::SSAT 0x7fbf72152880, Constant:i32<15> 

我可以只保留打字nkd-build和它不斷跳躍各地,在不同的地方示數(我已經試過只是在做它像50次在一排,看看會發生什麼,它不它似乎永遠不會穩定或自行解決)。

我重新啓動了電腦,完成了ndk-build clean,我能想到的所有東西。

下面是第一個例子的輸出。所有其他輸出看起來非常相似。

Android NDK: WARNING: APP_PLATFORM android-23 is larger than android:minSdkVersion 10 in ./AndroidManifest.xml  
make[1]: Entering directory `/Users/phildo/Desktop/doodle_plus/android-project' 
[armeabi] StaticLibrary : libstdc++.a 
[armeabi-v7a] StaticLibrary : libstdc++.a 
[x86] StaticLibrary : libstdc++.a 
[armeabi] Compile thumb : SDL2 <= SDL.c 
[armeabi] Compile thumb : SDL2 <= SDL_assert.c 
[armeabi] Compile thumb : SDL2 <= SDL_error.c 
[armeabi] Compile thumb : SDL2 <= SDL_hints.c 
[armeabi] Compile thumb : SDL2 <= SDL_log.c 
[armeabi] Compile thumb : SDL2 <= SDL_audio.c 
[armeabi] Compile thumb : SDL2 <= SDL_audiocvt.c 
[armeabi] Compile thumb : SDL2 <= SDL_audiodev.c 
[armeabi] Compile thumb : SDL2 <= SDL_audiotypecvt.c 
[armeabi] Compile thumb : SDL2 <= SDL_mixer.c 
[armeabi] Compile thumb : SDL2 <= SDL_wave.c 
[armeabi] Compile thumb : SDL2 <= SDL_androidaudio.c 
[armeabi] Compile thumb : SDL2 <= SDL_dummyaudio.c 
fatal error: error in backend: Cannot select: 0x7fb5830ed1c0: i32 = ARMISD::SSAT 0x7fb5830d9080, Constant:i32<15> 
    0x7fb5830d9080: i32 = add 0x7fb5830d9240, 0x7fb5830ed000 
    0x7fb5830d9240: i32 = sra 0x7fb5830ed3f0, Constant:i32<8> 
     0x7fb5830ed3f0: i32 = add 0x7fb5830d8600, 0x7fb5830d8a60 
     0x7fb5830d8600: i32 = add 0x7fb5830dc110, 0x7fb5830ed8c0 
      0x7fb5830dc110: i32 = mul 0x7fb5830d9320, 0x7fb5830dc500 
      0x7fb5830d9320: i32,ch = load<LD2[%15](tbaa=<0x7fb5824276a8>), sext from i16> 0x7fb582724e90, 0x7fb5830d94e0, undef:i32 
       0x7fb5830d94e0: i32 = add 0x7fb5830d91d0, Constant:i32<2> 
       0x7fb5830d91d0: i32,ch = CopyFromReg 0x7fb582724e90, Register:i32 %vreg2 
        0x7fb5830dc960: i32 = Register %vreg2 
       0x7fb5830d8670: i32 = Constant<2> 
       0x7fb5830d8bb0: i32 = undef 
      0x7fb5830dc500: i32,ch = load<LD2[%12](tbaa=<0x7fb582445738>), sext from i16> 0x7fb582724e90, 0x7fb5830d8f30, undef:i32 
       0x7fb5830d8f30: i32 = add 0x7fb5830d8d70, Constant:i32<6> 
       0x7fb5830d8d70: i32,ch = CopyFromReg 0x7fb582724e90, Register:i32 %vreg0 
        0x7fb5830ed690: i32 = Register %vreg0 
       0x7fb5830dcab0: i32 = Constant<6> 
       0x7fb5830d8bb0: i32 = undef 
      0x7fb5830ed8c0: i32 = mul 0x7fb5830d90f0, 0x7fb5830dc810 
      0x7fb5830d90f0: i32,ch = load<LD2[%2](tbaa=<0x7fb5824276a8>), sext from i16> 0x7fb582724e90, 0x7fb5830d91d0, undef:i32 
       0x7fb5830d91d0: i32,ch = CopyFromReg 0x7fb582724e90, Register:i32 %vreg2 
       0x7fb5830dc960: i32 = Register %vreg2 
       0x7fb5830d8bb0: i32 = undef 
      0x7fb5830dc810: i32,ch = load<LD2[%6](tbaa=<0x7fb582445738>), sext from i16> 0x7fb582724e90, 0x7fb5830dc420, undef:i32 
       0x7fb5830dc420: i32 = add 0x7fb5830d8d70, Constant:i32<4> 
       0x7fb5830d8d70: i32,ch = CopyFromReg 0x7fb582724e90, Register:i32 %vreg0 
        0x7fb5830ed690: i32 = Register %vreg0 
       0x7fb5830dbfc0: i32 = Constant<4> 
       0x7fb5830d8bb0: i32 = undef 
     0x7fb5830d8a60: i32 = srl 0x7fb5830d8c20, Constant:i32<24> 
      0x7fb5830d8c20: i32 = sra 0x7fb5830d8600, Constant:i32<31> 
      0x7fb5830d8600: i32 = add 0x7fb5830dc110, 0x7fb5830ed8c0 
       0x7fb5830dc110: i32 = mul 0x7fb5830d9320, 0x7fb5830dc500 
       0x7fb5830d9320: i32,ch = load<LD2[%15](tbaa=<0x7fb5824276a8>), sext from i16> 0x7fb582724e90, 0x7fb5830d94e0, undef:i32 
        0x7fb5830d94e0: i32 = add 0x7fb5830d91d0, Constant:i32<2> 


        0x7fb5830d8bb0: i32 = undef 
       0x7fb5830dc500: i32,ch = load<LD2[%12](tbaa=<0x7fb582445738>), sext from i16> 0x7fb582724e90, 0x7fb5830d8f30, undef:i32 
        0x7fb5830d8f30: i32 = add 0x7fb5830d8d70, Constant:i32<6> 


        0x7fb5830d8bb0: i32 = undef 
       0x7fb5830ed8c0: i32 = mul 0x7fb5830d90f0, 0x7fb5830dc810 
       0x7fb5830d90f0: i32,ch = load<LD2[%2](tbaa=<0x7fb5824276a8>), sext from i16> 0x7fb582724e90, 0x7fb5830d91d0, undef:i32 
        0x7fb5830d91d0: i32,ch = CopyFromReg 0x7fb582724e90, Register:i32 %vreg2 

        0x7fb5830d8bb0: i32 = undef 
       0x7fb5830dc810: i32,ch = load<LD2[%6](tbaa=<0x7fb582445738>), sext from i16> 0x7fb582724e90, 0x7fb5830dc420, undef:i32 
        0x7fb5830dc420: i32 = add 0x7fb5830d8d70, Constant:i32<4> 


        0x7fb5830d8bb0: i32 = undef 
      0x7fb5830ed070: i32 = Constant<31> 
      0x7fb5830dc8f0: i32 = Constant<24> 
     0x7fb5830d9010: i32 = Constant<8> 
    0x7fb5830ed000: i32 = mul 0x7fb5830d8b40, 0x7fb5830ed700 
     0x7fb5830d8b40: i32,ch = load<LD2[%24](tbaa=<0x7fb582445738>), zext from i16> 0x7fb582724e90, 0x7fb5830ed5b0, undef:i32 
     0x7fb5830ed5b0: i32 = add 0x7fb5830d8d70, Constant:i32<2> 
      0x7fb5830d8d70: i32,ch = CopyFromReg 0x7fb582724e90, Register:i32 %vreg0 
      0x7fb5830ed690: i32 = Register %vreg0 
      0x7fb5830d8670: i32 = Constant<2> 
     0x7fb5830d8bb0: i32 = undef 
     0x7fb5830ed700: i32 = ARMISD::CMOV 0x7fb5830dc730, 0x7fb5830dcce0, Constant:i32<0>, Register:i32 %CPSR, 0x7fb5830d8750 
     0x7fb5830dc730: i32 = add 0x7fb5830dcce0, Constant:i32<-16> 
      0x7fb5830dcce0: i32 = AssertZext 0x7fb5830dca40, ValueType:ch:i8 
      0x7fb5830dca40: i32,ch = CopyFromReg 0x7fb582724e90, Register:i32 %vreg1 
       0x7fb5830d8de0: i32 = Register %vreg1 
      0x7fb5830d8910: i32 = Constant<-16> 
     0x7fb5830dcce0: i32 = AssertZext 0x7fb5830dca40, ValueType:ch:i8 
      0x7fb5830dca40: i32,ch = CopyFromReg 0x7fb582724e90, Register:i32 %vreg1 
      0x7fb5830d8de0: i32 = Register %vreg1 
     0x7fb5830ed540: i32 = Constant<0> 
     0x7fb5830d88a0: i32 = Register %CPSR 
     0x7fb5830d8750: glue = ARMISD::CMPZ 0x7fb5830dc650, Constant:i32<0> 
      0x7fb5830dc650: i32 = and 0x7fb5830dcce0, Constant:i32<8> 
      0x7fb5830dcce0: i32 = AssertZext 0x7fb5830dca40, ValueType:ch:i8 
       0x7fb5830dca40: i32,ch = CopyFromReg 0x7fb582724e90, Register:i32 %vreg1 
       0x7fb5830d8de0: i32 = Register %vreg1 
      0x7fb5830d9010: i32 = Constant<8> 
      0x7fb5830ed540: i32 = Constant<0> 
    0x7fb5830dc2d0: i32 = Constant<15> 
In function: MS_ADPCM_nibble 
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation) 
Android clang version 3.8.275480 (based on LLVM 3.8.275480) 
Target: armv5te-none-linux-android 
Thread model: posix 
InstalledDir: /usr/local/Cellar/android-ndk/r14/toolchains/llvm/prebuilt/darwin-x86_64/bin 
clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script. 
clang: note: diagnostic msg: 
******************** 

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: 
Preprocessed source(s) and associated run script(s) are located at: 
clang: note: diagnostic msg: /var/folders/g6/j2xtb5gn5vg_0cx52d35t1ww0000gn/T/SDL_wave-aa9d26.c 
clang: note: diagnostic msg: /var/folders/g6/j2xtb5gn5vg_0cx52d35t1ww0000gn/T/SDL_wave-aa9d26.sh 
clang: note: diagnostic msg: 

******************** 
make[1]: *** [obj/local/armeabi/objs/SDL2/src/audio/SDL_wave.o] Error 70 

回答

0

好的。發現這是LLVM中的一個錯誤?解決問題的方法是將NDK_TOOLCHAIN_VERSION := 4.9置於jni/Application.mk之內,以便切換到gcc直到它被修復。