Update the FDO support:
* Explicitly check BUILD_FDO_INSTRUMENT and BUILD_FDO_OPTIMIZE with true * Remove unnecessary target_libgcov * Update the profile collection path on device so that most app can have write access Change-Id: I5c1915a12ea37b2cb3c76a27e7104e47ad636928
This commit is contained in:
parent
355520e35e
commit
5f5c48f0f1
9 changed files with 4 additions and 39 deletions
|
@ -165,8 +165,6 @@ $(combo_2nd_arch_prefix)TARGET_LIBGCC := $(shell $($(combo_2nd_arch_prefix)TARGE
|
|||
$($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) -print-libgcc-file-name)
|
||||
$(combo_2nd_arch_prefix)TARGET_LIBATOMIC := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) \
|
||||
$($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) -print-file-name=libatomic.a)
|
||||
target_libgcov := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) $($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) \
|
||||
-print-file-name=libgcov.a)
|
||||
endif
|
||||
|
||||
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
||||
|
@ -209,7 +207,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -236,7 +233,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -fPIE -pie \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -263,7 +259,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
||||
-Wl,--end-group \
|
||||
|
|
|
@ -174,7 +174,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -201,7 +200,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -fPIE -pie \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -228,7 +226,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
||||
-Wl,--end-group \
|
||||
|
|
|
@ -156,8 +156,6 @@ LIBGCC_EH := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) $($(combo_2nd_arch_pre
|
|||
ifneq ($(LIBGCC_EH),libgcc_eh.a)
|
||||
$(combo_2nd_arch_prefix)TARGET_LIBGCC += $(LIBGCC_EH)
|
||||
endif
|
||||
target_libgcov := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) $($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) \
|
||||
--print-file-name=libgcov.a)
|
||||
endif
|
||||
|
||||
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
||||
|
@ -200,7 +198,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -227,7 +224,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -fPIE -pie \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -254,7 +250,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
||||
-Wl,--end-group \
|
||||
|
|
|
@ -160,8 +160,6 @@ LIBGCC_EH := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) -print-file-name=libgc
|
|||
ifneq ($(LIBGCC_EH),libgcc_eh.a)
|
||||
TARGET_LIBGCC += $(LIBGCC_EH)
|
||||
endif
|
||||
target_libgcov := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) \
|
||||
--print-file-name=libgcov.a)
|
||||
endif
|
||||
|
||||
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
||||
|
@ -207,7 +205,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -234,7 +231,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -fPIE -pie \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -261,7 +257,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
||||
-Wl,--end-group \
|
||||
|
|
|
@ -62,8 +62,6 @@ $(combo_2nd_arch_prefix)TARGET_LIBGCC := \
|
|||
$(shell $($(combo_2nd_arch_prefix)TARGET_CC) -m32 -print-file-name=libgcc.a)
|
||||
$(combo_2nd_arch_prefix)TARGET_LIBATOMIC := \
|
||||
$(shell $($(combo_2nd_arch_prefix)TARGET_CC) -m32 -print-file-name=libatomic.a)
|
||||
target_libgcov := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) $($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) \
|
||||
-print-file-name=libgcov.a)
|
||||
endif
|
||||
|
||||
$(combo_2nd_arch_prefix)TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
|
||||
|
@ -165,7 +163,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_LDFLAGS) \
|
||||
|
@ -192,7 +189,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_LDFLAGS) \
|
||||
|
@ -216,7 +212,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
-Wl,--no-whole-archive \
|
||||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
||||
-Wl,--end-group \
|
||||
|
|
|
@ -62,8 +62,6 @@ TARGET_LIBGCC := \
|
|||
$(shell $(TARGET_CC) -m64 -print-file-name=libgcc.a)
|
||||
TARGET_LIBATOMIC := \
|
||||
$(shell $(TARGET_CC) -m64 -print-file-name=libatomic.a)
|
||||
target_libgcov := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) \
|
||||
-print-file-name=libgcov.a)
|
||||
endif
|
||||
|
||||
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
|
||||
|
@ -169,7 +167,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_LDFLAGS) \
|
||||
|
@ -195,7 +192,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_LDFLAGS) \
|
||||
|
@ -219,7 +215,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
-Wl,--no-whole-archive \
|
||||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
||||
-Wl,--end-group \
|
||||
|
|
|
@ -17,15 +17,13 @@
|
|||
# Setup FDO related flags.
|
||||
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS:=
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB:=
|
||||
|
||||
ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
|
||||
ifeq ($(strip $(BUILD_FDO_INSTRUMENT)), true)
|
||||
# Set BUILD_FDO_INSTRUMENT=true to turn on FDO instrumentation.
|
||||
# The profile will be generated on /data/local/tmp/profile on the device.
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-generate=/data/local/tmp/fdo_profile -DANDROID_FDO
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
||||
# The profile will be generated on /sdcard/fdo_profile on the device.
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-generate=/sdcard/fdo_profile -DANDROID_FDO
|
||||
else
|
||||
ifneq ($(strip $(BUILD_FDO_OPTIMIZE)),)
|
||||
ifeq ($(strip $(BUILD_FDO_OPTIMIZE)), true)
|
||||
# Set TARGET_FDO_PROFILE_PATH to set a custom profile directory for your build.
|
||||
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH)),)
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH := fdo_profiles
|
||||
|
@ -33,7 +31,6 @@ else
|
|||
|
||||
ifneq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-use=$($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH) -DANDROID_FDO -fprofile-correction -Wcoverage-mismatch -Wno-error
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
||||
else
|
||||
$(warning Profile directory $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH) does not exist. Turn off FDO.)
|
||||
endif
|
||||
|
|
|
@ -28,7 +28,6 @@ include $(BUILD_SYSTEM)/dynamic_binary.mk
|
|||
|
||||
# Define PRIVATE_ variables from global vars
|
||||
my_target_global_ld_dirs := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_LD_DIRS)
|
||||
my_target_fdo_lib := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_LIB)
|
||||
my_target_libgcc := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBGCC)
|
||||
my_target_libatomic := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBATOMIC)
|
||||
my_target_crtbegin_dynamic_o := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_CRTBEGIN_DYNAMIC_O)
|
||||
|
@ -48,7 +47,6 @@ 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_FDO_LIB := $(my_target_fdo_lib)
|
||||
$(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)
|
||||
|
|
|
@ -40,7 +40,6 @@ include $(BUILD_SYSTEM)/dynamic_binary.mk
|
|||
|
||||
# Define PRIVATE_ variables from global vars
|
||||
my_target_global_ld_dirs := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_LD_DIRS)
|
||||
my_target_fdo_lib := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_LIB)
|
||||
my_target_libgcc := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBGCC)
|
||||
my_target_libatomic := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBATOMIC)
|
||||
my_target_crtbegin_so_o := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_CRTBEGIN_SO_O)
|
||||
|
@ -58,7 +57,6 @@ 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_FDO_LIB := $(my_target_fdo_lib)
|
||||
$(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)
|
||||
|
|
Loading…
Reference in a new issue