Friday, January 14, 2011

__aeabi_f2uiz

之前一直遇到jni lib load不起來的問題
一直苦於無法在device上打開linker的log
所以一直不知道到底是什麼原因dlopen會fail掉
而且如果直接把linker換掉
device也就直接爛掉了....

最後只好用肉眼來比較可以load的library跟load 不起來的library
幸好在plt 就看到不一樣了
不能動的lib那多了一個 __aeabi_f2uiz

幸好也有人遇到跟我一樣的問題
而David Tuner剛好也回了他
讓我有個方向來進行
http://groups.google.com/group/android-developers/browse_thread/thread/636d11723aae3117


最後發現 我build的時候 是for emulator的
所以在device上會跑不起來

最後就
source build/envsetup.sh
lunch
然後選要跑的device就解決了aeabi_f2uiz的問題了

2011.11.17
在android-4.0的AOSP裡 libbcc的code
也在RuntimeStub.c看到 他們也遇到 __aeabi_f2uiz missing的問題


 82 #if defined(__arm__)
 83 // NOTE: __aeabi_f2uiz is missing from libgcc which comes with android,
 84 // so here's the workaround.  Remove this when __aeabi_f2uiz is available
 85 // from libgcc.
 86 unsigned int __aeabi_f2uiz(float a)
 87   __attribute__((weak, alias("__fixunssfsi")));
 88 #endi

No comments: