Fix bitrot: RSTest_CompatLib[19] tests stopped building

(1) Incorrect path to librsjni.so because of typo in earlier change;
    fixed by fixing typo.

(2) clang did not specify the target architecture (I don't know what
    changed so that this no longer works); fixed by specifying target
    architecture and changing from gcc linker to lld (gcc linker didn't
    understand the options it was being passed by clang).

Test: blueline-userdebug
Test: make -j FORCE_BUILD_RS_COMPAT=true ENABLE_RSTESTS=true \
        RSTestForward_21_1_2 RSTestForward_22_0_2 \
        RSTestForward_23_0_3 RSTestForward_24_0_3 RSTestForward_25_0_2 \
        RSTestBackward RSTestBackward19 RSTest RSTest_Compat RSTest_Compat19
Test: unzip -t ${PATH_TO_APK}
      # confirm that .so files are present in RSTest_Compat[19] but not
        for the other APKs
      # confirm that .bc files are present in RSTestBackward19 but not
        for the other APKs
Test: adb shell am instrument [--abi armeabi-v7a] \
        -w ${TEST_PACKAGE_NAME}/androidx.test.runner.AndroidJUnitRunner
      # Run four times:
      #   "--abi" argument present or absent; always omit for
      #     RSTest_Compat[19], which only support platform default ABI
      #   "adb shell setprop debug.rs.forcecompat 0" or "1"
      # Note that RSTestBackward19 only supports 32-bit ABI, so both
      #   runs (with and without "--abi" argument) are actually armeabi-v7a
Test: After run, check logcat for RenderScript_jni
      # (missing): not built against support library; expected for all
        tests except RSTest_Compat[19]
      # "RenderScript_jni: RS native mode"; expected for RSTest_Compat[19]
        when setprop debug.rs.forcecompat is 0
      # "RenderScript_jni: RS compat mode"; expected for RSTest_Compat[19]
        when setprop debug.rs.forcecompat is 1

Change-Id: Icfaa226f2e1bfa909cb3bcbbe960f2804c355d2a
This commit is contained in:
David Gross 2021-06-28 15:49:58 -07:00
parent 389f5afb83
commit dd400c3af1
2 changed files with 3 additions and 3 deletions

View file

@ -1106,11 +1106,11 @@ define transform-bc-to-so
$(hide) mkdir -p $(dir $@)
$(hide) $(BCC_COMPAT) -O3 -o $(dir $@)/$(notdir $(<:.bc=.o)) -fPIC -shared \
-rt-path $(RS_PREBUILT_CLCORE) -mtriple $(RS_COMPAT_TRIPLE) $<
$(hide) $(PRIVATE_CXX_LINK) -shared -Wl,-soname,$(notdir $@) -nostdlib \
$(hide) $(PRIVATE_CXX_LINK) -fuse-ld=lld -target $(CLANG_TARGET_TRIPLE) -shared -Wl,-soname,$(notdir $@) -nostdlib \
-Wl,-rpath,\$$ORIGIN/../lib \
$(dir $@)/$(notdir $(<:.bc=.o)) \
$(RS_PREBUILT_COMPILER_RT) \
-o $@ $(CLANG_TARGET_GLOBAL_LDFLAGS) -Wl,--hash-style=sysv \
-o $@ $(CLANG_TARGET_GLOBAL_LLDFLAGS) -Wl,--hash-style=sysv \
-L $(SOONG_OUT_DIR)/ndk/platforms/android-$(PRIVATE_SDK_VERSION)/arch-$(TARGET_ARCH)/usr/lib64 \
-L $(SOONG_OUT_DIR)/ndk/platforms/android-$(PRIVATE_SDK_VERSION)/arch-$(TARGET_ARCH)/usr/lib \
$(call intermediates-dir-for,SHARED_LIBRARIES,libRSSupport)/libRSSupport.so \

View file

@ -107,7 +107,7 @@ renderscript_intermediate := $(intermediates)/renderscript
# Prevent these from showing up on the device
# One exception is librsjni.so, which is needed for
# both native path and compat path.
rs_jni_lib := $(call intermediates-dir-for,SHARED_LIBRARIES,librsjni.so)/librsjni.so
rs_jni_lib := $(call intermediates-dir-for,SHARED_LIBRARIES,librsjni)/librsjni.so
LOCAL_JNI_SHARED_LIBRARIES += librsjni
ifneq (,$(TARGET_BUILD_USE_PREBUILT_SDKS)$(FORCE_BUILD_RS_COMPAT))