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)