mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
coverage: simplify the logic of choosing the number of gcov counters depending on the gcc version
The current structure of choosing the correct file based on the compiler version makes us make 33 line files just to define a constant. The changes after gcc 4.7 are minimal, just the number of counters. Fold the changes in gcc_4_9.c, gcc_5.c and gcc_7.c into gcc_4_7.c to remove a lot of the boilerplate and keep the logic of choosing the GCOV_COUNTER in gcc_4_7.c. Signed-off-by: Javi Merino <javi.merino@cloud.com> Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
38cb6be7bc
commit
745bf2b7de
5 files changed
+10
-109
No files matched your search
@@ -1,11 +1,7 @@
|
||||
obj-y += coverage.o
|
||||
ifneq ($(CONFIG_CC_IS_CLANG),y)
|
||||
obj-y += gcov_base.o gcov.o
|
||||
obj-y += $(call cc-ifversion,-lt,0407, \
|
||||
gcc_3_4.o, $(call cc-ifversion,-lt,0409, \
|
||||
gcc_4_7.o, $(call cc-ifversion,-lt,0500, \
|
||||
gcc_4_9.o, $(call cc-ifversion,-lt,0700, \
|
||||
gcc_5.o, gcc_7.o))))
|
||||
obj-y += $(call cc-ifversion,-lt,0407, gcc_3_4.o, gcc_4_7.o)
|
||||
else
|
||||
obj-y += llvm.o
|
||||
endif
|
||||
@@ -18,15 +18,16 @@
|
||||
|
||||
#include "gcov.h"
|
||||
|
||||
/*
|
||||
* GCOV_COUNTERS will be defined if this file is included by other
|
||||
* source files.
|
||||
*/
|
||||
#ifndef GCOV_COUNTERS
|
||||
# if !(GCC_VERSION >= 40700 && GCC_VERSION < 40900)
|
||||
# error "Wrong version of GCC used to compile gcov"
|
||||
# endif
|
||||
#if GCC_VERSION < 40700
|
||||
#error "Wrong version of GCC used to compile gcov"
|
||||
#elif GCC_VERSION < 40900
|
||||
#define GCOV_COUNTERS 8
|
||||
#elif GCC_VERSION < 50000
|
||||
#define GCOV_COUNTERS 9
|
||||
#elif GCC_VERSION < 70000
|
||||
#define GCOV_COUNTERS 10
|
||||
#else
|
||||
#define GCOV_COUNTERS 9
|
||||
#endif
|
||||
|
||||
#define GCOV_TAG_FUNCTION_LENGTH 3
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* This code provides functions to handle gcc's profiling data format
|
||||
* introduced with gcc 4.7.
|
||||
*
|
||||
* For a better understanding, refer to gcc source:
|
||||
* gcc/gcov-io.h
|
||||
* libgcc/libgcov.c
|
||||
*
|
||||
* Uses gcc-internal data definitions.
|
||||
*
|
||||
* Imported from Linux and modified for Xen by
|
||||
* Wei Liu <wei.liu2@citrix.com>
|
||||
*/
|
||||
|
||||
#include "gcov.h"
|
||||
|
||||
#if !(GCC_VERSION >= 40900 && GCC_VERSION < 50000)
|
||||
#error "Wrong version of GCC used to compile gcov"
|
||||
#endif
|
||||
|
||||
#define GCOV_COUNTERS 9
|
||||
|
||||
#include "gcc_4_7.c"
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-file-style: "BSD"
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
||||
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* This code provides functions to handle gcc's profiling data format
|
||||
* introduced with gcc 5.
|
||||
*
|
||||
* For a better understanding, refer to gcc source:
|
||||
* gcc/gcov-io.h
|
||||
* libgcc/libgcov.c
|
||||
*
|
||||
* Uses gcc-internal data definitions.
|
||||
*
|
||||
* Imported from Linux and modified for Xen by
|
||||
* Wei Liu <wei.liu2@citrix.com>
|
||||
*/
|
||||
|
||||
#include "gcov.h"
|
||||
|
||||
#if GCC_VERSION < 50000 || GCC_VERSION >= 70000
|
||||
#error "Wrong version of GCC used to compile gcov"
|
||||
#endif
|
||||
|
||||
#define GCOV_COUNTERS 10
|
||||
|
||||
#include "gcc_4_7.c"
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-file-style: "BSD"
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
||||
@@ -1,30 +0,0 @@
|
||||
/*
|
||||
* This code provides functions to handle gcc's profiling data format
|
||||
* introduced with gcc 7.
|
||||
*
|
||||
* For a better understanding, refer to gcc source:
|
||||
* gcc/gcov-io.h
|
||||
* libgcc/libgcov.c
|
||||
*
|
||||
* Uses gcc-internal data definitions.
|
||||
*/
|
||||
|
||||
#include "gcov.h"
|
||||
|
||||
#if GCC_VERSION < 70000
|
||||
#error "Wrong version of GCC used to compile gcov"
|
||||
#endif
|
||||
|
||||
#define GCOV_COUNTERS 9
|
||||
|
||||
#include "gcc_4_7.c"
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-file-style: "BSD"
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
||||