From 302e944c6034060eb7ff51ea2a3abe740cf2c9b7 Mon Sep 17 00:00:00 2001 From: Miao Wang Date: Tue, 28 Jul 2015 17:43:51 -0700 Subject: [PATCH] [RenderScript] Set RS_PREBUILT_LIBPATH for 64bit targets. Bug: 22796994 Bug: 22693954 This change fixes the RS_PREBUILT_LIBPATH when used with 64-bit target devices. It also fixes an issue where the target RenderScript API is below 21 for 64-bit compilation. In those cases, we should always upconvert it to 21 (since that is the first available 64-bit release). Change-Id: I27e9d0bd5c01bac0b3b28e9002333264a55d628f --- core/config.mk | 6 +++++- core/java.mk | 22 +++++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/core/config.mk b/core/config.mk index 3e527a87a..51810aa19 100644 --- a/core/config.mk +++ b/core/config.mk @@ -675,8 +675,12 @@ endif # Set up RS prebuilt variables for compatibility library RS_PREBUILT_CLCORE := prebuilts/sdk/renderscript/lib/$(TARGET_ARCH)/librsrt_$(TARGET_ARCH).bc -RS_PREBUILT_LIBPATH := -L prebuilts/ndk/8/platforms/android-9/arch-$(TARGET_ARCH)/usr/lib RS_PREBUILT_COMPILER_RT := prebuilts/sdk/renderscript/lib/$(TARGET_ARCH)/libcompiler_rt.a +ifeq (true,$(TARGET_IS_64_BIT)) +RS_PREBUILT_LIBPATH := -L prebuilts/ndk/9/platforms/android-21/arch-$(TARGET_ARCH)/usr/lib +else +RS_PREBUILT_LIBPATH := -L prebuilts/ndk/8/platforms/android-9/arch-$(TARGET_ARCH)/usr/lib +endif # API Level lists for Renderscript Compat lib. RSCOMPAT_32BIT_ONLY_API_LEVELS := 8 9 10 11 12 13 14 15 16 17 18 19 20 diff --git a/core/java.mk b/core/java.mk index 0ff59fc90..040e6748e 100644 --- a/core/java.mk +++ b/core/java.mk @@ -148,19 +148,27 @@ renderscript_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(renderscript_sour RenderScript_file_stamp := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/RenderScript.stamp renderscript_intermediate.COMMON := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/renderscript +# Defaulting to an empty string uses the latest available platform SDK. renderscript_target_api := ifneq (,$(LOCAL_RENDERSCRIPT_TARGET_API)) -renderscript_target_api := $(LOCAL_RENDERSCRIPT_TARGET_API) + renderscript_target_api := $(LOCAL_RENDERSCRIPT_TARGET_API) else -ifneq (,$(LOCAL_SDK_VERSION)) -# Set target-api for LOCAL_SDK_VERSIONs other than current. -ifneq (,$(filter-out current system_current, $(LOCAL_SDK_VERSION))) -renderscript_target_api := $(LOCAL_SDK_VERSION) -endif -endif # LOCAL_SDK_VERSION is set + ifneq (,$(LOCAL_SDK_VERSION)) + # Set target-api for LOCAL_SDK_VERSIONs other than current. + ifneq (,$(filter-out current system_current, $(LOCAL_SDK_VERSION))) + renderscript_target_api := $(LOCAL_SDK_VERSION) + endif + endif # LOCAL_SDK_VERSION is set endif # LOCAL_RENDERSCRIPT_TARGET_API is set +# For 64-bit, we always have to upgrade to at least 21 +ifeq ($(TARGET_IS_64_BIT),true) + ifneq ($(filter $(RSCOMPAT_32BIT_ONLY_API_LEVELS),$(renderscript_target_api)),) + renderscript_target_api := 21 + endif +endif + ifeq ($(LOCAL_RENDERSCRIPT_CC),) LOCAL_RENDERSCRIPT_CC := $(LLVM_RS_CC) endif -- 2.11.0