Merge "Add zlib_fingerprint to target_files.zip"
diff --git a/core/binary.mk b/core/binary.mk
index 4e5bee9..dc43463 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -677,7 +677,7 @@
else
$(transform-$(PRIVATE_HOST)cpp-to-o)
endif
--include $(proto_generated_objects:%.o=%.P)
+$(call include-depfiles-for-objs, $(proto_generated_objects))
my_c_includes += $(my_proto_c_includes)
# Auto-export the generated proto source dir.
@@ -892,7 +892,7 @@
$(yacc_cpps) $(proto_generated_headers) \
$(my_additional_dependencies)
$(transform-$(PRIVATE_HOST)cpp-to-o)
--include $(cpp_objects:%.o=%.P)
+$(call include-depfiles-for-objs, $(cpp_objects))
endif
cpp_objects += $(dotdot_arm_objects) $(dotdot_objects)
@@ -915,7 +915,7 @@
$(proto_generated_headers) \
$(my_additional_dependencies)
$(transform-$(PRIVATE_HOST)cpp-to-o)
--include $(gen_cpp_objects:%.o=%.P)
+$(call include-depfiles-for-objs, $(gen_cpp_objects))
endif
###########################################################
@@ -930,7 +930,7 @@
$(gen_S_objects): $(intermediates)/%.o: $(intermediates)/%.S \
$(my_additional_dependencies)
$(transform-$(PRIVATE_HOST)s-to-o)
--include $(gen_S_objects:%.o=%.P)
+$(call include-depfiles-for-objs, $(gen_S_objects))
endif
gen_s_sources := $(filter %.s,$(my_generated_sources))
@@ -941,7 +941,6 @@
$(gen_s_objects): $(intermediates)/%.o: $(intermediates)/%.s \
$(my_additional_dependencies)
$(transform-$(PRIVATE_HOST)s-to-o-no-deps)
--include $(gen_s_objects:%.o=%.P)
endif
gen_asm_objects := $(gen_S_objects) $(gen_s_objects)
@@ -995,7 +994,7 @@
$(c_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.c $(yacc_cpps) $(proto_generated_headers) \
$(my_additional_dependencies)
$(transform-$(PRIVATE_HOST)c-to-o)
--include $(c_objects:%.o=%.P)
+$(call include-depfiles-for-objs, $(c_objects))
endif
c_objects += $(dotdot_arm_objects) $(dotdot_objects)
@@ -1016,7 +1015,7 @@
$(gen_c_objects): $(intermediates)/%.o: $(intermediates)/%.c $(yacc_cpps) $(proto_generated_headers) \
$(my_additional_dependencies)
$(transform-$(PRIVATE_HOST)c-to-o)
--include $(gen_c_objects:%.o=%.P)
+$(call include-depfiles-for-objs, $(gen_c_objects))
endif
###########################################################
@@ -1031,7 +1030,7 @@
$(objc_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.m $(yacc_cpps) $(proto_generated_headers) \
$(my_additional_dependencies)
$(transform-$(PRIVATE_HOST)m-to-o)
--include $(objc_objects:%.o=%.P)
+$(call include-depfiles-for-objs, $(objc_objects))
endif
###########################################################
@@ -1046,7 +1045,7 @@
$(objcpp_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.mm $(yacc_cpps) $(proto_generated_headers) \
$(my_additional_dependencies)
$(transform-$(PRIVATE_HOST)mm-to-o)
--include $(objcpp_objects:%.o=%.P)
+$(call include-depfiles-for-objs, $(objcpp_objects))
endif
###########################################################
@@ -1070,7 +1069,7 @@
$(asm_objects_S): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.S \
$(my_additional_dependencies)
$(transform-$(PRIVATE_HOST)s-to-o)
--include $(asm_objects_S:%.o=%.P)
+$(call include-depfiles-for-objs, $(asm_objects_S))
endif
asm_sources_s := $(filter %.s,$(my_src_files))
diff --git a/core/clang/versions.mk b/core/clang/versions.mk
index 96872c2..f80d6b9 100644
--- a/core/clang/versions.mk
+++ b/core/clang/versions.mk
@@ -1,5 +1,5 @@
## Clang/LLVM release versions.
LLVM_RELEASE_VERSION := 3.8
-LLVM_PREBUILTS_VERSION ?= clang-2629532
+LLVM_PREBUILTS_VERSION ?= clang-2658975
LLVM_PREBUILTS_BASE ?= prebuilts/clang/host
diff --git a/core/definitions.mk b/core/definitions.mk
index 66859cd..f883122 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -903,6 +903,11 @@
$(eval $(2) : .KATI_DEPFILE := $1)
endef
+# $(1): object files
+define include-depfiles-for-objs
+$(foreach obj, $(1), $(call include-depfile, $(obj:%.o=%.P), $(obj)))
+endef
+
###########################################################
## Track source files compiled to objects
###########################################################
@@ -1361,7 +1366,7 @@
o := $(intermediates)/$(patsubst %$(LOCAL_CPP_EXTENSION),%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1)))
$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2)
$$(transform-$$(PRIVATE_HOST)cpp-to-o)
--include $$(o:%.o=%.P)
+$$(call include-depfiles-for-objs, $$(o))
$(3) += $$(o)
endef
@@ -1374,7 +1379,7 @@
o := $(intermediates)/$(patsubst %.c,%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1)))
$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2)
$$(transform-$$(PRIVATE_HOST)c-to-o)
--include $$(o:%.o=%.P)
+$$(call include-depfiles-for-objs, $$(o))
$(3) += $$(o)
endef
@@ -1387,7 +1392,7 @@
o := $(intermediates)/$(patsubst %.S,%.o,$(subst ../,$(DOTDOT_REPLACEMENT),$(1)))
$$(o) : $(TOPDIR)$(LOCAL_PATH)/$(1) $(2)
$$(transform-$$(PRIVATE_HOST)s-to-o)
--include $$(o:%.o=%.P)
+$$(call include-depfiles-for-objs, $$(o))
$(3) += $$(o)
endef
diff --git a/core/java_common.mk b/core/java_common.mk
index 21cea67..44dfc51 100644
--- a/core/java_common.mk
+++ b/core/java_common.mk
@@ -3,11 +3,28 @@
###########################################################
## Java version
###########################################################
+# Use the LOCAL_JAVA_LANGUAGE_VERSION if it is set, otherwise
+# use one based on the LOCAL_SDK_VERSION. If it is < 24
+# pass "1.7" to the tools, if it is unset, >= 24 or "current"
+# pass "1.8".
+#
+# The LOCAL_SDK_VERSION behavior is to ensure that, by default,
+# code that is expected to run on older releases of Android
+# does not use any 1.8 language features that are not supported
+# on earlier runtimes (like default / static interface methods).
+# Modules can override this logic by specifying
+# LOCAL_JAVA_LANGUAGE_VERSION explicitly.
ifeq (,$(LOCAL_JAVA_LANGUAGE_VERSION))
- ifeq (,$(LEGACY_USE_JAVA7))
- LOCAL_JAVA_LANGUAGE_VERSION := 1.8
- else
+ private_sdk_versions_without_any_java_18_support := 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
+ ifneq (,$(filter $(LOCAL_SDK_VERSION), $(private_sdk_versions_without_any_java_18_support)))
LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+ else
+ # This retains 1.7 for ART build bots only. http://b/27583810
+ ifeq (,$(LEGACY_USE_JAVA7))
+ LOCAL_JAVA_LANGUAGE_VERSION := 1.8
+ else
+ LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+ endif
endif
endif
LOCAL_JAVACFLAGS += -source $(LOCAL_JAVA_LANGUAGE_VERSION) -target $(LOCAL_JAVA_LANGUAGE_VERSION)
diff --git a/core/ninja.mk b/core/ninja.mk
index afdef7e..667cfa1 100644
--- a/core/ninja.mk
+++ b/core/ninja.mk
@@ -142,7 +142,7 @@
.PHONY: ninja_wrapper
ninja_wrapper: $(COMBINED_BUILD_NINJA) $(MAKEPARALLEL)
@echo Starting build with ninja
- +$(hide) export NINJA_STATUS="$(NINJA_STATUS)" && source $(KATI_ENV_SH) && $(NINJA_MAKEPARALLEL) $(NINJA) $(NINJA_GOALS) -C $(TOP) -f $(COMBINED_BUILD_NINJA) $(NINJA_ARGS)
+ +$(hide) export NINJA_STATUS="$(NINJA_STATUS)" && source $(KATI_ENV_SH) && $(NINJA_MAKEPARALLEL) $(NINJA) -d keepdepfile $(NINJA_GOALS) -C $(TOP) -f $(COMBINED_BUILD_NINJA) $(NINJA_ARGS)
KATI_FIND_EMULATOR := --use_find_emulator
ifeq ($(KATI_EMULATE_FIND),false)
diff --git a/core/soong.mk b/core/soong.mk
index 176c159..e070d6b 100644
--- a/core/soong.mk
+++ b/core/soong.mk
@@ -1,16 +1,25 @@
SOONG_OUT_DIR := $(OUT_DIR)/soong
+
+# This needs to exist before the realpath checks below
+$(shell mkdir -p $(SOONG_OUT_DIR))
+
+ifeq (,$(filter /%,$(SOONG_OUT_DIR)))
+SOONG_TOP_RELPATH := $(shell python -c "import os; print os.path.relpath('$(TOP)', '$(SOONG_OUT_DIR)')")
+# Protect against out being a symlink and relative paths not working
+ifneq ($(realpath $(SOONG_OUT_DIR)/$(SOONG_TOP_RELPATH)),$(realpath $(TOP)))
+SOONG_OUT_DIR := $(abspath $(SOONG_OUT_DIR))
+SOONG_TOP_RELPATH := $(abspath $(TOP))
+endif
+else
+SOONG_TOP_RELPATH := $(abspath $(TOP))
+endif
+
SOONG := $(SOONG_OUT_DIR)/soong
SOONG_BUILD_NINJA := $(SOONG_OUT_DIR)/build.ninja
SOONG_ANDROID_MK := $(SOONG_OUT_DIR)/Android.mk
SOONG_VARIABLES := $(SOONG_OUT_DIR)/soong.variables
SOONG_IN_MAKE := $(SOONG_OUT_DIR)/.soong.in_make
-ifeq (,$(filter /%,$(SOONG_OUT_DIR)))
-SOONG_TOP_RELPATH := $(shell python -c "import os; print os.path.relpath('$(TOP)', '$(SOONG_OUT_DIR)')")
-else
-SOONG_TOP_RELPATH := $(realpath $(TOP))
-endif
-
# Bootstrap soong. Run only the first time for clean builds
$(SOONG):
$(hide) mkdir -p $(dir $@)
diff --git a/tools/signapk/src/com/android/signapk/ZipUtils.java b/tools/signapk/src/com/android/signapk/ZipUtils.java
index b9a17ca..7575a77 100644
--- a/tools/signapk/src/com/android/signapk/ZipUtils.java
+++ b/tools/signapk/src/com/android/signapk/ZipUtils.java
@@ -37,7 +37,7 @@
private static final int ZIP64_EOCD_LOCATOR_SIZE = 20;
private static final int ZIP64_EOCD_LOCATOR_SIG = 0x07064b50;
- private static final int UINT32_MAX_VALUE = 0xffff;
+ private static final int UINT16_MAX_VALUE = 0xffff;
/**
* Returns the position at which ZIP End of Central Directory record starts in the provided
@@ -56,14 +56,13 @@
// end of the buffer for the EOCD record signature. Whenever we find a signature, we check
// the candidate record's comment length is such that the remainder of the record takes up
// exactly the remaining bytes in the buffer. The search is bounded because the maximum
- // size of the comment field is 65535 bytes because the field is an unsigned 32-bit number.
+ // size of the comment field is 65535 bytes because the field is an unsigned 16-bit number.
int archiveSize = zipContents.capacity();
if (archiveSize < ZIP_EOCD_REC_MIN_SIZE) {
- System.out.println("File size smaller than EOCD min size");
return -1;
}
- int maxCommentLength = Math.min(archiveSize - ZIP_EOCD_REC_MIN_SIZE, UINT32_MAX_VALUE);
+ int maxCommentLength = Math.min(archiveSize - ZIP_EOCD_REC_MIN_SIZE, UINT16_MAX_VALUE);
int eocdWithEmptyCommentStartPosition = archiveSize - ZIP_EOCD_REC_MIN_SIZE;
for (int expectedCommentLength = 0; expectedCommentLength < maxCommentLength;
expectedCommentLength++) {