Stop using weak symbols in libvndksupport.
These weak symbols are no longer necessary because we no longer need to statically link libvndksupport. Furthermore, these symbols are not really optional when libvndksupport is dynamically linked. When the library is linked with --as-needed the linker may drop the reference to libdl_android.so, which leads to a failure to boot. Bug: 146456667 Change-Id: I4d2290d8d0206e0d89665d4d872a7c53b3e1531b
This commit is contained in:
parent
18c6248ffe
commit
683192270f
1 changed files with 4 additions and 15 deletions
|
@ -26,9 +26,7 @@
|
|||
|
||||
#include <initializer_list>
|
||||
|
||||
__attribute__((weak)) extern "C" android_namespace_t* android_get_exported_namespace(const char*);
|
||||
__attribute__((weak)) extern "C" void* android_dlopen_ext(const char*, int,
|
||||
const android_dlextinfo*);
|
||||
extern "C" android_namespace_t* android_get_exported_namespace(const char*);
|
||||
|
||||
namespace {
|
||||
|
||||
|
@ -42,10 +40,8 @@ struct VendorNamespace {
|
|||
static VendorNamespace get_vendor_namespace() {
|
||||
static VendorNamespace result = ([] {
|
||||
for (const char* name : {"sphal", "default"}) {
|
||||
if (android_get_exported_namespace != nullptr) {
|
||||
if (android_namespace_t* ns = android_get_exported_namespace(name)) {
|
||||
return VendorNamespace{ns, name};
|
||||
}
|
||||
if (android_namespace_t* ns = android_get_exported_namespace(name)) {
|
||||
return VendorNamespace{ns, name};
|
||||
}
|
||||
}
|
||||
return VendorNamespace{};
|
||||
|
@ -59,10 +55,6 @@ int android_is_in_vendor_process() {
|
|||
if (getpid() == 1) {
|
||||
return 0;
|
||||
}
|
||||
if (android_get_exported_namespace == nullptr) {
|
||||
ALOGD("android_get_exported_namespace() not available. Assuming system process.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// In vendor process, 'vndk' namespace is not visible, whereas in system
|
||||
// process, it is.
|
||||
|
@ -76,10 +68,7 @@ void* android_load_sphal_library(const char* name, int flag) {
|
|||
.flags = ANDROID_DLEXT_USE_NAMESPACE,
|
||||
.library_namespace = vendor_namespace.ptr,
|
||||
};
|
||||
void* handle = nullptr;
|
||||
if (android_dlopen_ext != nullptr) {
|
||||
handle = android_dlopen_ext(name, flag, &dlextinfo);
|
||||
}
|
||||
void* handle = android_dlopen_ext(name, flag, &dlextinfo);
|
||||
if (!handle) {
|
||||
ALOGE("Could not load %s from %s namespace: %s.", name, vendor_namespace.name,
|
||||
dlerror());
|
||||
|
|
Loading…
Reference in a new issue