# this is a static library, because some symbols are marked as hidden GCOV_PORT_DIR := $(call select_from_ports,gcov) GCOV_DIR := $(GCOV_PORT_DIR)/src/gcov SRC_C = libgcov-merge.c \ libgcov-profiler.c \ libgcov-interface.c \ libgcov-driver.c SRC_CC = libc.cc LIBGCOV_MERGE = _gcov_merge_add \ _gcov_merge_single \ _gcov_merge_delta \ _gcov_merge_ior \ _gcov_merge_time_profile \ _gcov_merge_icall_topn \ _gcov_merge_topn LIBGCOV_PROFILER = _gcov_interval_profiler \ _gcov_pow2_profiler \ _gcov_one_value_profiler \ _gcov_indirect_call_profiler \ _gcov_average_profiler \ _gcov_ior_profiler \ _gcov_indirect_call_profiler_v2 \ _gcov_time_profiler \ _gcov_indirect_call_topn_profiler LIBGCOV_INTERFACE = _gcov_dump \ _gcov_flush \ _gcov_reset LIBGCOV_DRIVER = _gcov CC_OPT += -fbuilding-libgcc -DIN_GCC -DIN_LIBGCC2 CC_OPT += $(addprefix -DL,$(LIBGCOV_MERGE)) CC_OPT += $(addprefix -DL,$(LIBGCOV_PROFILER)) CC_OPT += $(addprefix -DL,$(LIBGCOV_INTERFACE)) CC_OPT += $(addprefix -DL,$(LIBGCOV_DRIVER)) INC_DIR += $(GCOV_DIR)/include \ $(GCOV_DIR)/gcc \ $(REP_DIR)/src/lib/gcov/libc ifeq ($(filter-out $(SPECS),arm),) INC_DIR += $(GCOV_PORT_DIR)/include/arm/gcc \ $(GCOV_PORT_DIR)/include/arm/libgcc endif ifeq ($(filter-out $(SPECS),arm_64),) INC_DIR += $(GCOV_PORT_DIR)/include/arm_64/gcc \ $(GCOV_PORT_DIR)/include/arm_64/libgcc endif ifeq ($(filter-out $(SPECS),x86_32),) INC_DIR += $(GCOV_PORT_DIR)/include/x86_32/gcc \ $(GCOV_PORT_DIR)/include/x86_32/libgcc endif ifeq ($(filter-out $(SPECS),x86_64),) INC_DIR += $(GCOV_PORT_DIR)/include/x86_64/gcc \ $(GCOV_PORT_DIR)/include/x86_64/libgcc endif vpath %.c $(GCOV_DIR)/libgcc vpath libc.cc $(REP_DIR)/src/lib/gcov/libc CC_CXX_WARN_STRICT = LIBS += format