linpack: fix build with gcc-15.0.1

* fix following error:
    linpacknew.c: In function 'dgefa':
    linpacknew.c:257:9: error: conflicting types for 'idamax'; have 'int(void)'
    257 |     int idamax(),j,k,kp1,l,nm1;
        |         ^~~~~~
    linpacknew.c:63:13: note: previous declaration of 'idamax' with type 'int(int,  REAL *, int)' {aka 'int(int,  double *, int)'}
    63 | static int  idamax   (int n,REAL *dx,int incx);
        |             ^~~~~~
    linpacknew.c:272:21: error: too many arguments to function 'idamax'; expected 0, have 3
    272 |                 l = idamax(n-k,&a[lda*k+k],1) + k;
        |                     ^~~~~~ ~~~
    linpacknew.c:257:9: note: declared here
    257 |     int idamax(),j,k,kp1,l,nm1;
        |         ^~~~~~
    linpacknew.c:326:21: error: too many arguments to function 'idamax'; expected 0, have 3
    326 |                 l = idamax(n-k,&a[lda*k+k],1) + k;
        |                     ^~~~~~ ~~~
    linpacknew.c:257:9: note: declared here
    257 |     int idamax(),j,k,kp1,l,nm1;
        |         ^~~~~~

    The function was already declared as static int idamax(int n, REAL *dx, int incx);
    on line 63, but it was redeclared as int idamax() inside the dgefa function on line 257,
    causing a conflict.
    where functions are redeclared without parameters,
    causing conflicts with the original function definitions.

Signed-off-by: mark.yang <mark.yang@lge.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
mark.yang 2025-04-02 01:20:32 +09:00 committed by Khem Raj
parent 0d2b2b54fc
commit f3880aa2bb
No known key found for this signature in database
GPG Key ID: BB053355919D3314
2 changed files with 53 additions and 0 deletions

View File

@ -0,0 +1,52 @@
From a1c1211fd6fc8d82053074c6dc531340f046c8d4 Mon Sep 17 00:00:00 2001
From: "mark.yang" <mark.yang@lge.com>
Date: Tue, 1 Apr 2025 16:06:56 +0900
Subject: [PATCH] Fix build error in gcc 15.0.1 due to function redeclaration.
Fix build error:
linpacknew.c: In function 'dgefa':
linpacknew.c:257:9: error: conflicting types for 'idamax'; have 'int(void)'
257 | int idamax(),j,k,kp1,l,nm1;
| ^~~~~~
linpacknew.c:63:13: note: previous declaration of 'idamax' with type 'int(int, REAL *, int)' {aka 'int(int, double *, int)'}
63 | static int idamax (int n,REAL *dx,int incx);
| ^~~~~~
linpacknew.c:272:21: error: too many arguments to function 'idamax'; expected 0, have 3
272 | l = idamax(n-k,&a[lda*k+k],1) + k;
| ^~~~~~ ~~~
linpacknew.c:257:9: note: declared here
257 | int idamax(),j,k,kp1,l,nm1;
| ^~~~~~
linpacknew.c:326:21: error: too many arguments to function 'idamax'; expected 0, have 3
326 | l = idamax(n-k,&a[lda*k+k],1) + k;
| ^~~~~~ ~~~
linpacknew.c:257:9: note: declared here
257 | int idamax(),j,k,kp1,l,nm1;
| ^~~~~~
The function was already declared as static int idamax(int n, REAL *dx, int incx);
on line 63, but it was redeclared as int idamax() inside the dgefa function on line 257,
causing a conflict.
where functions are redeclared without parameters,
causing conflicts with the original function definitions.
Upstream-Status: Inactive-Upstream [lastrelease: 2/25/94]
Signed-off-by: mark.yang <mark.yang@lge.com>
---
linpacknew.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/linpacknew.c b/linpacknew.c
index c656082..5c8687b 100644
--- a/linpacknew.c
+++ b/linpacknew.c
@@ -254,7 +254,7 @@ static void dgefa(REAL *a,int lda,int n,int *ipvt,int *info,int roll)
{
REAL t;
- int idamax(),j,k,kp1,l,nm1;
+ int j,k,kp1,l,nm1;
/* gaussian elimination with partial pivoting */

View File

@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://${UNPACKDIR}/linpacknew.c;beginline=1;endline=23;md5=
SRC_URI = "http://www.netlib.org/benchmark/linpackc.new;downloadfilename=linpacknew.c \
file://0001-linpack-Define-DP-only-when-SP-is-not-defined.patch \
file://0001-Fix-build-error-in-gcc-15.0.1-due-to-function-redecl.patch \
"
SRC_URI[sha256sum] = "a63f2ec86512959f1fd926bfafb85905b2d7b7402942ffae3af374d48745e97e"