aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMister Oyster <oysterized@gmail.com>2018-01-07 13:51:41 +0100
committerMister Oyster <oysterized@gmail.com>2018-01-07 13:51:41 +0100
commit6470d7e9300829516b6fbe155082cc9ff11bf867 (patch)
treea764e5597d757b2499acd71d26c9c3a5f41dee81
parentcc930e44058118d3f87bdc11fc8a1837d7d66b6f (diff)
libshim: add '__pthread_gettid' shim for MM/3.18-based mediatek devices
Based off https://github.com/ashwinr64/android_device_motorola_taido shim
-rw-r--r--README.md3
-rw-r--r--libshims/Android.mk11
-rw-r--r--libshims/misc/bionic.cpp24
-rw-r--r--product/libshims.mk4
4 files changed, 41 insertions, 1 deletions
diff --git a/README.md b/README.md
index 5c3f2e4..2155ceb 100644
--- a/README.md
+++ b/README.md
@@ -29,8 +29,9 @@ The only configuration libshim needs is the following flags :
`#LIBSHIM_UI_SYMBOLS := true`
`#LIBSHIM_GUI_SYMBOLS := true`
`#LIBSHIM_OMX_SYMBOLS := true`
+`#LIBSHIM_BIONIC_SYMBOLS := true`
`#LIBSHIM_AGPS_SYMBOLS := true`
-`#LIBSHIM_ATOMIC_SYMBOLS := true`
+`#LIBSHIM_ATOMIC_SYMBOLS := true`
(copy/paste in `BoardConfig.mk` & uncomment the flags you need)
# Optional :
diff --git a/libshims/Android.mk b/libshims/Android.mk
index b5c764e..0fab3ed 100644
--- a/libshims/Android.mk
+++ b/libshims/Android.mk
@@ -29,6 +29,17 @@ LOCAL_CFLAGS := -O3 -Wno-unused-variable -Wno-unused-parameter
LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_SHARED_LIBRARY)
+
+## libshim_bionic
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := bionic.cpp
+LOCAL_MODULE := libshims_bionic
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_SHARED_LIBRARIES := libc
+include $(BUILD_SHARED_LIBRARY)
+
+
## libshim_omx
include $(CLEAR_VARS)
diff --git a/libshims/misc/bionic.cpp b/libshims/misc/bionic.cpp
new file mode 100644
index 0000000..f92ec52
--- /dev/null
+++ b/libshims/misc/bionic.cpp
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2017 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <pthread.h>
+
+extern "C" {
+pid_t __pthread_gettid(pthread_t t) {
+ return pthread_gettid_np(t);
+ }
+}
+
diff --git a/product/libshims.mk b/product/libshims.mk
index 674b04b..211489a 100644
--- a/product/libshims.mk
+++ b/product/libshims.mk
@@ -19,6 +19,10 @@ ifeq ($(LIBSHIM_OMX_SYMBOLS),true)
PRODUCT_PACKAGES += libshim_omx
LINKER_FORCED_SHIM_LIBS := $(LINKER_FORCED_SHIM_LIBS):/vendor/lib/libMtkOmxVdec.so|libshim_omx.so
endif
+ifeq ($(LIBSHIM_BIONIC_SYMBOLS),true)
+PRODUCT_PACKAGES += libshim_bionic
+LINKER_FORCED_SHIM_LIBS := $(LINKER_FORCED_SHIM_LIBS):/system/lib/libc.so|libshims_bionic.so:/system/lib64/libc.so|libshims_bionic.so
+endif
ifeq ($(LIBSHIM_AGPS_SYMBOLS),true)
PRODUCT_PACKAGES += libshim_agps
LINKER_FORCED_SHIM_LIBS := $(LINKER_FORCED_SHIM_LIBS):/vendor/bin/mtk_agpsd|libshim_agps.so