diff options
Diffstat (limited to 'external/cppunit/android.patch')
-rw-r--r-- | external/cppunit/android.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/external/cppunit/android.patch b/external/cppunit/android.patch new file mode 100644 index 000000000000..59ae4517abf1 --- /dev/null +++ b/external/cppunit/android.patch @@ -0,0 +1,33 @@ +--- misc/cppunit-1.13.1/config/ltmain.sh ++++ misc/build/cppunit-1.13.1/config/ltmain.sh +@@ -3228,6 +3228,12 @@ + fi + else + ++ # Force no versioning suffix for Android thanks to silly ++ # apkbuilder which doesn't add extra native libs unless their ++ # name ends with .so ++ ++ version_type=none ++ + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 +--- misc/cppunit-1.13.1/src/cppunit/UnixDynamicLibraryManager.cpp ++++ misc/build/cppunit-1.13.1/src/cppunit/UnixDynamicLibraryManager.cpp +@@ -13,7 +13,15 @@ + DynamicLibraryManager::LibraryHandle + DynamicLibraryManager::doLoadLibrary( const std::string &libraryName ) + { ++#ifdef __ANDROID__ ++ // Use our enhanced dlopen() wrapper, see sal/osl/android/jni/lo-wrapper.c ++ void *(*lo_dlopen)(const char *) = (void *(*)(const char *)) dlsym( RTLD_DEFAULT, "lo_dlopen" ); ++ if (lo_dlopen == NULL) ++ return NULL; ++ return (*lo_dlopen)( libraryName.c_str() ); ++#else + return ::dlopen( libraryName.c_str(), RTLD_NOW | RTLD_GLOBAL ); ++#endif + } + + |