diff options
-rw-r--r-- | CleanSpec.mk | 3 | ||||
-rw-r--r-- | core/app_certificate_validate.mk | 12 | ||||
-rw-r--r-- | core/binary.mk | 278 | ||||
-rw-r--r-- | core/definitions.mk | 3 | ||||
-rw-r--r-- | core/main.mk | 7 | ||||
-rw-r--r-- | core/package_internal.mk | 1 | ||||
-rw-r--r-- | core/prebuilt_internal.mk | 2 | ||||
-rw-r--r-- | core/product.mk | 2 | ||||
-rw-r--r-- | core/product_config.mk | 5 | ||||
-rw-r--r-- | core/soong_app_prebuilt.mk | 2 | ||||
-rw-r--r-- | core/soong_config.mk | 3 | ||||
-rw-r--r-- | target/product/base_system.mk | 6 | ||||
-rw-r--r-- | target/product/handheld_system.mk | 2 |
13 files changed, 182 insertions, 144 deletions
diff --git a/CleanSpec.mk b/CleanSpec.mk index b06a87b12..b32868eab 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk | |||
@@ -529,6 +529,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/bin/perfprofd) | |||
529 | $(call add-clean-step, find system/app system/priv-app system/framework system_other -depth -type d -print0 | xargs -0 rmdir) | 529 | $(call add-clean-step, find system/app system/priv-app system/framework system_other -depth -type d -print0 | xargs -0 rmdir) |
530 | $(call add-clean-step, rm -f .d) | 530 | $(call add-clean-step, rm -f .d) |
531 | 531 | ||
532 | # Remove obsolete apps | ||
533 | $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*) | ||
534 | |||
532 | # ************************************************ | 535 | # ************************************************ |
533 | # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST | 536 | # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST |
534 | # ************************************************ | 537 | # ************************************************ |
diff --git a/core/app_certificate_validate.mk b/core/app_certificate_validate.mk new file mode 100644 index 000000000..15ddd9450 --- /dev/null +++ b/core/app_certificate_validate.mk | |||
@@ -0,0 +1,12 @@ | |||
1 | |||
2 | ifeq (true,$(filter true, \ | ||
3 | $(LOCAL_PRODUCT_MODULE) $(LOCAL_PRODUCT_SERVICES_MODULE) \ | ||
4 | $(LOCAL_VENDOR_MODULE) $(LOCAL_PROPRIETARY_MODULE))) | ||
5 | ifneq (,$(filter $(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))%,$(LOCAL_CERTIFICATE))) | ||
6 | CERTIFICATE_VIOLATION_MODULES += $(LOCAL_MODULE) | ||
7 | ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT)) | ||
8 | $(if $(filter $(LOCAL_MODULE),$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT_WHITELIST)),,\ | ||
9 | $(call pretty-error,The module in product partition cannot be signed with certificate in system.)) | ||
10 | endif | ||
11 | endif | ||
12 | endif \ No newline at end of file | ||
diff --git a/core/binary.mk b/core/binary.mk index e7b0c52d6..be10c2d37 100644 --- a/core/binary.mk +++ b/core/binary.mk | |||
@@ -72,6 +72,9 @@ endif | |||
72 | else | 72 | else |
73 | my_native_coverage := false | 73 | my_native_coverage := false |
74 | endif | 74 | endif |
75 | ifneq ($(NATIVE_COVERAGE),true) | ||
76 | my_native_coverage := false | ||
77 | endif | ||
75 | 78 | ||
76 | ifeq ($(strip $(ENABLE_XOM)),true) | 79 | ifeq ($(strip $(ENABLE_XOM)),true) |
77 | ifndef LOCAL_IS_HOST_MODULE | 80 | ifndef LOCAL_IS_HOST_MODULE |
@@ -470,144 +473,6 @@ endif | |||
470 | my_asflags += -D__ASSEMBLY__ | 473 | my_asflags += -D__ASSEMBLY__ |
471 | 474 | ||
472 | ########################################################### | 475 | ########################################################### |
473 | ## Define PRIVATE_ variables from global vars | ||
474 | ########################################################### | ||
475 | ifndef LOCAL_IS_HOST_MODULE | ||
476 | ifdef LOCAL_USE_VNDK | ||
477 | my_target_global_c_includes := \ | ||
478 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) | ||
479 | my_target_global_c_system_includes := \ | ||
480 | $(TARGET_OUT_HEADERS) \ | ||
481 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) | ||
482 | else ifdef LOCAL_SDK_VERSION | ||
483 | my_target_global_c_includes := | ||
484 | my_target_global_c_system_includes := $(my_ndk_stl_include_path) $(my_ndk_sysroot_include) | ||
485 | else ifdef BOARD_VNDK_VERSION | ||
486 | my_target_global_c_includes := $(SRC_HEADERS) \ | ||
487 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \ | ||
488 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) | ||
489 | my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \ | ||
490 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \ | ||
491 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) | ||
492 | else | ||
493 | my_target_global_c_includes := $(SRC_HEADERS) \ | ||
494 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \ | ||
495 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) | ||
496 | my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) $(TARGET_OUT_HEADERS) \ | ||
497 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \ | ||
498 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) | ||
499 | endif | ||
500 | |||
501 | my_target_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CFLAGS) | ||
502 | my_target_global_conlyflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CONLYFLAGS) $(my_c_std_conlyflags) | ||
503 | my_target_global_cppflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CPPFLAGS) $(my_cpp_std_cppflags) | ||
504 | ifeq ($(my_use_clang_lld),true) | ||
505 | my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LLDFLAGS) | ||
506 | include $(BUILD_SYSTEM)/pack_dyn_relocs_setup.mk | ||
507 | ifeq ($(my_pack_module_relocations),false) | ||
508 | my_target_global_ldflags += -Wl,--pack-dyn-relocs=none | ||
509 | endif | ||
510 | else | ||
511 | my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LDFLAGS) | ||
512 | endif # my_use_clang_lld | ||
513 | |||
514 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_INCLUDES := $(my_target_global_c_includes) | ||
515 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_SYSTEM_INCLUDES := $(my_target_global_c_system_includes) | ||
516 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CFLAGS := $(my_target_global_cflags) | ||
517 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CONLYFLAGS := $(my_target_global_conlyflags) | ||
518 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(my_target_global_cppflags) | ||
519 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags) | ||
520 | |||
521 | else # LOCAL_IS_HOST_MODULE | ||
522 | |||
523 | my_host_global_c_includes := $(SRC_HEADERS) \ | ||
524 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) | ||
525 | my_host_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \ | ||
526 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) | ||
527 | |||
528 | my_host_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CFLAGS) | ||
529 | my_host_global_conlyflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CONLYFLAGS) $(my_c_std_conlyflags) | ||
530 | my_host_global_cppflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CPPFLAGS) $(my_cpp_std_cppflags) | ||
531 | ifeq ($(my_use_clang_lld),true) | ||
532 | my_host_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LLDFLAGS) | ||
533 | else | ||
534 | my_host_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LDFLAGS) | ||
535 | endif # my_use_clang_lld | ||
536 | |||
537 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_INCLUDES := $(my_host_global_c_includes) | ||
538 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_SYSTEM_INCLUDES := $(my_host_global_c_system_includes) | ||
539 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CFLAGS := $(my_host_global_cflags) | ||
540 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CONLYFLAGS := $(my_host_global_conlyflags) | ||
541 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CPPFLAGS := $(my_host_global_cppflags) | ||
542 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_LDFLAGS := $(my_host_global_ldflags) | ||
543 | endif # LOCAL_IS_HOST_MODULE | ||
544 | |||
545 | # To enable coverage for a given module, set LOCAL_NATIVE_COVERAGE=true and | ||
546 | # build with NATIVE_COVERAGE=true in your enviornment. Note that the build | ||
547 | # system is not sensitive to changes to NATIVE_COVERAGE, so you should do a | ||
548 | # clean build of your module after toggling it. | ||
549 | ifeq ($(NATIVE_COVERAGE),true) | ||
550 | ifeq ($(my_native_coverage),true) | ||
551 | # Note that clang coverage doesn't play nicely with acov out of the box. | ||
552 | # Clang apparently generates .gcno files that aren't compatible with | ||
553 | # gcov-4.8. This can be solved by installing gcc-4.6 and invoking lcov | ||
554 | # with `--gcov-tool /usr/bin/gcov-4.6`. | ||
555 | # | ||
556 | # http://stackoverflow.com/questions/17758126/clang-code-coverage-invalid-output | ||
557 | my_cflags += --coverage -O0 | ||
558 | my_ldflags += --coverage | ||
559 | endif | ||
560 | |||
561 | my_coverage_lib := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)LIBPROFILE_RT) | ||
562 | |||
563 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_COVERAGE_LIB := $(my_coverage_lib) | ||
564 | $(LOCAL_INTERMEDIATE_TARGETS): $(my_coverage_lib) | ||
565 | else | ||
566 | my_native_coverage := false | ||
567 | endif | ||
568 | |||
569 | ########################################################### | ||
570 | ## Define PRIVATE_ variables used by multiple module types | ||
571 | ########################################################### | ||
572 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_NO_DEFAULT_COMPILER_FLAGS := \ | ||
573 | $(strip $(LOCAL_NO_DEFAULT_COMPILER_FLAGS)) | ||
574 | |||
575 | ifeq ($(strip $(WITH_STATIC_ANALYZER)),) | ||
576 | LOCAL_NO_STATIC_ANALYZER := true | ||
577 | endif | ||
578 | |||
579 | ifneq ($(strip $(LOCAL_IS_HOST_MODULE)),) | ||
580 | my_syntax_arch := host | ||
581 | else | ||
582 | my_syntax_arch := $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) | ||
583 | endif | ||
584 | |||
585 | ifeq ($(strip $(my_cc)),) | ||
586 | my_cc := $(my_cc_wrapper) $(CLANG) | ||
587 | endif | ||
588 | |||
589 | SYNTAX_TOOLS_PREFIX := \ | ||
590 | $(LLVM_PREBUILTS_BASE)/$(BUILD_OS)-x86/$(LLVM_PREBUILTS_VERSION)/libexec | ||
591 | |||
592 | ifneq ($(LOCAL_NO_STATIC_ANALYZER),true) | ||
593 | my_cc := CCC_CC=$(CLANG) CLANG=$(CLANG) \ | ||
594 | $(SYNTAX_TOOLS_PREFIX)/ccc-analyzer | ||
595 | endif | ||
596 | |||
597 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CC := $(my_cc) | ||
598 | |||
599 | ifeq ($(strip $(my_cxx)),) | ||
600 | my_cxx := $(my_cxx_wrapper) $(CLANG_CXX) | ||
601 | endif | ||
602 | |||
603 | ifneq ($(LOCAL_NO_STATIC_ANALYZER),true) | ||
604 | my_cxx := CCC_CXX=$(CLANG_CXX) CLANG_CXX=$(CLANG_CXX) \ | ||
605 | $(SYNTAX_TOOLS_PREFIX)/c++-analyzer | ||
606 | endif | ||
607 | |||
608 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_LINKER := $(my_linker) | ||
609 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CXX := $(my_cxx) | ||
610 | |||
611 | # TODO: support a mix of standard extensions so that this isn't necessary | 476 | # TODO: support a mix of standard extensions so that this isn't necessary |
612 | LOCAL_CPP_EXTENSION := $(strip $(LOCAL_CPP_EXTENSION)) | 477 | LOCAL_CPP_EXTENSION := $(strip $(LOCAL_CPP_EXTENSION)) |
613 | ifeq ($(LOCAL_CPP_EXTENSION),) | 478 | ifeq ($(LOCAL_CPP_EXTENSION),) |
@@ -1443,6 +1308,8 @@ normal_objects += $(addprefix $(TOPDIR)$(LOCAL_PATH)/,$(LOCAL_PREBUILT_OBJ_FILES | |||
1443 | 1308 | ||
1444 | all_objects := $(normal_objects) $(gen_o_objects) | 1309 | all_objects := $(normal_objects) $(gen_o_objects) |
1445 | 1310 | ||
1311 | LOCAL_INTERMEDIATE_TARGETS += $(all_objects) | ||
1312 | |||
1446 | # Cleanup file tracking | 1313 | # Cleanup file tracking |
1447 | $(foreach f,$(my_tracked_gen_files),$(eval my_src_file_gen_$(s):=)) | 1314 | $(foreach f,$(my_tracked_gen_files),$(eval my_src_file_gen_$(s):=)) |
1448 | my_tracked_gen_files := | 1315 | my_tracked_gen_files := |
@@ -1736,6 +1603,141 @@ endif | |||
1736 | # (start-group/end-group), so append after the check above. | 1603 | # (start-group/end-group), so append after the check above. |
1737 | my_ldlibs += $(my_cxx_ldlibs) | 1604 | my_ldlibs += $(my_cxx_ldlibs) |
1738 | 1605 | ||
1606 | ########################################################### | ||
1607 | ## Define PRIVATE_ variables from global vars | ||
1608 | ########################################################### | ||
1609 | ifndef LOCAL_IS_HOST_MODULE | ||
1610 | ifdef LOCAL_USE_VNDK | ||
1611 | my_target_global_c_includes := \ | ||
1612 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) | ||
1613 | my_target_global_c_system_includes := \ | ||
1614 | $(TARGET_OUT_HEADERS) \ | ||
1615 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) | ||
1616 | else ifdef LOCAL_SDK_VERSION | ||
1617 | my_target_global_c_includes := | ||
1618 | my_target_global_c_system_includes := $(my_ndk_stl_include_path) $(my_ndk_sysroot_include) | ||
1619 | else ifdef BOARD_VNDK_VERSION | ||
1620 | my_target_global_c_includes := $(SRC_HEADERS) \ | ||
1621 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \ | ||
1622 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) | ||
1623 | my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \ | ||
1624 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \ | ||
1625 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) | ||
1626 | else | ||
1627 | my_target_global_c_includes := $(SRC_HEADERS) \ | ||
1628 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \ | ||
1629 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) | ||
1630 | my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) $(TARGET_OUT_HEADERS) \ | ||
1631 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \ | ||
1632 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) | ||
1633 | endif | ||
1634 | |||
1635 | my_target_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CFLAGS) | ||
1636 | my_target_global_conlyflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CONLYFLAGS) $(my_c_std_conlyflags) | ||
1637 | my_target_global_cppflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CPPFLAGS) $(my_cpp_std_cppflags) | ||
1638 | ifeq ($(my_use_clang_lld),true) | ||
1639 | my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LLDFLAGS) | ||
1640 | include $(BUILD_SYSTEM)/pack_dyn_relocs_setup.mk | ||
1641 | ifeq ($(my_pack_module_relocations),false) | ||
1642 | my_target_global_ldflags += -Wl,--pack-dyn-relocs=none | ||
1643 | endif | ||
1644 | else | ||
1645 | my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LDFLAGS) | ||
1646 | endif # my_use_clang_lld | ||
1647 | |||
1648 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_INCLUDES := $(my_target_global_c_includes) | ||
1649 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_SYSTEM_INCLUDES := $(my_target_global_c_system_includes) | ||
1650 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CFLAGS := $(my_target_global_cflags) | ||
1651 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CONLYFLAGS := $(my_target_global_conlyflags) | ||
1652 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(my_target_global_cppflags) | ||
1653 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags) | ||
1654 | |||
1655 | else # LOCAL_IS_HOST_MODULE | ||
1656 | |||
1657 | my_host_global_c_includes := $(SRC_HEADERS) \ | ||
1658 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) | ||
1659 | my_host_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \ | ||
1660 | $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) | ||
1661 | |||
1662 | my_host_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CFLAGS) | ||
1663 | my_host_global_conlyflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CONLYFLAGS) $(my_c_std_conlyflags) | ||
1664 | my_host_global_cppflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CPPFLAGS) $(my_cpp_std_cppflags) | ||
1665 | ifeq ($(my_use_clang_lld),true) | ||
1666 | my_host_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LLDFLAGS) | ||
1667 | else | ||
1668 | my_host_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LDFLAGS) | ||
1669 | endif # my_use_clang_lld | ||
1670 | |||
1671 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_INCLUDES := $(my_host_global_c_includes) | ||
1672 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_SYSTEM_INCLUDES := $(my_host_global_c_system_includes) | ||
1673 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CFLAGS := $(my_host_global_cflags) | ||
1674 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CONLYFLAGS := $(my_host_global_conlyflags) | ||
1675 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CPPFLAGS := $(my_host_global_cppflags) | ||
1676 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_LDFLAGS := $(my_host_global_ldflags) | ||
1677 | endif # LOCAL_IS_HOST_MODULE | ||
1678 | |||
1679 | # To enable coverage for a given module, set LOCAL_NATIVE_COVERAGE=true and | ||
1680 | # build with NATIVE_COVERAGE=true in your enviornment. | ||
1681 | ifeq ($(NATIVE_COVERAGE),true) | ||
1682 | ifeq ($(my_native_coverage),true) | ||
1683 | # Note that clang coverage doesn't play nicely with acov out of the box. | ||
1684 | # Clang apparently generates .gcno files that aren't compatible with | ||
1685 | # gcov-4.8. This can be solved by installing gcc-4.6 and invoking lcov | ||
1686 | # with `--gcov-tool /usr/bin/gcov-4.6`. | ||
1687 | # | ||
1688 | # http://stackoverflow.com/questions/17758126/clang-code-coverage-invalid-output | ||
1689 | my_cflags += --coverage -O0 | ||
1690 | my_ldflags += --coverage | ||
1691 | endif | ||
1692 | |||
1693 | my_coverage_lib := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)LIBPROFILE_RT) | ||
1694 | |||
1695 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_COVERAGE_LIB := $(my_coverage_lib) | ||
1696 | $(LOCAL_INTERMEDIATE_TARGETS): $(my_coverage_lib) | ||
1697 | endif | ||
1698 | |||
1699 | ########################################################### | ||
1700 | ## Define PRIVATE_ variables used by multiple module types | ||
1701 | ########################################################### | ||
1702 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_NO_DEFAULT_COMPILER_FLAGS := \ | ||
1703 | $(strip $(LOCAL_NO_DEFAULT_COMPILER_FLAGS)) | ||
1704 | |||
1705 | ifeq ($(strip $(WITH_STATIC_ANALYZER)),) | ||
1706 | LOCAL_NO_STATIC_ANALYZER := true | ||
1707 | endif | ||
1708 | |||
1709 | ifneq ($(strip $(LOCAL_IS_HOST_MODULE)),) | ||
1710 | my_syntax_arch := host | ||
1711 | else | ||
1712 | my_syntax_arch := $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) | ||
1713 | endif | ||
1714 | |||
1715 | ifeq ($(strip $(my_cc)),) | ||
1716 | my_cc := $(my_cc_wrapper) $(CLANG) | ||
1717 | endif | ||
1718 | |||
1719 | SYNTAX_TOOLS_PREFIX := \ | ||
1720 | $(LLVM_PREBUILTS_BASE)/$(BUILD_OS)-x86/$(LLVM_PREBUILTS_VERSION)/libexec | ||
1721 | |||
1722 | ifneq ($(LOCAL_NO_STATIC_ANALYZER),true) | ||
1723 | my_cc := CCC_CC=$(CLANG) CLANG=$(CLANG) \ | ||
1724 | $(SYNTAX_TOOLS_PREFIX)/ccc-analyzer | ||
1725 | endif | ||
1726 | |||
1727 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CC := $(my_cc) | ||
1728 | |||
1729 | ifeq ($(strip $(my_cxx)),) | ||
1730 | my_cxx := $(my_cxx_wrapper) $(CLANG_CXX) | ||
1731 | endif | ||
1732 | |||
1733 | ifneq ($(LOCAL_NO_STATIC_ANALYZER),true) | ||
1734 | my_cxx := CCC_CXX=$(CLANG_CXX) CLANG_CXX=$(CLANG_CXX) \ | ||
1735 | $(SYNTAX_TOOLS_PREFIX)/c++-analyzer | ||
1736 | endif | ||
1737 | |||
1738 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_LINKER := $(my_linker) | ||
1739 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CXX := $(my_cxx) | ||
1740 | |||
1739 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_YACCFLAGS := $(LOCAL_YACCFLAGS) | 1741 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_YACCFLAGS := $(LOCAL_YACCFLAGS) |
1740 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASFLAGS := $(my_asflags) | 1742 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASFLAGS := $(my_asflags) |
1741 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CONLYFLAGS := $(my_conlyflags) | 1743 | $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CONLYFLAGS := $(my_conlyflags) |
diff --git a/core/definitions.mk b/core/definitions.mk index a9807f110..d5c7b9113 100644 --- a/core/definitions.mk +++ b/core/definitions.mk | |||
@@ -77,6 +77,9 @@ ALL_FINDBUGS_FILES:= | |||
77 | # GPL module license files | 77 | # GPL module license files |
78 | ALL_GPL_MODULE_LICENSE_FILES:= | 78 | ALL_GPL_MODULE_LICENSE_FILES:= |
79 | 79 | ||
80 | # Packages with certificate violation | ||
81 | CERTIFICATE_VIOLATION_MODULES := | ||
82 | |||
80 | # Target and host installed module's dependencies on shared libraries. | 83 | # Target and host installed module's dependencies on shared libraries. |
81 | # They are list of "<module_name>:<installed_file>:lib1,lib2...". | 84 | # They are list of "<module_name>:<installed_file>:lib1,lib2...". |
82 | TARGET_DEPENDENCIES_ON_SHARED_LIBRARIES := | 85 | TARGET_DEPENDENCIES_ON_SHARED_LIBRARIES := |
diff --git a/core/main.mk b/core/main.mk index 4f81c2163..282821cdb 100644 --- a/core/main.mk +++ b/core/main.mk | |||
@@ -1096,6 +1096,13 @@ ifdef FULL_BUILD | |||
1096 | $(TARGET_OUT_SYSTEM_OTHER)/%.vdex \ | 1096 | $(TARGET_OUT_SYSTEM_OTHER)/%.vdex \ |
1097 | $(TARGET_OUT_SYSTEM_OTHER)/%.art | 1097 | $(TARGET_OUT_SYSTEM_OTHER)/%.art |
1098 | endif | 1098 | endif |
1099 | |||
1100 | CERTIFICATE_VIOLATION_MODULES_FILENAME := $(PRODUCT_OUT)/certificate_violation_modules.txt | ||
1101 | $(CERTIFICATE_VIOLATION_MODULES_FILENAME): | ||
1102 | rm -f $@ | ||
1103 | $(foreach m,$(sort $(CERTIFICATE_VIOLATION_MODULES)), echo $(m) >> $@;) | ||
1104 | $(call dist-for-goals,droidcore,$(CERTIFICATE_VIOLATION_MODULES_FILENAME)) | ||
1105 | |||
1099 | all_offending_files := | 1106 | all_offending_files := |
1100 | $(foreach makefile,$(ARTIFACT_PATH_REQUIREMENT_PRODUCTS),\ | 1107 | $(foreach makefile,$(ARTIFACT_PATH_REQUIREMENT_PRODUCTS),\ |
1101 | $(eval requirements := $(PRODUCTS.$(makefile).ARTIFACT_PATH_REQUIREMENTS)) \ | 1108 | $(eval requirements := $(PRODUCTS.$(makefile).ARTIFACT_PATH_REQUIREMENTS)) \ |
diff --git a/core/package_internal.mk b/core/package_internal.mk index 75cc547be..c657f2edb 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk | |||
@@ -535,6 +535,7 @@ endif | |||
535 | ifeq ($(dir $(strip $(LOCAL_CERTIFICATE))),./) | 535 | ifeq ($(dir $(strip $(LOCAL_CERTIFICATE))),./) |
536 | LOCAL_CERTIFICATE := $(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))$(LOCAL_CERTIFICATE) | 536 | LOCAL_CERTIFICATE := $(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))$(LOCAL_CERTIFICATE) |
537 | endif | 537 | endif |
538 | include $(BUILD_SYSTEM)/app_certificate_validate.mk | ||
538 | private_key := $(LOCAL_CERTIFICATE).pk8 | 539 | private_key := $(LOCAL_CERTIFICATE).pk8 |
539 | certificate := $(LOCAL_CERTIFICATE).x509.pem | 540 | certificate := $(LOCAL_CERTIFICATE).x509.pem |
540 | additional_certificates := $(foreach c,$(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8) | 541 | additional_certificates := $(foreach c,$(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8) |
diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index 66913c1ac..960d8d1c5 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk | |||
@@ -306,6 +306,8 @@ else | |||
306 | $(built_module) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem | 306 | $(built_module) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem |
307 | endif | 307 | endif |
308 | 308 | ||
309 | include $(BUILD_SYSTEM)/app_certificate_validate.mk | ||
310 | |||
309 | # Disable dex-preopt of prebuilts to save space, if requested. | 311 | # Disable dex-preopt of prebuilts to save space, if requested. |
310 | ifndef LOCAL_DEX_PREOPT | 312 | ifndef LOCAL_DEX_PREOPT |
311 | ifeq ($(DONT_DEXPREOPT_PREBUILTS),true) | 313 | ifeq ($(DONT_DEXPREOPT_PREBUILTS),true) |
diff --git a/core/product.mk b/core/product.mk index 1420b46e1..2d7ace2fa 100644 --- a/core/product.mk +++ b/core/product.mk | |||
@@ -204,6 +204,8 @@ _product_var_list := \ | |||
204 | PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE \ | 204 | PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE \ |
205 | PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE \ | 205 | PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE \ |
206 | PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS \ | 206 | PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS \ |
207 | PRODUCT_ENFORCE_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT \ | ||
208 | PRODUCT_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT_WHITELIST \ | ||
207 | PRODUCT_ARTIFACT_PATH_REQUIREMENT_HINT \ | 209 | PRODUCT_ARTIFACT_PATH_REQUIREMENT_HINT \ |
208 | PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST \ | 210 | PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST \ |
209 | PRODUCT_USE_DYNAMIC_PARTITION_SIZE \ | 211 | PRODUCT_USE_DYNAMIC_PARTITION_SIZE \ |
diff --git a/core/product_config.mk b/core/product_config.mk index 47b4c7aa0..c58405cb2 100644 --- a/core/product_config.mk +++ b/core/product_config.mk | |||
@@ -367,6 +367,11 @@ PRODUCT_PRODUCT_PROPERTIES := \ | |||
367 | $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PRODUCT_PROPERTIES)) | 367 | $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PRODUCT_PROPERTIES)) |
368 | .KATI_READONLY := PRODUCT_PRODUCT_PROPERTIES | 368 | .KATI_READONLY := PRODUCT_PRODUCT_PROPERTIES |
369 | 369 | ||
370 | ENFORCE_SYSTEM_CERTIFICATE := \ | ||
371 | $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT) | ||
372 | |||
373 | ENFORCE_SYSTEM_CERTIFICATE_WHITELIST := \ | ||
374 | $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT_WHITELIST)) | ||
370 | 375 | ||
371 | # A list of property assignments, like "key = value", with zero or more | 376 | # A list of property assignments, like "key = value", with zero or more |
372 | # whitespace characters on either side of the '='. | 377 | # whitespace characters on either side of the '='. |
diff --git a/core/soong_app_prebuilt.mk b/core/soong_app_prebuilt.mk index 73d934bf9..f7236335b 100644 --- a/core/soong_app_prebuilt.mk +++ b/core/soong_app_prebuilt.mk | |||
@@ -108,7 +108,7 @@ ifdef LOCAL_CERTIFICATE | |||
108 | PACKAGES.$(LOCAL_MODULE).CERTIFICATE := $(LOCAL_CERTIFICATE) | 108 | PACKAGES.$(LOCAL_MODULE).CERTIFICATE := $(LOCAL_CERTIFICATE) |
109 | PACKAGES.$(LOCAL_MODULE).PRIVATE_KEY := $(patsubst %.x509.pem,%.pk8,$(LOCAL_CERTIFICATE)) | 109 | PACKAGES.$(LOCAL_MODULE).PRIVATE_KEY := $(patsubst %.x509.pem,%.pk8,$(LOCAL_CERTIFICATE)) |
110 | endif | 110 | endif |
111 | 111 | include $(BUILD_SYSTEM)/app_certificate_validate.mk | |
112 | PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES)) | 112 | PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES)) |
113 | 113 | ||
114 | ifdef LOCAL_SOONG_BUNDLE | 114 | ifdef LOCAL_SOONG_BUNDLE |
diff --git a/core/soong_config.mk b/core/soong_config.mk index 31c77d4b8..58e1a03ae 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk | |||
@@ -146,6 +146,9 @@ $(call add_json_str, DexpreoptGlobalConfig, $(DEX_PREOPT_CONFIG)) | |||
146 | 146 | ||
147 | $(call add_json_list, ManifestPackageNameOverrides, $(PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES)) | 147 | $(call add_json_list, ManifestPackageNameOverrides, $(PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES)) |
148 | 148 | ||
149 | $(call add_json_bool, EnforceSystemCertificate, $(ENFORCE_SYSTEM_CERTIFICATE)) | ||
150 | $(call add_json_list, EnforceSystemCertificateWhitelist, $(ENFORCE_SYSTEM_CERTIFICATE_WHITELIST)) | ||
151 | |||
149 | $(call add_json_map, VendorVars) | 152 | $(call add_json_map, VendorVars) |
150 | $(foreach namespace,$(SOONG_CONFIG_NAMESPACES),\ | 153 | $(foreach namespace,$(SOONG_CONFIG_NAMESPACES),\ |
151 | $(call add_json_map, $(namespace))\ | 154 | $(call add_json_map, $(namespace))\ |
diff --git a/target/product/base_system.mk b/target/product/base_system.mk index 63db56425..7c3ac3b3d 100644 --- a/target/product/base_system.mk +++ b/target/product/base_system.mk | |||
@@ -118,14 +118,14 @@ PRODUCT_PACKAGES += \ | |||
118 | libaudioutils \ | 118 | libaudioutils \ |
119 | libbinder \ | 119 | libbinder \ |
120 | libbinder_ndk \ | 120 | libbinder_ndk \ |
121 | libc \ | 121 | libc.bootstrap \ |
122 | libcamera2ndk \ | 122 | libcamera2ndk \ |
123 | libcamera_client \ | 123 | libcamera_client \ |
124 | libcameraservice \ | 124 | libcameraservice \ |
125 | libc_malloc_debug \ | 125 | libc_malloc_debug \ |
126 | libc_malloc_hooks \ | 126 | libc_malloc_hooks \ |
127 | libcutils \ | 127 | libcutils \ |
128 | libdl \ | 128 | libdl.bootstrap \ |
129 | libdrmframework \ | 129 | libdrmframework \ |
130 | libdrmframework_jni \ | 130 | libdrmframework_jni \ |
131 | libEGL \ | 131 | libEGL \ |
@@ -145,7 +145,7 @@ PRODUCT_PACKAGES += \ | |||
145 | libjnigraphics \ | 145 | libjnigraphics \ |
146 | libjpeg \ | 146 | libjpeg \ |
147 | liblog \ | 147 | liblog \ |
148 | libm \ | 148 | libm.bootstrap \ |
149 | libmdnssd \ | 149 | libmdnssd \ |
150 | libmedia \ | 150 | libmedia \ |
151 | libmedia_jni \ | 151 | libmedia_jni \ |
diff --git a/target/product/handheld_system.mk b/target/product/handheld_system.mk index acafe802d..0a763fb2a 100644 --- a/target/product/handheld_system.mk +++ b/target/product/handheld_system.mk | |||
@@ -46,7 +46,6 @@ PRODUCT_PACKAGES += \ | |||
46 | DocumentsUI \ | 46 | DocumentsUI \ |
47 | DownloadProviderUi \ | 47 | DownloadProviderUi \ |
48 | EasterEgg \ | 48 | EasterEgg \ |
49 | ExactCalculator \ | ||
50 | ExternalStorageProvider \ | 49 | ExternalStorageProvider \ |
51 | FusedLocation \ | 50 | FusedLocation \ |
52 | InputDevices \ | 51 | InputDevices \ |
@@ -86,4 +85,3 @@ PRODUCT_PROPERTY_OVERRIDES += \ | |||
86 | ro.carrier=unknown \ | 85 | ro.carrier=unknown \ |
87 | ro.config.notification_sound=OnTheHunt.ogg \ | 86 | ro.config.notification_sound=OnTheHunt.ogg \ |
88 | ro.config.alarm_alert=Alarm_Classic.ogg | 87 | ro.config.alarm_alert=Alarm_Classic.ogg |
89 | |||