diff options
| -rw-r--r-- | CleanSpec.mk | 2 | ||||
| -rw-r--r-- | core/base_rules.mk | 2 | ||||
| -rw-r--r-- | core/binary.mk | 66 | ||||
| -rw-r--r-- | core/clear_vars.mk | 1 | ||||
| -rw-r--r-- | core/config.mk | 19 | ||||
| -rw-r--r-- | core/copy_headers.mk | 31 | ||||
| -rw-r--r-- | core/definitions.mk | 3 | ||||
| -rw-r--r-- | core/envsetup.mk | 2 | ||||
| -rw-r--r-- | core/executable_internal.mk | 12 | ||||
| -rw-r--r-- | core/local_vndk.mk | 25 | ||||
| -rw-r--r-- | core/shared_library_internal.mk | 12 | ||||
| -rw-r--r-- | core/soong_config.mk | 1 |
12 files changed, 103 insertions, 73 deletions
diff --git a/CleanSpec.mk b/CleanSpec.mk index a3b5f3c2aa..8087646ded 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -377,6 +377,8 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/sdcard) $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS/previous_overlays.txt) $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS/current_packages.txt) +$(call add-clean-step, rm -rf $(HOST_OUT_INTERMEDIATES)/include) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/base_rules.mk b/core/base_rules.mk index 13d20e073f..251ac35109 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -65,6 +65,8 @@ else my_host_cross := endif +include $(BUILD_SYSTEM)/local_vndk.mk + my_module_tags := $(LOCAL_MODULE_TAGS) ifeq ($(my_host_cross),true) my_module_tags := diff --git a/core/binary.mk b/core/binary.mk index 765ab369d8..17b1bf247b 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -74,8 +74,9 @@ endif my_ndk_sysroot := my_ndk_sysroot_include := my_ndk_sysroot_lib := -ifdef LOCAL_SDK_VERSION +ifneq ($(LOCAL_SDK_VERSION)$(LOCAL_USE_VNDK),) ifdef LOCAL_IS_HOST_MODULE + # LOCAL_USE_VNDK is checked in local_vndk.mk $(error $(LOCAL_PATH): LOCAL_SDK_VERSION cannot be used in host module) endif @@ -104,9 +105,13 @@ ifdef LOCAL_SDK_VERSION # missing API levels to existing ones where necessary, but we're not doing # that for the generated libraries. Clip the API level to the minimum where # appropriate. - my_ndk_api := $(LOCAL_SDK_VERSION) + ifdef LOCAL_USE_VNDK + my_ndk_api := $(BOARD_VNDK_VERSION) + else + my_ndk_api := $(LOCAL_SDK_VERSION) + endif ifneq ($(my_ndk_api),current) - my_ndk_api := $(call math_max,$(LOCAL_SDK_VERSION),$(my_min_sdk_version)) + my_ndk_api := $(call math_max,$(my_ndk_api),$(my_min_sdk_version)) endif my_ndk_api_def := $(my_ndk_api) @@ -154,18 +159,20 @@ ifdef LOCAL_SDK_VERSION my_built_ndk_libs := $(my_ndk_platform_dir)/usr/$(my_ndk_libdir_name) my_ndk_sysroot_lib := $(my_ndk_sysroot)/usr/$(my_ndk_libdir_name) - # The bionic linker now has support for packed relocations and gnu style - # hashes (which are much faster!), but shipping to older devices requires - # the old style hash. Fortunately, we can build with both and it'll work - # anywhere. - # - # This is not currently supported on MIPS architectures. - ifeq (,$(filter mips mips64,$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH))) - my_ldflags += -Wl,--hash-style=both - endif + ifndef LOCAL_USE_VNDK + # The bionic linker now has support for packed relocations and gnu style + # hashes (which are much faster!), but shipping to older devices requires + # the old style hash. Fortunately, we can build with both and it'll work + # anywhere. + # + # This is not currently supported on MIPS architectures. + ifeq (,$(filter mips mips64,$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH))) + my_ldflags += -Wl,--hash-style=both + endif - # We don't want to expose the relocation packer to the NDK just yet. - LOCAL_PACK_MODULE_RELOCATIONS := false + # We don't want to expose the relocation packer to the NDK just yet. + LOCAL_PACK_MODULE_RELOCATIONS := false + endif # Set up the NDK stl variant. Starting from NDK-r5 the c++ stl resides in a separate location. # See ndk/docs/CPLUSPLUS-SUPPORT.html @@ -173,6 +180,7 @@ ifdef LOCAL_SDK_VERSION my_ndk_stl_shared_lib_fullpath := my_ndk_stl_static_lib := my_ndk_cpp_std_version := + ifndef LOCAL_USE_VNDK my_cpu_variant := $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)CPU_ABI) ifeq (mips32r6,$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH_VARIANT)) my_cpu_variant := mips32r6 @@ -260,6 +268,7 @@ ifdef LOCAL_SDK_VERSION endif endif endif + endif endif ifndef LOCAL_IS_HOST_MODULE @@ -280,7 +289,7 @@ my_shared_libraries += $(patsubst -l%,lib%,$(filter-out $(my_allowed_ldlibs),$(m my_ldlibs := $(filter $(my_allowed_ldlibs),$(my_ldlibs)) endif -ifdef LOCAL_SDK_VERSION +ifneq ($(LOCAL_SDK_VERSION)$(LOCAL_USE_VNDK),) my_all_ndk_libraries := \ $(NDK_MIGRATED_LIBS) $(addprefix lib,$(NDK_PREBUILT_SHARED_LIBRARIES)) my_ndk_shared_libraries := \ @@ -489,17 +498,30 @@ my_asflags += -D__ASSEMBLY__ ## Define PRIVATE_ variables from global vars ########################################################### ifndef LOCAL_IS_HOST_MODULE -ifdef LOCAL_SDK_VERSION +ifdef LOCAL_USE_VNDK +my_target_global_c_includes := \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) +my_target_global_c_system_includes := \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \ + $(my_ndk_sysroot_include) +else ifdef LOCAL_SDK_VERSION my_target_global_c_includes := my_target_global_c_system_includes := $(my_ndk_stl_include_path) $(my_ndk_sysroot_include) -else +else ifdef BOARD_VNDK_VERSION my_target_global_c_includes := $(SRC_HEADERS) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) -endif # LOCAL_SDK_VERSION +else +my_target_global_c_includes := $(SRC_HEADERS) \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) +my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) $(TARGET_OUT_HEADERS) \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) +endif ifeq ($(my_clang),true) my_target_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CFLAGS) @@ -523,10 +545,8 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_glob else # LOCAL_IS_HOST_MODULE my_host_global_c_includes := $(SRC_HEADERS) \ - $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) my_host_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \ - $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) ifeq ($(my_clang),true) @@ -1339,7 +1359,7 @@ endif ## they may cusomize their install path with LOCAL_MODULE_PATH ########################################################## # Get the list of INSTALLED libraries as module names. -ifdef LOCAL_SDK_VERSION +ifneq ($(LOCAL_SDK_VERSION)$(LOCAL_USE_VNDK),) installed_shared_library_module_names := \ $(my_shared_libraries) else @@ -1508,7 +1528,7 @@ ALL_C_CPP_ETC_OBJECTS += $(all_objects) so_suffix := $($(my_prefix)SHLIB_SUFFIX) a_suffix := $($(my_prefix)STATIC_LIB_SUFFIX) -ifdef LOCAL_SDK_VERSION +ifneq ($(LOCAL_SDK_VERSION)$(LOCAL_USE_VNDK),) built_shared_libraries := \ $(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ @@ -1690,7 +1710,7 @@ my_ldflags := $(filter-out -l%,$(my_ldlib_flags)) # One last verification check for ldlibs ifndef LOCAL_IS_HOST_MODULE my_allowed_ldlibs := -ifdef LOCAL_SDK_VERSION +ifneq ($(LOCAL_SDK_VERSION)$(LOCAL_USE_VNDK),) my_allowed_ldlibs := $(addprefix -l,$(NDK_PREBUILT_SHARED_LIBRARIES)) endif diff --git a/core/clear_vars.mk b/core/clear_vars.mk index faf18e3ddf..b9c28b1c7b 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -216,6 +216,7 @@ LOCAL_NDK_VERSION:=current LOCAL_COPY_TO_INTERMEDIATE_LIBRARIES:= LOCAL_LOGTAGS_FILES:= LOCAL_RECORDED_MODULE_TYPE:= +LOCAL_USE_VNDK:= # arch specific variables LOCAL_SRC_FILES_$(TARGET_ARCH):= diff --git a/core/config.mk b/core/config.mk index 2fcf1fe132..677d210d8d 100644 --- a/core/config.mk +++ b/core/config.mk @@ -684,10 +684,8 @@ else RELATIVE_PWD := endif -HOST_PROJECT_INCLUDES := -HOST_PROJECT_SYSTEM_INCLUDES := $(HOST_OUT_HEADERS) TARGET_PROJECT_INCLUDES := -TARGET_PROJECT_SYSTEM_INCLUDES := $(TARGET_OUT_HEADERS) \ +TARGET_PROJECT_SYSTEM_INCLUDES := \ $(TARGET_DEVICE_KERNEL_HEADERS) $(TARGET_BOARD_KERNEL_HEADERS) \ $(TARGET_PRODUCT_KERNEL_HEADERS) @@ -696,21 +694,6 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_PROJECT_INCLUDES := $(TARGET_PROJECT_INCLUDE $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_PROJECT_SYSTEM_INCLUDES := $(TARGET_PROJECT_SYSTEM_INCLUDES) endif -ifdef HOST_2ND_ARCH -$(HOST_2ND_ARCH_VAR_PREFIX)HOST_PROJECT_INCLUDES := $(HOST_PROJECT_INCLUDES) -$(HOST_2ND_ARCH_VAR_PREFIX)HOST_PROJECT_SYSTEM_INCLUDES := $(HOST_PROJECT_SYSTEM_INCLUDES) -endif - -ifdef HOST_CROSS_OS -HOST_CROSS_PROJECT_INCLUDES := -HOST_CROSS_PROJECT_SYSTEM_INCLUDES := $(HOST_CROSS_OUT_HEADERS) - -ifdef HOST_CROSS_2ND_ARCH -$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_PROJECT_INCLUDES:= $(HOST_CROSS_PROJECT_INCLUDES) -$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_PROJECT_SYSTEM_INCLUDES:= $(HOST_CROSS_PROJECT_SYSTEM_INCLUDES) -endif -endif - # allow overriding default Java libraries on a per-target basis ifeq ($(TARGET_DEFAULT_JAVA_LIBRARIES),) TARGET_DEFAULT_JAVA_LIBRARIES := core-oj core-libart core-junit ext framework okhttp diff --git a/core/copy_headers.mk b/core/copy_headers.mk index 417a76cc23..c26d51db68 100644 --- a/core/copy_headers.mk +++ b/core/copy_headers.mk @@ -1,11 +1,30 @@ +ifneq (,$(strip $(LOCAL_COPY_HEADERS))) ########################################################### ## Copy headers to the install tree ########################################################### $(call record-module-type,COPY_HEADERS) ifneq ($(strip $(LOCAL_IS_HOST_MODULE)),) - my_prefix := HOST_ -else - my_prefix := TARGET_ + $(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): LOCAL_COPY_HEADERS may not be used with host modules >&2) + $(error done) +endif + +# Modules linking against the SDK do not have the include path to use +# COPY_HEADERS, so prevent them from exporting any either. +ifdef LOCAL_SDK_VERSION +$(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): Modules using LOCAL_SDK_VERSION may not use LOCAL_COPY_HEADERS >&2) +$(error done) +endif + +include $(BUILD_SYSTEM)/local_vndk.mk + +# If we're using the VNDK, only vendor modules using the VNDK may use +# LOCAL_COPY_HEADERS. Platform libraries will not have the include path +# present. +ifdef BOARD_VNDK_VERSION +ifndef LOCAL_USE_VNDK +$(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): Only vendor modules using LOCAL_USE_VNDK may use LOCAL_COPY_HEADERS >&2) +$(error done) +endif endif # Create a rule to copy each header, and make the @@ -17,8 +36,8 @@ $(foreach header,$(LOCAL_COPY_HEADERS), \ $(eval _chFrom := $(LOCAL_PATH)/$(header)) \ $(eval _chTo := \ $(if $(LOCAL_COPY_HEADERS_TO),\ - $($(my_prefix)OUT_HEADERS)/$(LOCAL_COPY_HEADERS_TO)/$(notdir $(header)),\ - $($(my_prefix)OUT_HEADERS)/$(notdir $(header)))) \ + $(TARGET_OUT_HEADERS)/$(LOCAL_COPY_HEADERS_TO)/$(notdir $(header)),\ + $(TARGET_OUT_HEADERS)/$(notdir $(header)))) \ $(eval ALL_COPIED_HEADERS.$(_chTo).MAKEFILE += $(LOCAL_MODULE_MAKEFILE)) \ $(eval ALL_COPIED_HEADERS.$(_chTo).SRC += $(_chFrom)) \ $(if $(filter $(_chTo),$(ALL_COPIED_HEADERS)),, \ @@ -26,3 +45,5 @@ $(foreach header,$(LOCAL_COPY_HEADERS), \ ) _chFrom := _chTo := + +endif # LOCAL_COPY_HEADERS diff --git a/core/definitions.mk b/core/definitions.mk index 7a42ad8f17..1a9276cc52 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1773,7 +1773,6 @@ $(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) \ -Wl,--gc-sections \ $(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl$(comma)-shared) \ - $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_TARGET_CRTBEGIN_SO_O) \ $(PRIVATE_ALL_OBJECTS) \ -Wl,--whole-archive \ @@ -1860,7 +1859,6 @@ $(hide) $(PRIVATE_CXX) -pie \ -Wl,-dynamic-linker,$(PRIVATE_LINKER) \ -Wl,--gc-sections \ -Wl,-z,nocopyreloc \ - $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ -Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \ $(PRIVATE_TARGET_CRTBEGIN_DYNAMIC_O) \ $(PRIVATE_ALL_OBJECTS) \ @@ -1904,7 +1902,6 @@ $(hide) $(PRIVATE_CXX) \ $(if $(filter $(PRIVATE_LDFLAGS),-shared),,-static) \ -Wl,--gc-sections \ -o $@ \ - $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_TARGET_CRTBEGIN_STATIC_O) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ $(PRIVATE_LDFLAGS) \ diff --git a/core/envsetup.mk b/core/envsetup.mk index 8794c8a17d..b08f57ce75 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -269,7 +269,6 @@ HOST_CROSS_OUT_NATIVE_TESTS := $(HOST_CROSS_OUT)/nativetest HOST_CROSS_OUT_COVERAGE := $(HOST_CROSS_OUT)/coverage HOST_OUT_INTERMEDIATES := $(HOST_OUT)/obj -HOST_OUT_HEADERS := $(HOST_OUT_INTERMEDIATES)/include HOST_OUT_INTERMEDIATE_LIBRARIES := $(HOST_OUT_INTERMEDIATES)/lib HOST_OUT_NOTICE_FILES := $(HOST_OUT_INTERMEDIATES)/NOTICE_FILES HOST_OUT_COMMON_INTERMEDIATES := $(HOST_COMMON_OUT_ROOT)/obj @@ -279,7 +278,6 @@ HOST_OUT_FAKE := $(HOST_OUT)/fake_packages include $(BUILD_SYSTEM)/aux_config.mk HOST_CROSS_OUT_INTERMEDIATES := $(HOST_CROSS_OUT)/obj -HOST_CROSS_OUT_HEADERS := $(HOST_CROSS_OUT_INTERMEDIATES)/include HOST_CROSS_OUT_INTERMEDIATE_LIBRARIES := $(HOST_CROSS_OUT_INTERMEDIATES)/lib HOST_CROSS_OUT_NOTICE_FILES := $(HOST_CROSS_OUT_INTERMEDIATES)/NOTICE_FILES diff --git a/core/executable_internal.mk b/core/executable_internal.mk index 593f9f445f..f51ddb84a7 100644 --- a/core/executable_internal.mk +++ b/core/executable_internal.mk @@ -34,7 +34,6 @@ endif endif # Define PRIVATE_ variables from global vars -my_target_global_ld_dirs := ifeq ($(LOCAL_NO_LIBGCC),true) my_target_libgcc := else @@ -50,20 +49,11 @@ my_target_crtbegin_dynamic_o := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERME my_target_crtbegin_static_o := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static.o my_target_crtend_o := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_android.o endif -ifdef LOCAL_SDK_VERSION -# Make sure the prebuilt NDK paths are put ahead of the TARGET_GLOBAL_LD_DIRS, -# so we don't have race condition when the system libraries (such as libc, libstdc++) are also built in the tree. -my_target_global_ld_dirs := \ - $(addprefix -L, $(patsubst %/,%,$(dir $(my_ndk_stl_shared_lib_fullpath))) \ - $(my_ndk_sysroot_lib)) \ - $(my_target_global_ld_dirs) -my_target_global_ldflags := $(my_ndk_stl_shared_lib) $(my_target_global_ldflags) +ifneq ($(LOCAL_SDK_VERSION)$(LOCAL_USE_VNDK),) my_target_crtbegin_dynamic_o := $(wildcard $(my_ndk_sysroot_lib)/crtbegin_dynamic.o) my_target_crtbegin_static_o := $(wildcard $(my_ndk_sysroot_lib)/crtbegin_static.o) my_target_crtend_o := $(wildcard $(my_ndk_sysroot_lib)/crtend_android.o) endif -$(linked_module): PRIVATE_TARGET_GLOBAL_LD_DIRS := $(my_target_global_ld_dirs) -$(linked_module): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags) $(linked_module): PRIVATE_TARGET_LIBGCC := $(my_target_libgcc) $(linked_module): PRIVATE_TARGET_LIBATOMIC := $(my_target_libatomic) $(linked_module): PRIVATE_TARGET_CRTBEGIN_DYNAMIC_O := $(my_target_crtbegin_dynamic_o) diff --git a/core/local_vndk.mk b/core/local_vndk.mk new file mode 100644 index 0000000000..f81249b26c --- /dev/null +++ b/core/local_vndk.mk @@ -0,0 +1,25 @@ +# Verify LOCAL_USE_VNDK usage, and set LOCAL_SDK_VERSION if necessary + +ifdef LOCAL_IS_HOST_MODULE + ifdef LOCAL_USE_VNDK + $(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): Do not use LOCAL_USE_VNDK with host modules >&2) + $(error done) + endif +endif +ifdef LOCAL_USE_VNDK + ifneq ($(LOCAL_USE_VNDK),true) + $(shell echo '$(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): LOCAL_USE_VNDK must be "true" or empty, not "$(LOCAL_USE_VNDK)"' >&2) + $(error done) + endif + + ifdef LOCAL_SDK_VERSION + $(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): LOCAL_USE_VNDK must not be used with LOCAL_SDK_VERSION >&2) + $(error done) + endif + + # If we're not using the VNDK, drop all restrictions + ifndef BOARD_VNDK_VERSION + LOCAL_USE_VNDK:= + endif +endif + diff --git a/core/shared_library_internal.mk b/core/shared_library_internal.mk index 1a8975af88..6b914c98d2 100644 --- a/core/shared_library_internal.mk +++ b/core/shared_library_internal.mk @@ -39,7 +39,6 @@ OVERRIDE_BUILT_MODULE_PATH := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDI include $(BUILD_SYSTEM)/dynamic_binary.mk # Define PRIVATE_ variables from global vars -my_target_global_ld_dirs := ifeq ($(LOCAL_NO_LIBGCC),true) my_target_libgcc := else @@ -53,19 +52,10 @@ else my_target_crtbegin_so_o := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_so.o my_target_crtend_so_o := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o endif -ifdef LOCAL_SDK_VERSION -# Make sure the prebuilt NDK paths are put ahead of the TARGET_GLOBAL_LD_DIRS, -# so we don't have race condition when the system libraries (such as libc, libstdc++) are also built in the tree. -my_target_global_ld_dirs := \ - $(addprefix -L, $(patsubst %/,%,$(dir $(my_ndk_stl_shared_lib_fullpath))) \ - $(my_ndk_sysroot_lib)) \ - $(my_target_global_ld_dirs) -my_target_global_ldflags := $(my_ndk_stl_shared_lib) $(my_target_global_ldflags) +ifneq ($(LOCAL_SDK_VERSION)$(LOCAL_USE_VNDK),) my_target_crtbegin_so_o := $(wildcard $(my_ndk_sysroot_lib)/crtbegin_so.o) my_target_crtend_so_o := $(wildcard $(my_ndk_sysroot_lib)/crtend_so.o) endif -$(linked_module): PRIVATE_TARGET_GLOBAL_LD_DIRS := $(my_target_global_ld_dirs) -$(linked_module): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags) $(linked_module): PRIVATE_TARGET_LIBGCC := $(my_target_libgcc) $(linked_module): PRIVATE_TARGET_LIBATOMIC := $(my_target_libatomic) $(linked_module): PRIVATE_TARGET_CRTBEGIN_SO_O := $(my_target_crtbegin_so_o) diff --git a/core/soong_config.mk b/core/soong_config.mk index 995d9ed384..1782ce5987 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -47,6 +47,7 @@ $(SOONG_VARIABLES): FORCE echo ' "DeviceCpuVariant": "$(TARGET_CPU_VARIANT)",'; \ echo ' "DeviceAbi": ["$(TARGET_CPU_ABI)", "$(TARGET_CPU_ABI2)"],'; \ echo ' "DeviceUsesClang": $(if $(USE_CLANG_PLATFORM_BUILD),$(USE_CLANG_PLATFORM_BUILD),false),'; \ + echo ' "DeviceVndkVersion": "$(BOARD_VNDK_VERSION)",'; \ echo ''; \ echo ' "DeviceSecondaryArch": "$(TARGET_2ND_ARCH)",'; \ echo ' "DeviceSecondaryArchVariant": "$(TARGET_2ND_ARCH_VARIANT)",'; \ |