2024-06-10 09:29:37

by Peter Oberparleiter

[permalink] [raw]
Subject: [PATCH] gcov: add support for GCC 14

Using gcov on kernels compiled with GCC 14 results in truncated 16-byte
long .gcda files with no usable data. To fix this, update GCOV_COUNTERS
to match the value defined by GCC 14.

Tested with GCC versions 14.1.0 and 13.2.0.

Reported-by: Allison Henderson <[email protected]>
Reported-by: Chuck Lever III <[email protected]>
Signed-off-by: Peter Oberparleiter <[email protected]>
---
kernel/gcov/gcc_4_7.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/gcov/gcc_4_7.c b/kernel/gcov/gcc_4_7.c
index 74a4ef1da9ad..fd75b4a484d7 100644
--- a/kernel/gcov/gcc_4_7.c
+++ b/kernel/gcov/gcc_4_7.c
@@ -18,7 +18,9 @@
#include <linux/mm.h>
#include "gcov.h"

-#if (__GNUC__ >= 10)
+#if (__GNUC__ >= 14)
+#define GCOV_COUNTERS 9
+#elif (__GNUC__ >= 10)
#define GCOV_COUNTERS 8
#elif (__GNUC__ >= 7)
#define GCOV_COUNTERS 9
--
2.40.1



2024-06-10 13:43:32

by Chuck Lever III

[permalink] [raw]
Subject: Re: [PATCH] gcov: add support for GCC 14

On Mon, Jun 10, 2024 at 11:27:43AM +0200, Peter Oberparleiter wrote:
> Using gcov on kernels compiled with GCC 14 results in truncated 16-byte
> long .gcda files with no usable data. To fix this, update GCOV_COUNTERS
> to match the value defined by GCC 14.
>
> Tested with GCC versions 14.1.0 and 13.2.0.
>
> Reported-by: Allison Henderson <[email protected]>
> Reported-by: Chuck Lever III <[email protected]>
> Signed-off-by: Peter Oberparleiter <[email protected]>
> ---
> kernel/gcov/gcc_4_7.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/gcov/gcc_4_7.c b/kernel/gcov/gcc_4_7.c
> index 74a4ef1da9ad..fd75b4a484d7 100644
> --- a/kernel/gcov/gcc_4_7.c
> +++ b/kernel/gcov/gcc_4_7.c
> @@ -18,7 +18,9 @@
> #include <linux/mm.h>
> #include "gcov.h"
>
> -#if (__GNUC__ >= 10)
> +#if (__GNUC__ >= 14)
> +#define GCOV_COUNTERS 9
> +#elif (__GNUC__ >= 10)
> #define GCOV_COUNTERS 8
> #elif (__GNUC__ >= 7)
> #define GCOV_COUNTERS 9
> --
> 2.40.1
>

With "gcc (GCC) 14.1.1 20240522 (Red Hat 14.1.1-4)" on Fedora 40:

lines: 58.2% (2350 out of 4036)
functions: 72.2% (197 out of 273)
branches: 35.5% (1037 out of 2923)
calls: 0.0% (0 out of 0)

All were 0% previously.

Tested-by: Chuck Lever <[email protected]>


--
Chuck Lever

2024-06-10 17:45:51

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] gcov: add support for GCC 14

On Mon, 10 Jun 2024 09:41:19 -0400 Chuck Lever <[email protected]> wrote:

> On Mon, Jun 10, 2024 at 11:27:43AM +0200, Peter Oberparleiter wrote:
> > Using gcov on kernels compiled with GCC 14 results in truncated 16-byte
> > long .gcda files with no usable data. To fix this, update GCOV_COUNTERS
> > to match the value defined by GCC 14.
> >
> > Tested with GCC versions 14.1.0 and 13.2.0.
> >
>
> ...
>
> Tested-by: Chuck Lever <[email protected]>

I assume this problem will affect people who use gcc-14 to compile
older kernels, so I have added cc:stable to this patch.


2024-06-12 09:15:29

by Peter Oberparleiter

[permalink] [raw]
Subject: Re: [PATCH] gcov: add support for GCC 14

On 10.06.2024 19:45, Andrew Morton wrote:
> On Mon, 10 Jun 2024 09:41:19 -0400 Chuck Lever <[email protected]> wrote:
>> On Mon, Jun 10, 2024 at 11:27:43AM +0200, Peter Oberparleiter wrote:
>>> Using gcov on kernels compiled with GCC 14 results in truncated 16-byte
>>> long .gcda files with no usable data. To fix this, update GCOV_COUNTERS
>>> to match the value defined by GCC 14.
>>>
>>> Tested with GCC versions 14.1.0 and 13.2.0.
>>>
>>
>> ...
>>
>> Tested-by: Chuck Lever <[email protected]>
>
> I assume this problem will affect people who use gcc-14 to compile
> older kernels, so I have added cc:stable to this patch.

Yes, adding this fix also to stable kernels makes sense.


--
Peter Oberparleiter
Linux on IBM Z Development - IBM Germany R&D