Loading core/base_rules.mk +27 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,33 @@ endif # Assemble the list of targets to create PRIVATE_ variables for. LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE) ########################################################### ## Create .toc files from shared objects to reduce unnecessary rebuild # .toc files have the list of external dynamic symbols without their addresses. # For ninja build, .toc files will be updated only when the content of .toc # files are changed. As .KATI_RESTAT is specified to .toc files, dependent # binaries of a .toc file will be rebuilt only when the content of # the .toc file is changed. ########################################################### ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES) LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE).toc $(LOCAL_BUILT_MODULE).toc: $(LOCAL_BUILT_MODULE) ifeq ($(BUILDING_WITH_NINJA),true) $(call $(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)transform-shared-lib-to-toc,$<,$@.tmp) $(hide) if cmp -s $@.tmp $@ ; then \ rm $@.tmp ; \ else \ mv $@.tmp $@ ; \ fi else @# make doesn't support restat. We always update .toc files so the dependents will always be updated too. $(call $(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)transform-shared-lib-to-toc,$<,$@) endif # Kati adds restat=1 to ninja. GNU make does nothing for this. .KATI_RESTAT: $(LOCAL_BUILT_MODULE).toc endif ########################################################### ## logtags: Add .logtags files to global list ########################################################### Loading core/binary.mk +5 −1 Original line number Diff line number Diff line Loading @@ -1175,6 +1175,7 @@ built_shared_libraries := \ $(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(my_shared_libraries))) built_shared_library_tocs := $(addsuffix .toc, $(built_shared_libraries)) # Add the NDK libraries to the built module dependency my_system_shared_libraries_fullpath := \ Loading @@ -1188,6 +1189,8 @@ built_shared_libraries := \ $(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(installed_shared_library_module_names))) built_shared_library_tocs := $(addsuffix .toc, $(built_shared_libraries)) my_system_shared_libraries_fullpath := endif built_static_libraries := \ Loading Loading @@ -1282,7 +1285,8 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ALL_OBJECTS := $(all_objects) ########################################################### # all_libraries is used for the dependencies on LOCAL_BUILT_MODULE. all_libraries := \ $(built_shared_libraries) \ $(built_shared_library_tocs) \ $(my_system_shared_libraries_fullpath) \ $(built_static_libraries) \ $(built_whole_libraries) Loading core/combo/HOST_CROSS_windows-x86.mk +7 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,13 @@ $(combo_var_prefix)GLOBAL_CFLAGS += -D_FILE_OFFSET_BITS=64 $(combo_var_prefix)CC := $(TOOLS_PREFIX)gcc $(combo_var_prefix)CXX := $(TOOLS_PREFIX)g++ $(combo_var_prefix)AR := $(TOOLS_PREFIX)ar $(combo_var_prefix)NM := $(TOOLS_PREFIX)nm $(combo_var_prefix)OBJDUMP := $(TOOLS_PREFIX)objdump define $(combo_var_prefix)transform-shared-lib-to-toc $(hide) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)OBJDUMP) -x $(1) | grep "^Name" | cut -f3 -d" " > $(2) $(hide) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)NM) -g -f p $(1) | cut -f1-2 -d" " >> $(2) endef $(combo_var_prefix)GLOBAL_LDFLAGS += \ --enable-stdcall-fixup Loading core/combo/HOST_darwin-x86.mk +4 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,10 @@ $(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX := $($(combo_2nd_arch_prefix)HOST_ $(combo_2nd_arch_prefix)HOST_CC := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)-gcc $(combo_2nd_arch_prefix)HOST_CXX := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)-g++ define $(combo_var_prefix)transform-shared-lib-to-toc $(call _gen_toc_command_for_macho,$(1),$(2)) endef # gcc location for clang; to be updated when clang is updated # HOST_TOOLCHAIN_ROOT is a Darwin-specific define $(combo_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_ROOT) Loading core/combo/HOST_darwin-x86_64.mk +4 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,10 @@ HOST_TOOLCHAIN_PREFIX := $(HOST_TOOLCHAIN_ROOT)/bin/i686-apple-darwin$(gcc_darwi HOST_CC := $(HOST_TOOLCHAIN_PREFIX)-gcc HOST_CXX := $(HOST_TOOLCHAIN_PREFIX)-g++ define $(combo_var_prefix)transform-shared-lib-to-toc $(call _gen_toc_command_for_macho,$(1),$(2)) endef # gcc location for clang; to be updated when clang is updated # HOST_TOOLCHAIN_ROOT is a Darwin-specific define HOST_TOOLCHAIN_FOR_CLANG := $(HOST_TOOLCHAIN_ROOT) Loading Loading
core/base_rules.mk +27 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,33 @@ endif # Assemble the list of targets to create PRIVATE_ variables for. LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE) ########################################################### ## Create .toc files from shared objects to reduce unnecessary rebuild # .toc files have the list of external dynamic symbols without their addresses. # For ninja build, .toc files will be updated only when the content of .toc # files are changed. As .KATI_RESTAT is specified to .toc files, dependent # binaries of a .toc file will be rebuilt only when the content of # the .toc file is changed. ########################################################### ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES) LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE).toc $(LOCAL_BUILT_MODULE).toc: $(LOCAL_BUILT_MODULE) ifeq ($(BUILDING_WITH_NINJA),true) $(call $(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)transform-shared-lib-to-toc,$<,$@.tmp) $(hide) if cmp -s $@.tmp $@ ; then \ rm $@.tmp ; \ else \ mv $@.tmp $@ ; \ fi else @# make doesn't support restat. We always update .toc files so the dependents will always be updated too. $(call $(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)transform-shared-lib-to-toc,$<,$@) endif # Kati adds restat=1 to ninja. GNU make does nothing for this. .KATI_RESTAT: $(LOCAL_BUILT_MODULE).toc endif ########################################################### ## logtags: Add .logtags files to global list ########################################################### Loading
core/binary.mk +5 −1 Original line number Diff line number Diff line Loading @@ -1175,6 +1175,7 @@ built_shared_libraries := \ $(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(my_shared_libraries))) built_shared_library_tocs := $(addsuffix .toc, $(built_shared_libraries)) # Add the NDK libraries to the built module dependency my_system_shared_libraries_fullpath := \ Loading @@ -1188,6 +1189,8 @@ built_shared_libraries := \ $(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(installed_shared_library_module_names))) built_shared_library_tocs := $(addsuffix .toc, $(built_shared_libraries)) my_system_shared_libraries_fullpath := endif built_static_libraries := \ Loading Loading @@ -1282,7 +1285,8 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ALL_OBJECTS := $(all_objects) ########################################################### # all_libraries is used for the dependencies on LOCAL_BUILT_MODULE. all_libraries := \ $(built_shared_libraries) \ $(built_shared_library_tocs) \ $(my_system_shared_libraries_fullpath) \ $(built_static_libraries) \ $(built_whole_libraries) Loading
core/combo/HOST_CROSS_windows-x86.mk +7 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,13 @@ $(combo_var_prefix)GLOBAL_CFLAGS += -D_FILE_OFFSET_BITS=64 $(combo_var_prefix)CC := $(TOOLS_PREFIX)gcc $(combo_var_prefix)CXX := $(TOOLS_PREFIX)g++ $(combo_var_prefix)AR := $(TOOLS_PREFIX)ar $(combo_var_prefix)NM := $(TOOLS_PREFIX)nm $(combo_var_prefix)OBJDUMP := $(TOOLS_PREFIX)objdump define $(combo_var_prefix)transform-shared-lib-to-toc $(hide) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)OBJDUMP) -x $(1) | grep "^Name" | cut -f3 -d" " > $(2) $(hide) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)NM) -g -f p $(1) | cut -f1-2 -d" " >> $(2) endef $(combo_var_prefix)GLOBAL_LDFLAGS += \ --enable-stdcall-fixup Loading
core/combo/HOST_darwin-x86.mk +4 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,10 @@ $(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX := $($(combo_2nd_arch_prefix)HOST_ $(combo_2nd_arch_prefix)HOST_CC := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)-gcc $(combo_2nd_arch_prefix)HOST_CXX := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_PREFIX)-g++ define $(combo_var_prefix)transform-shared-lib-to-toc $(call _gen_toc_command_for_macho,$(1),$(2)) endef # gcc location for clang; to be updated when clang is updated # HOST_TOOLCHAIN_ROOT is a Darwin-specific define $(combo_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_ROOT) Loading
core/combo/HOST_darwin-x86_64.mk +4 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,10 @@ HOST_TOOLCHAIN_PREFIX := $(HOST_TOOLCHAIN_ROOT)/bin/i686-apple-darwin$(gcc_darwi HOST_CC := $(HOST_TOOLCHAIN_PREFIX)-gcc HOST_CXX := $(HOST_TOOLCHAIN_PREFIX)-g++ define $(combo_var_prefix)transform-shared-lib-to-toc $(call _gen_toc_command_for_macho,$(1),$(2)) endef # gcc location for clang; to be updated when clang is updated # HOST_TOOLCHAIN_ROOT is a Darwin-specific define HOST_TOOLCHAIN_FOR_CLANG := $(HOST_TOOLCHAIN_ROOT) Loading