diff options
author | Elliott Hughes <enh@google.com> | 2018-04-03 15:56:35 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2018-04-03 21:53:29 -0700 |
commit | 46a943c8333a9293d02c302d26d965de2b2c8ec7 (patch) | |
tree | 30b9f51323061d7a46577ac22995146c3e328340 | |
parent | 4cdde64728e4d15f6abc2d713c40adaff7b0fc56 (diff) |
Support getting/setting API level in static binaries.
Bug: http://b/27917272
Test: fixes static semaphore.sem_wait_no_EINTR_in_sdk_less_equal_than_23 test
Change-Id: Ifeeff20772ff0308aab9417d48671b604a3e9665
-rw-r--r-- | libc/bionic/libc_init_static.cpp | 12 | ||||
-rw-r--r-- | libdl/Android.bp | 2 | ||||
-rw-r--r-- | libdl/libdl_static.cpp (renamed from libdl/libdl_static.c) | 28 |
3 files changed, 22 insertions, 20 deletions
diff --git a/libc/bionic/libc_init_static.cpp b/libc/bionic/libc_init_static.cpp index 93a63b543..d19dd2882 100644 --- a/libc/bionic/libc_init_static.cpp +++ b/libc/bionic/libc_init_static.cpp @@ -113,6 +113,16 @@ __noreturn void __libc_init(void* raw_args, exit(slingshot(args.argc, args.argv, args.envp)); } +static uint32_t g_target_sdk_version{__ANDROID_API__}; + +extern "C" uint32_t android_get_application_target_sdk_version() { + return g_target_sdk_version; +} + uint32_t bionic_get_application_target_sdk_version() { - return __ANDROID_API__; + return android_get_application_target_sdk_version(); +} + +extern "C" void android_set_application_target_sdk_version(uint32_t target) { + g_target_sdk_version = target; } diff --git a/libdl/Android.bp b/libdl/Android.bp index 082cdead1..d5fae0eff 100644 --- a/libdl/Android.bp +++ b/libdl/Android.bp @@ -74,7 +74,7 @@ cc_library { whole_static_libs: ["libdl_static"], }, static: { - srcs: ["libdl_static.c"], + srcs: ["libdl_static.cpp"], }, cflags: [ "-Wall", diff --git a/libdl/libdl_static.c b/libdl/libdl_static.cpp index 0dbd73fbd..714676258 100644 --- a/libdl/libdl_static.c +++ b/libdl/libdl_static.cpp @@ -17,41 +17,33 @@ #include <dlfcn.h> #include <link.h> #include <stdlib.h> -#include <stdbool.h> -// Proxy calls to bionic loader -void* dlopen(const char* filename __unused, int flag __unused) { - return NULL; +void* dlopen(const char* /*filename*/, int /*flag*/) { + return nullptr; } char* dlerror() { - return NULL; + return nullptr; } -void* dlsym(void* handle __unused, const char* symbol __unused) { - return NULL; +void* dlsym(void* /*handle*/, const char* /*symbol*/) { + return nullptr; } -void* dlvsym(void* handle __unused, - const char* symbol __unused, - const char* version __unused) { - return NULL; +void* dlvsym(void* /*handle*/, const char* /*symbol*/, const char* /*version*/) { + return nullptr; } -int dladdr(const void* addr __unused, Dl_info* info __unused) { +int dladdr(const void* /*addr*/, Dl_info* /*info*/) { return 0; } -int dlclose(void* handle __unused) { +int dlclose(void* /*handle*/) { return -1; } #if defined(__arm__) -_Unwind_Ptr dl_unwind_find_exidx(_Unwind_Ptr pc __unused, int* pcount __unused) { +_Unwind_Ptr dl_unwind_find_exidx(_Unwind_Ptr /*pc*/, int* /*pcount*/) { return 0; } #endif - -void android_set_application_target_sdk_version(uint32_t target __unused) { -} - |