2016-08-12 5 views
2

この製品には複数のソースパッケージが含まれています。ソースパッケージの中には、autotool/confを使用してビルドされているものがあります。NDK12b:スタンドアロンのツールチェーンと同じビルドスクリプトを使用したclangとgccの異なるELF

GoogleがNDK-13からNDKのデフォルトコンパイラとしてclangに切り替えると述べたところに基づいて、私たちは* .mkファイルのスイッチとenvのセットアップとビルドのスクリプトに進みました。ファイルを変更する場所はありません。

古いNDK-10dを使用していたので、NDK-12bに切り替えました。 Androidのドキュメントで推奨されているように、ビルドスクリプトを簡素化して全面的に標準化するために、スタンドアロンのツールチェーンも生成しました。

私が直面している問題は、ネイティブコードがロードされるとすぐに起動時のクラッシュです。私が気づいたのは、logcatに関する警告です。unused DT entry: type 0x6ffffffeVERNEED)と0x6fffffffVERNEEDNUM)です。

次に、恐怖症:A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x30 in tid 22246

スタックトレースは非常に、非常に少ない私に語った:readelf -dによってダンプされたようELFs内のデータを比較することアーム-Linuxが生成されたバイナリのもの2つのDTエントリが存在しないことを示していること

08-11 15:31:02.421 128-128/? I/DEBUG:  #00 pc 00036b8c /system/lib/libc.so 
08-11 15:31:02.421 128-128/? I/DEBUG:  #01 pc 0003817b /system/lib/libc.so (vfprintf+18) 
08-11 15:31:02.421 128-128/? I/DEBUG:  #02 pc 00035251 /system/lib/libc.so (fprintf+12) 
08-11 15:31:02.421 128-128/? I/DEBUG:  #03 pc 000015fd /data/app/com.myapp.demo-1/lib/arm/libappdebug.so (pipe_listen+328) 
08-11 15:31:02.421 128-128/? I/DEBUG:  #04 pc 0001659b /system/lib/libc.so 
08-11 15:31:02.421 128-128/? I/DEBUG:  #05 pc 000144c3 /system/lib/libc.so 

お知らせ-androideabi-gcc-4.9 builds。

アイデア、ポインター、...何でも...非常に高く評価されています。私は今、(赤面の)3日間に固執しています。

ありがとうございました。

+0

2つのバージョンの 'readelf -d'の出力の違いを表示しておけば助けになりました... – not2qubit

答えて

0

unused DT entryの問題を調べる必要があります。ライブラリを使用して別の場所にパイプを張っている場合は、その警告が毎回表示され、ゴミを受け取るためにパイプが危険にさらされたり、あなたのアプリが気分を害したりします。私の投稿hereを見てください。

関連する問題