Clean up libRSSupport.so and libclcore.bc dependencies.
Bug: 7419958
Change-Id: I62453bb6830cc2c82ca9dbbf576b52da95eef4b1
diff --git a/core/definitions.mk b/core/definitions.mk
index 93810ef..e216a70 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -822,9 +822,10 @@
define transform-bc-to-so
@echo "Renderscript compatibility"
$(hide) mkdir -p $(dir $@)
-$(hide) $(BCC_COMPAT) -o $(dir $@)/$(notdir $(<:.bc=.o)) -fPIC -shared \
- -rt-path $(TARGET_OUT_SHARED_LIBRARIES)/libclcore.bc $<
+$(hide) $(BCC_COMPAT) -O3 -o $(dir $@)/$(notdir $(<:.bc=.o)) -fPIC -shared \
+ -rt-path $(PRIVATE_LIBCLCORE) $<
$(hide) $(PRIVATE_CXX) -shared -Wl,-soname,$(notdir $@) -nostdlib \
+ -Wl,-rpath,\$$ORIGIN/../lib \
$(dir $@)/$(notdir $(<:.bc=.o)) -o $@ -L prebuilts/gcc/ \
-L $(TARGET_OUT_INTERMEDIATE_LIBRARIES) -lRSSupport -lm
endef
diff --git a/core/java.mk b/core/java.mk
index ba7a45c..86f06a3 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -206,9 +206,16 @@
$(rs_generated_bc) : $(RenderScript_file_stamp)
+rs_built_clcore := $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libclcore.bc_intermediates/libclcore.bc
+rs_support_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRSSupport.so
+rs_jni_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/librsjni.so
+LOCAL_JNI_SHARED_LIBRARIES += libRSSupport librsjni
+
$(rs_compatibility_jni_libs): $(RenderScript_file_stamp)
-$(rs_compatibility_jni_libs): $(BCC_COMPAT)
+$(rs_compatibility_jni_libs): $(BCC_COMPAT) $(rs_built_clcore)
+$(rs_compatibility_jni_libs): $(rs_support_lib) $(rs_jni_lib)
$(rs_compatibility_jni_libs): PRIVATE_CXX := $(TARGET_CXX)
+$(rs_compatibility_jni_libs): PRIVATE_LIBCLCORE := $(rs_built_clcore)
$(rs_compatibility_jni_libs): $(renderscript_intermediate)/lib%.so: \
$(renderscript_intermediate)/res/raw/%.bc
$(transform-bc-to-so)