Allow the Renderscript Compat lib to work on devices running ICS or lower.
- WAR for the bug that the dynamic linker ignores RTLD_LOCAL on older devices.
- Cleanup of Android.mk for librsjni
Change-Id: Icaf29339a29e7f0a7381d883c0ab8a1212b1575d
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
index 3ba5014..f42022e 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
@@ -998,11 +998,17 @@
} else {
android.util.Log.v(LOG_TAG, "RS compat mode");
}
- if (!rs.nLoadSO(useNative)) {
+ if (!useNative || !rs.nLoadSO(useNative)) {
if (useNative) {
android.util.Log.v(LOG_TAG, "Unable to load libRS.so, falling back to compat mode");
}
- if (!useNative || !rs.nLoadSO(false)) {
+ try {
+ System.loadLibrary("RSSupport");
+ } catch (UnsatisfiedLinkError e) {
+ Log.e(LOG_TAG, "Error loading RS Compat library: " + e);
+ throw new RSRuntimeException("Error loading RS Compat library: " + e);
+ }
+ if (!rs.nLoadSO(false)) {
throw new RSRuntimeException("Error loading libRSSupport library");
}
}
diff --git a/v8/renderscript/jni/Android.mk b/v8/renderscript/jni/Android.mk
index 3c921bb..aa08c9d 100644
--- a/v8/renderscript/jni/Android.mk
+++ b/v8/renderscript/jni/Android.mk
@@ -14,19 +14,15 @@
libcutils \
libRSDispatch
-rs_generated_include_dir := $(call generated-sources-dir-for,SHARED_LIBRARIES,libRSSupport,,)
LOCAL_C_INCLUDES += \
$(JNI_H_INCLUDE) \
frameworks/rs \
- frameworks/rs/cpp \
- $(rs_generated_include_dir)
+ frameworks/rs/cpp
LOCAL_CFLAGS += -Wno-unused-parameter -U_FORTIFY_SOURCE
-LOCAL_ADDITIONAL_DEPENDENCIES := $(addprefix $(rs_generated_include_dir)/,rsgApiFuncDecl.h)
LOCAL_MODULE:= librsjni
-LOCAL_ADDITIONAL_DEPENDENCIES += $(rs_generated_source)
LOCAL_MODULE_TAGS := optional
LOCAL_REQUIRED_MODULES := libRSSupport
LOCAL_32_BIT_ONLY := true
diff --git a/v8/renderscript/jni/android_renderscript_RenderScript.cpp b/v8/renderscript/jni/android_renderscript_RenderScript.cpp
index 068e8eb..d1f1ced 100644
--- a/v8/renderscript/jni/android_renderscript_RenderScript.cpp
+++ b/v8/renderscript/jni/android_renderscript_RenderScript.cpp
@@ -24,7 +24,6 @@
#include <android/bitmap.h>
#include <android/log.h>
#include "jni.h"
-#include <rs.h>
#include <rsEnv.h>
#include "rsDispatch.h"