2011/06/13

【OpenSSL】aes-armv4.o.d.org が無い

 
OpenSSl 1.0.0a を Android 用にビルドしようとしているのですが、
 
openssl/obj/local/armeabi/objs/crypto/aes/asm/aes-armv4.o.d.org':
そのようなファイルやディレクトリはありません
   ( No such file or directory )
 
openssl/obj/local/armeabi/objs/crypto/aes/asm/aes-armv4.o] エラー 1
 
が出てしまう。crypto/Android.mk 内の arm_src_files で定義されている
拡張子 '.s' を 'S' にすればOK、と紹介されてるのだが変わらん。
 
 
Linux システムでコンパイルしているのに、なぜこんな事に。
  
Android.mk を弄ったり、1.0.0a でに追加関数の実装をコメント化したり、
非常にめんどい。
 
と8時間ぐらい色々やっていたのですが…
 
ndk-build 一発で通るプロジェクトあった。
 
手動で修正しまくってたのが、すでに反映されていて涙目。ありがたい。
libcrypto.so と libssl.so が生成できます。
 
Android4(android1.6) 向けにコンパイルするには crypto/dso/dso_dlfcn.c に
定義されている dlfcn_pathbyaddr() の内部実装をコメント化する必要アリ。
 
dso_dlfcn.c:445 error: 'Dl_info' undeclared (first use in this function)
 
上記エラーが出てしまうので。 
 
 
さて一番最初のエラー、
 
openssl/obj/local/armeabi/objs/crypto/aes/asm/aes-armv4.o] エラー 1
 
これ11時間かけて、答えにたどりついた
 
差分が一切無い状態なのに、コンパイルが通るパターンと通らないパターンがあり、
非常にハマった。今までで初めての現象。
 
アセンブラリファイルの拡張子が 'S' に統一されておらず 's' が紛れ込んでるのが
原因。gcc では s と S では動作が異なるのが理由です。
 
Android.mk の話ではなく、実ファイルのことです。
 
 
11時間返してくれ。

0 件のコメント:

コメントを投稿