diff --git a/arch/arm/src/arm/Toolchain.defs b/arch/arm/src/arm/Toolchain.defs index 64eca4bb0d..a9299a0b3a 100644 --- a/arch/arm/src/arm/Toolchain.defs +++ b/arch/arm/src/arm/Toolchain.defs @@ -75,6 +75,10 @@ ifeq ($(CONFIG_STACK_CANARIES),y) ARCHOPTIMIZATION += -fstack-protector-all endif +ifeq ($(CONFIG_ARCH_COVERAGE),y) + ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage +endif + ifeq ($(CONFIG_MM_KASAN),y) ARCHCPUFLAGS += -fsanitize=kernel-address endif @@ -161,3 +165,7 @@ endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a)) endif + +ifeq ($(CONFIG_ARCH_COVERAGE),y) + EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a)) +endif diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs index 04f9fe33a0..6fe3f986f7 100644 --- a/arch/arm/src/armv6-m/Toolchain.defs +++ b/arch/arm/src/armv6-m/Toolchain.defs @@ -79,6 +79,10 @@ ifeq ($(CONFIG_STACK_CANARIES),y) ARCHOPTIMIZATION += -fstack-protector-all endif +ifeq ($(CONFIG_ARCH_COVERAGE),y) + ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage +endif + # Parametrization for ARCHCPUFLAGS TOOLCHAIN_MTUNE := -mcpu=cortex-m0 -mthumb @@ -202,3 +206,7 @@ endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a)) endif + +ifeq ($(CONFIG_ARCH_COVERAGE),y) + EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a)) +endif diff --git a/arch/arm/src/armv7-a/Toolchain.defs b/arch/arm/src/armv7-a/Toolchain.defs index 57ba38ed59..3c8580b344 100644 --- a/arch/arm/src/armv7-a/Toolchain.defs +++ b/arch/arm/src/armv7-a/Toolchain.defs @@ -120,6 +120,10 @@ ifeq ($(CONFIG_STACK_CANARIES),y) ARCHOPTIMIZATION += -fstack-protector-all endif +ifeq ($(CONFIG_ARCH_COVERAGE),y) + ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage +endif + ifeq ($(CONFIG_ENDIAN_BIG),y) TARGET_ARCH := armeb else @@ -208,3 +212,7 @@ endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a)) endif + +ifeq ($(CONFIG_ARCH_COVERAGE),y) + EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a)) +endif diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs index 2c4289f99c..98fc328bfc 100644 --- a/arch/arm/src/armv7-m/Toolchain.defs +++ b/arch/arm/src/armv7-m/Toolchain.defs @@ -81,6 +81,10 @@ ifeq ($(CONFIG_STACK_CANARIES),y) ARCHOPTIMIZATION += -fstack-protector-all endif +ifeq ($(CONFIG_ARCH_COVERAGE),y) + ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage +endif + ifeq ($(CONFIG_ARMV7M_STACKCHECK),y) ARCHOPTIMIZATION += -finstrument-functions -ffixed-r10 endif @@ -274,3 +278,7 @@ endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a)) endif + +ifeq ($(CONFIG_ARCH_COVERAGE),y) + EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a)) +endif diff --git a/arch/arm/src/armv7-r/Toolchain.defs b/arch/arm/src/armv7-r/Toolchain.defs index d9c9427c54..6e59529dde 100644 --- a/arch/arm/src/armv7-r/Toolchain.defs +++ b/arch/arm/src/armv7-r/Toolchain.defs @@ -69,6 +69,10 @@ ifeq ($(CONFIG_STACK_CANARIES),y) ARCHOPTIMIZATION += -fstack-protector-all endif +ifeq ($(CONFIG_ARCH_COVERAGE),y) + ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage +endif + ifeq ($(CONFIG_ARCH_CORTEXR4),y) ARCHCPUFLAGS += -mcpu=cortex-r4 else ifeq ($(CONFIG_ARCH_CORTEXR5),y) @@ -184,3 +188,7 @@ endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a)) endif + +ifeq ($(CONFIG_ARCH_COVERAGE),y) + EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a)) +endif diff --git a/arch/arm/src/armv8-m/Toolchain.defs b/arch/arm/src/armv8-m/Toolchain.defs index ee6bf7d86a..08056ef0f2 100644 --- a/arch/arm/src/armv8-m/Toolchain.defs +++ b/arch/arm/src/armv8-m/Toolchain.defs @@ -81,6 +81,10 @@ ifeq ($(CONFIG_STACK_CANARIES),y) ARCHOPTIMIZATION += -fstack-protector-all endif +ifeq ($(CONFIG_ARCH_COVERAGE),y) + ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage +endif + ifeq ($(CONFIG_ARMV8M_STACKCHECK),y) ARCHOPTIMIZATION += -finstrument-functions -ffixed-r10 endif @@ -283,3 +287,7 @@ endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a)) endif + +ifeq ($(CONFIG_ARCH_COVERAGE),y) + EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a)) +endif diff --git a/arch/risc-v/src/common/Toolchain.defs b/arch/risc-v/src/common/Toolchain.defs index 174a20d44b..21554495a0 100644 --- a/arch/risc-v/src/common/Toolchain.defs +++ b/arch/risc-v/src/common/Toolchain.defs @@ -63,6 +63,10 @@ ifeq ($(CONFIG_STACK_CANARIES),y) ARCHOPTIMIZATION += -fstack-protector-all endif +ifeq ($(CONFIG_ARCH_COVERAGE),y) + ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage +endif + ARCHCFLAGS += -fno-common ARCHCXXFLAGS += -fno-common -nostdinc++ @@ -189,3 +193,7 @@ endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a)) endif + +ifeq ($(CONFIG_ARCH_COVERAGE),y) + EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a)) +endif diff --git a/arch/xtensa/src/lx6/Toolchain.defs b/arch/xtensa/src/lx6/Toolchain.defs index 5312e15056..5a0f32e7a4 100644 --- a/arch/xtensa/src/lx6/Toolchain.defs +++ b/arch/xtensa/src/lx6/Toolchain.defs @@ -67,6 +67,10 @@ ifeq ($(CONFIG_STACK_CANARIES),y) ARCHOPTIMIZATION += -fstack-protector-all endif +ifeq ($(CONFIG_ARCH_COVERAGE),y) + ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage +endif + ARCHCFLAGS += -fno-common ARCHCXXFLAGS += -fno-common -nostdinc++ @@ -129,3 +133,7 @@ endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a)) endif + +ifeq ($(CONFIG_ARCH_COVERAGE),y) + EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a)) +endif diff --git a/arch/xtensa/src/lx7/Toolchain.defs b/arch/xtensa/src/lx7/Toolchain.defs index da9fb6f1d3..496bbcbf5d 100644 --- a/arch/xtensa/src/lx7/Toolchain.defs +++ b/arch/xtensa/src/lx7/Toolchain.defs @@ -67,6 +67,10 @@ ifeq ($(CONFIG_STACK_CANARIES),y) ARCHOPTIMIZATION += -fstack-protector-all endif +ifeq ($(CONFIG_ARCH_COVERAGE),y) + ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage +endif + ARCHCFLAGS += -fno-common ARCHCXXFLAGS += -fno-common -nostdinc++ @@ -129,3 +133,7 @@ endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a)) endif + +ifeq ($(CONFIG_ARCH_COVERAGE),y) + EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a)) +endif