[PATCH] gcov: add support for GCC 14

Peter Oberparleiter posted 1 patch 1 year, 8 months ago
kernel/gcov/gcc_4_7.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH] gcov: add support for GCC 14
Posted by Peter Oberparleiter 1 year, 8 months ago
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 <allison.henderson@oracle.com>
Reported-by: Chuck Lever III <chuck.lever@oracle.com>
Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
---
 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
Re: [PATCH] gcov: add support for GCC 14
Posted by Chuck Lever 1 year, 8 months ago
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 <allison.henderson@oracle.com>
> Reported-by: Chuck Lever III <chuck.lever@oracle.com>
> Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
> ---
>  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 <chuck.lever@oracle.com>


-- 
Chuck Lever
Re: [PATCH] gcov: add support for GCC 14
Posted by Andrew Morton 1 year, 8 months ago
On Mon, 10 Jun 2024 09:41:19 -0400 Chuck Lever <chuck.lever@oracle.com> 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 <chuck.lever@oracle.com>

I assume this problem will affect people who use gcc-14 to compile
older kernels, so I have added cc:stable to this patch.
Re: [PATCH] gcov: add support for GCC 14
Posted by Peter Oberparleiter 1 year, 8 months ago
On 10.06.2024 19:45, Andrew Morton wrote:
> On Mon, 10 Jun 2024 09:41:19 -0400 Chuck Lever <chuck.lever@oracle.com> 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 <chuck.lever@oracle.com>
> 
> 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