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:
Javi Merino authored and Jan Beulich committed 2023-09-11 17:26:05 +02:00
1 parent 38cb6be7bc
commit 745bf2b7de
5 files changed
+10 -109

No files matched your search

+1 -5
View File
@@ -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
+9 -8
View File
@@ -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
-33
View File
@@ -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:
*/
-33
View File
@@ -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:
*/
-30
View File
@@ -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:
*/
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.