* common
+ '-rdynamic' is not supported. android dynamic linker allows 'undefined symbol' only for weak symbol.(See (*1)) + 'tmpfile()' function always returns NULL. "No such file or directory!" + 'strtod()' doesn't support '0xXXXX' format.
* NDK 8
'regex.h' exists in 'include'. But function bodies are not in library.
* NDK 9
'pthread_rwlock_xxxx' is declared in 'pthread.h'. But body is missing in library. 'pthread_exit' is declared without 'noreturn' attribute. 'regex' functions doesn't work as it should be. (bug? or not-implemented yet?? I have no idea.)
to be continued...
===== Details =====
(*1) : '-rdynamic' and 'weak' symbol (Updated at 2011-Aug-29)
Here is sample code to for testing 'weak' symbol at Android.
[ main.c ] #include <dlfcn.h> #include <stdio.h> int g_d; void main() { void* handle; void (*prf)(void); g_d = 369; handle = dlopen("/data/libgtst.so", RTLD_LAZY); if (!handle) { printf("Fail to load library\n"); return; } prf = dlsym(handle, "print_g"); if (NULL != dlerror()) { printf("Fail to get symbol print_g\n"); return; } (*prf)(); printf("=== DONE! ===\n"); } [ lib.c ] #include <stdio.h> extern int g_d __attribute__((weak)); void print_g(void) { printf("==> %d\n", g_d); } [ Android.mk ] LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libgtst LOCAL_SRC_FILES := lib.c LOCAL_CFLAGS := LOCAL_C_INCLUDES += $(NDK_PROJECT_PATH) include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := test LOCAL_SRC_FILES := main.c LOCAL_CFLAGS := LOCAL_LDFLAGS := LOCAL_C_INCLUDES += $(NDK_PROJECT_PATH) include $(BUILD_EXECUTABLE) ----- Test Steps ----- * build above codes at Android NDK adb push libgtst.so /data/libgtst.so adb push test /data/test adb shell /data/test ==> 369 === DONE! ===
to be continued...
'Domain > Android' 카테고리의 다른 글
[Android] Handling kernel device uevent in userspace. (0) | 2011.04.20 |
---|---|
[Android][GNU] establishing gnu system root on android devices (0) | 2011.03.18 |
[Android] Classify unexpected cases (0) | 2010.10.29 |
[Android] Eclipse: Android requires .class compatibility set ...to 5.0 (0) | 2010.06.15 |
[Android-Eclair] Miscellaneous tips. (0) | 2010.04.09 |