--- a/SRC/smatgen.c 2026-05-05 10:09:56.551955544 +0200 +++ b/SRC/smatgen.c 2026-05-05 10:10:36.422464887 +0200 @@ -32,7 +32,7 @@ int_t *asub, *xa; float *val; int_t *row; - extern double dlaran_(); + extern double dlaran_(int *); printf("A banded matrix."); sallocateA(n, nonz, nzval, rowind, colptr); /* Allocate storage */ @@ -73,7 +73,7 @@ int_t *asub, *xa; float *val; int_t *row; - extern double dlaran_(); + extern double dlaran_(int *); n = bs * nb; printf("A block diagonal matrix: nb " IFMT ", bs " IFMT ", n " IFMT "\n", nb, bs, n); --- a/SRC/slu_mt_sdefs.h 2026-05-05 10:35:08.073768931 +0200 +++ b/SRC/slu_mt_sdefs.h 2026-05-05 10:35:36.110435758 +0200 @@ -281,7 +281,7 @@ int_t *, int_t *, pxgstrf_shared_t *); extern int_t sParallelInit (int_t, pxgstrf_relax_t *, superlumt_options_t *, pxgstrf_shared_t *); -extern int_t ParallelFinalize (); +extern int_t ParallelFinalize (pxgstrf_shared_t *); extern void psgstrf_StackFree (); extern int_t queue_init (queue_t *, int_t); extern int_t queue_destroy (queue_t *); @@ -462,7 +462,7 @@ -------------------*/ extern double SuperLU_timer_(); extern int_t sp_ienv(int_t); -extern double slamch_(); +extern double slamch_(char *); extern int lsame_(char *, char *); extern int xerbla_(char *, int *); extern void superlu_abort_and_exit(char *); @@ -480,7 +480,8 @@ extern void sCompRow_to_CompCol(int_t m, int_t n, int_t nnz, float *a, int_t *colind, int_t *rowptr, float **at, int_t **rowind, int_t **colptr); - +extern void sp_colorder(SuperMatrix *, int_t *, superlumt_options_t *, + SuperMatrix *); /* ----------------------- Routines for debugging --- a/SRC/psmemory.c 2026-05-05 10:23:51.580836840 +0200 +++ b/SRC/psmemory.c 2026-05-05 10:24:23.540456533 +0200 @@ -869,7 +869,7 @@ int_t *map_in_sup; /* memory mapping function; values irrelevant on entry. */ int_t *colcnt; /* column count of Lc or H */ int_t *super_bnd; /* supernodes partition in H */ - char *snode_env, *getenv(); + char *snode_env; snode_env = getenv("SuperLU_DYNAMIC_SNODE_STORE"); if ( snode_env != NULL ) { --- a/SRC/sgstrs.c 2026-05-05 10:28:37.203432482 +0200 +++ b/SRC/sgstrs.c 2026-05-05 10:29:03.340120543 +0200 @@ -89,7 +89,7 @@ float *Lval, *Uval, *Bmat; float *work, *work_col, *rhs_work, *soln; flops_t solve_ops; - void sprint_soln(); + void sprint_soln(int_t n, int_t nrhs, float *soln); /* Test input parameters ... */ *info = 0; --- a/SRC/psgstrf_thread_init.c 2026-05-05 10:30:38.273987506 +0200 +++ b/SRC/psgstrf_thread_init.c 2026-05-05 10:32:57.364327454 +0200 @@ -11,6 +11,18 @@ #include "slu_mt_sdefs.h" +extern void +pxgstrf_relax_snode( + const int_t, + superlumt_options_t *, + pxgstrf_relax_t * + ); + +extern int_t +ParallelInit(int_t n, pxgstrf_relax_t *pxgstrf_relax, + superlumt_options_t *superlumt_options, + pxgstrf_shared_t *pxgstrf_shared); + psgstrf_threadarg_t * psgstrf_thread_init(SuperMatrix *A, SuperMatrix *L, SuperMatrix *U, superlumt_options_t *options, --- a/SRC/sp_colorder.c 2026-05-05 10:37:48.706860063 +0200 +++ b/SRC/sp_colorder.c 2026-05-05 10:41:06.366511201 +0200 @@ -11,6 +11,18 @@ #include "slu_mt_ddefs.h" +extern int_t +sp_symetree( + int_t *, int_t *, + int_t *, /* row indices of A */ + int_t, /* dimension of A */ + int_t * + ); + +extern int_t cholnzcnt(int_t, int_t *, int_t *, + int_t *, int_t *, int_t *, + int_t *, int_t *, int_t *); + void sp_colorder(SuperMatrix *A, int_t *perm_c, superlumt_options_t *options, SuperMatrix *AC) @@ -281,7 +293,7 @@ dPrintSuperPart(char *pname, int_t n, int_t *part_super) { register int_t i; - FILE *fopen(), *fp; + FILE *fp; char fname[20]; strcpy(fname, pname); strcat(fname, ".dat"); --- a/SRC/slu_mt_ddefs.h 2026-05-05 10:42:47.203312916 +0200 +++ b/SRC/slu_mt_ddefs.h 2026-05-05 10:43:24.531870105 +0200 @@ -281,7 +281,7 @@ int_t *, int_t *, pxgstrf_shared_t *); extern int_t dParallelInit (int_t, pxgstrf_relax_t *, superlumt_options_t *, pxgstrf_shared_t *); -extern int_t ParallelFinalize (); +extern int_t ParallelFinalize (pxgstrf_shared_t *); extern void pdgstrf_StackFree (); extern int_t queue_init (queue_t *, int_t); extern int_t queue_destroy (queue_t *); @@ -462,7 +462,7 @@ -------------------*/ extern double SuperLU_timer_(); extern int_t sp_ienv(int_t); -extern double dlamch_(); +extern double dlamch_(char *); extern int lsame_(char *, char *); extern int xerbla_(char *, int *); extern void superlu_abort_and_exit(char *); @@ -480,6 +480,8 @@ extern void dCompRow_to_CompCol(int_t m, int_t n, int_t nnz, double *a, int_t *colind, int_t *rowptr, double **at, int_t **rowind, int_t **colptr); +extern void sp_colorder(SuperMatrix *, int_t *, superlumt_options_t *, + SuperMatrix *); /* ----------------------- --- a/SRC/dmatgen.c 2026-05-05 10:45:55.595085553 +0200 +++ b/SRC/dmatgen.c 2026-05-05 10:47:25.676021395 +0200 @@ -32,7 +32,7 @@ int_t *asub, *xa; double *val; int_t *row; - extern double dlaran_(); + extern double dlaran_(int *); printf("A banded matrix."); dallocateA(n, nonz, nzval, rowind, colptr); /* Allocate storage */ @@ -73,7 +73,7 @@ int_t *asub, *xa; double *val; int_t *row; - extern double dlaran_(); + extern double dlaran_(int *); n = bs * nb; printf("A block diagonal matrix: nb " IFMT ", bs " IFMT ", n " IFMT "\n", nb, bs, n); --- a/SRC/dgstrs.c 2026-05-05 10:53:26.071802281 +0200 +++ b/SRC/dgstrs.c 2026-05-05 10:54:16.615226353 +0200 @@ -89,7 +89,7 @@ double *Lval, *Uval, *Bmat; double *work, *work_col, *rhs_work, *soln; flops_t solve_ops; - void dprint_soln(); + void dprint_soln(int_t, int_t, double *); /* Test input parameters ... */ *info = 0; --- a/SRC/pdmemory.c 2026-05-05 10:55:14.990561181 +0200 +++ b/SRC/pdmemory.c 2026-05-05 10:55:33.001355952 +0200 @@ -869,7 +869,7 @@ int_t *map_in_sup; /* memory mapping function; values irrelevant on entry. */ int_t *colcnt; /* column count of Lc or H */ int_t *super_bnd; /* supernodes partition in H */ - char *snode_env, *getenv(); + char *snode_env; snode_env = getenv("SuperLU_DYNAMIC_SNODE_STORE"); if ( snode_env != NULL ) { --- a/SRC/pdgstrf_thread_init.c 2026-05-05 11:03:48.119015513 +0200 +++ b/SRC/pdgstrf_thread_init.c 2026-05-05 11:10:40.213391852 +0200 @@ -11,6 +11,18 @@ #include "slu_mt_ddefs.h" +extern void +pxgstrf_relax_snode( + const int_t, + superlumt_options_t *, + pxgstrf_relax_t * + ); + +extern int_t +ParallelInit(int_t, pxgstrf_relax_t *, + superlumt_options_t *, + pxgstrf_shared_t *); + pdgstrf_threadarg_t * pdgstrf_thread_init(SuperMatrix *A, SuperMatrix *L, SuperMatrix *U, superlumt_options_t *options, --- a/SRC/cmatgen.c 2026-05-05 11:11:45.293654751 +0200 +++ b/SRC/cmatgen.c 2026-05-05 11:12:15.972305898 +0200 @@ -32,7 +32,7 @@ int_t *asub, *xa; complex *val; int_t *row; - extern double dlaran_(); + extern double dlaran_(int *); printf("A banded matrix."); callocateA(n, nonz, nzval, rowind, colptr); /* Allocate storage */ @@ -73,7 +73,7 @@ int_t *asub, *xa; complex *val; int_t *row; - extern double dlaran_(); + extern double dlaran_(int *); n = bs * nb; printf("A block diagonal matrix: nb " IFMT ", bs " IFMT ", n " IFMT "\n", nb, bs, n); --- a/SRC/slu_mt_cdefs.h 2026-05-05 11:14:23.487852880 +0200 +++ b/SRC/slu_mt_cdefs.h 2026-05-05 11:14:46.556585558 +0200 @@ -282,7 +282,7 @@ int_t *, int_t *, pxgstrf_shared_t *); extern int_t cParallelInit (int_t, pxgstrf_relax_t *, superlumt_options_t *, pxgstrf_shared_t *); -extern int_t ParallelFinalize (); +extern int_t ParallelFinalize (pxgstrf_shared_t *); extern void pcgstrf_StackFree (); extern int_t queue_init (queue_t *, int_t); extern int_t queue_destroy (queue_t *); @@ -463,7 +463,7 @@ -------------------*/ extern double SuperLU_timer_(); extern int_t sp_ienv(int_t); -extern double slamch_(); +extern double slamch_(char *); extern int lsame_(char *, char *); extern int xerbla_(char *, int *); extern void superlu_abort_and_exit(char *); @@ -481,7 +481,8 @@ extern void cCompRow_to_CompCol(int_t m, int_t n, int_t nnz, complex *a, int_t *colind, int_t *rowptr, complex **at, int_t **rowind, int_t **colptr); - +extern void sp_colorder(SuperMatrix *, int_t *, superlumt_options_t *, + SuperMatrix *); /* ----------------------- Routines for debugging --- a/SRC/cgstrs.c 2026-05-05 11:18:40.593866234 +0200 +++ b/SRC/cgstrs.c 2026-05-05 11:19:21.743390809 +0200 @@ -90,7 +90,7 @@ complex *Lval, *Uval, *Bmat; complex *work, *work_col, *rhs_work, *soln; flops_t solve_ops; - void cprint_soln(); + void cprint_soln(int_t, int_t, complex *); /* Test input parameters ... */ *info = 0; --- a/SRC/clacon.c 2026-05-05 11:20:54.665317808 +0200 +++ b/SRC/clacon.c 2026-05-05 11:21:10.446137656 +0200 @@ -22,6 +22,8 @@ #include "slu_mt_util.h" #include "slu_scomplex.h" +extern int ccopy_(int *, complex *, int *, complex *, int *); + int_t clacon_(int_t *n, complex *v, complex *x, float *est, int_t *kase) --- a/SRC/pcmemory.c 2026-05-05 11:22:02.888539416 +0200 +++ b/SRC/pcmemory.c 2026-05-05 11:22:17.075377580 +0200 @@ -869,7 +869,7 @@ int_t *map_in_sup; /* memory mapping function; values irrelevant on entry. */ int_t *colcnt; /* column count of Lc or H */ int_t *super_bnd; /* supernodes partition in H */ - char *snode_env, *getenv(); + char *snode_env; snode_env = getenv("SuperLU_DYNAMIC_SNODE_STORE"); if ( snode_env != NULL ) { --- a/SRC/zmatgen.c 2026-05-05 11:36:18.769814971 +0200 +++ b/SRC/zmatgen.c 2026-05-05 11:36:43.606534396 +0200 @@ -32,7 +32,7 @@ int_t *asub, *xa; doublecomplex *val; int_t *row; - extern double dlaran_(); + extern double dlaran_(int *); printf("A banded matrix."); zallocateA(n, nonz, nzval, rowind, colptr); /* Allocate storage */ @@ -73,7 +73,7 @@ int_t *asub, *xa; doublecomplex *val; int_t *row; - extern double dlaran_(); + extern double dlaran_(int *); n = bs * nb; printf("A block diagonal matrix: nb " IFMT ", bs " IFMT ", n " IFMT "\n", nb, bs, n); --- a/SRC/slu_mt_zdefs.h 2026-05-05 11:39:18.749788299 +0200 +++ b/SRC/slu_mt_zdefs.h 2026-05-05 11:39:38.844563218 +0200 @@ -282,7 +282,7 @@ int_t *, int_t *, pxgstrf_shared_t *); extern int_t zParallelInit (int_t, pxgstrf_relax_t *, superlumt_options_t *, pxgstrf_shared_t *); -extern int_t ParallelFinalize (); +extern int_t ParallelFinalize (pxgstrf_shared_t *); extern void pzgstrf_StackFree (); extern int_t queue_init (queue_t *, int_t); extern int_t queue_destroy (queue_t *); @@ -463,7 +463,7 @@ -------------------*/ extern double SuperLU_timer_(); extern int_t sp_ienv(int_t); -extern double dlamch_(); +extern double dlamch_(char *); extern int lsame_(char *, char *); extern int xerbla_(char *, int *); extern void superlu_abort_and_exit(char *); @@ -481,7 +481,8 @@ extern void zCompRow_to_CompCol(int_t m, int_t n, int_t nnz, doublecomplex *a, int_t *colind, int_t *rowptr, doublecomplex **at, int_t **rowind, int_t **colptr); - +extern void sp_colorder(SuperMatrix *, int_t *, superlumt_options_t *, + SuperMatrix *); /* ----------------------- Routines for debugging --- a/SRC/pcgstrf_thread_init.c 2026-05-05 12:05:57.119705690 +0200 +++ b/SRC/pcgstrf_thread_init.c 2026-05-05 12:07:06.996911214 +0200 @@ -11,6 +11,18 @@ #include "slu_mt_cdefs.h" +extern void +pxgstrf_relax_snode( + const int_t, + superlumt_options_t *, + pxgstrf_relax_t * + ); + +extern int_t +ParallelInit(int_t n, pxgstrf_relax_t *pxgstrf_relax, + superlumt_options_t *superlumt_options, + pxgstrf_shared_t *pxgstrf_shared); + pcgstrf_threadarg_t * pcgstrf_thread_init(SuperMatrix *A, SuperMatrix *L, SuperMatrix *U, superlumt_options_t *options, --- a/SRC/zgstrs.c 2026-05-05 12:08:31.386951973 +0200 +++ b/SRC/zgstrs.c 2026-05-05 12:10:40.157489714 +0200 @@ -90,7 +90,7 @@ doublecomplex *Lval, *Uval, *Bmat; doublecomplex *work, *work_col, *rhs_work, *soln; flops_t solve_ops; - void zprint_soln(); + void zprint_soln(int_t, int_t, doublecomplex *); /* Test input parameters ... */ *info = 0; --- a/SRC/zlacon.c 2026-05-05 12:12:03.765540303 +0200 +++ b/SRC/zlacon.c 2026-05-05 12:12:18.397374128 +0200 @@ -22,6 +22,8 @@ #include "slu_mt_util.h" #include "slu_dcomplex.h" +extern int zcopy_(int *, doublecomplex *, int *, doublecomplex *, int *); + int_t zlacon_(int_t *n, doublecomplex *v, doublecomplex *x, double *est, int_t *kase) --- a/SRC/pzmemory.c 2026-05-05 12:17:37.675748558 +0200 +++ b/SRC/pzmemory.c 2026-05-05 12:17:49.844610399 +0200 @@ -869,7 +869,7 @@ int_t *map_in_sup; /* memory mapping function; values irrelevant on entry. */ int_t *colcnt; /* column count of Lc or H */ int_t *super_bnd; /* supernodes partition in H */ - char *snode_env, *getenv(); + char *snode_env; snode_env = getenv("SuperLU_DYNAMIC_SNODE_STORE"); if ( snode_env != NULL ) { --- a/SRC/pzgstrf_thread_init.c 2026-05-05 12:21:42.037973715 +0200 +++ b/SRC/pzgstrf_thread_init.c 2026-05-05 12:22:43.862271681 +0200 @@ -11,6 +11,18 @@ #include "slu_mt_zdefs.h" +extern void +pxgstrf_relax_snode( + const int_t, + superlumt_options_t *, + pxgstrf_relax_t * + ); + +extern int_t +ParallelInit(int_t n, pxgstrf_relax_t *pxgstrf_relax, + superlumt_options_t *superlumt_options, + pxgstrf_shared_t *pxgstrf_shared); + pzgstrf_threadarg_t * pzgstrf_thread_init(SuperMatrix *A, SuperMatrix *L, SuperMatrix *U, superlumt_options_t *options, --- a/TESTING/MATGEN/slatb4.c 2026-05-05 13:10:13.950870321 +0200 +++ b/TESTING/MATGEN/slatb4.c 2026-05-05 13:10:38.470591452 +0200 @@ -4,6 +4,7 @@ */ #include "f2c.h" +#include /* Table of constant values */ --- a/TESTING/MATGEN/dlatb4.c 2026-05-05 13:11:35.253945640 +0200 +++ b/TESTING/MATGEN/dlatb4.c 2026-05-05 13:11:52.800746076 +0200 @@ -4,6 +4,7 @@ */ #include "f2c.h" +#include /* Table of constant values */ --- a/TESTING/MATGEN/clatb4.c 2026-05-05 13:12:17.512465024 +0200 +++ b/TESTING/MATGEN/clatb4.c 2026-05-05 13:12:32.620293201 +0200 @@ -4,6 +4,7 @@ */ #include "f2c.h" +#include /* Table of constant values */ --- a/TESTING/MATGEN/zlatb4.c 2026-05-05 13:13:05.652917505 +0200 +++ b/TESTING/MATGEN/zlatb4.c 2026-05-05 13:13:22.765722880 +0200 @@ -4,6 +4,7 @@ */ #include "f2c.h" +#include /* Table of constant values */ --- a/TESTING/psdrive.c 2026-05-05 13:15:31.884254371 +0200 +++ b/TESTING/psdrive.c 2026-05-05 13:17:22.832992359 +0200 @@ -10,6 +10,7 @@ */ #include +#include #include "slu_mt_sdefs.h" #define NTESTS 5 /* Number of test types */ @@ -28,7 +29,7 @@ #endif -main(int argc, char *argv[]) +int main(int argc, char *argv[]) { /* * -- SuperLU MT routine (version 2.0) -- @@ -89,7 +90,9 @@ trans_t trans; equed_t equed; yes_no_t refact, usepr; - void parse_command_line(); + void parse_command_line(int argc, char *argv[], char *matrix_type, + int *nprocs, int *n, int *w, int *relax, int *nrhs, + int *maxsuper, int *rowblk, int *colblk, int *lwork); /* Fixed set of parameters */ int iseed[] = {1994, 1995, 1996, 1997}; --- a/TESTING/psgst04.c 2026-05-05 13:19:05.014826490 +0200 +++ b/TESTING/psgst04.c 2026-05-05 13:19:54.612260605 +0200 @@ -12,6 +12,8 @@ #include #include "slu_mt_sdefs.h" +extern int idamax_(int *, float *, int *); + int_t psgst04(int_t n, int_t nrhs, float *x, int_t ldx, float *xact, int_t ldxact, float rcond, float *resid) { --- a/TESTING/pddrive.c 2026-05-05 13:21:13.468360864 +0200 +++ b/TESTING/pddrive.c 2026-05-05 13:22:24.459550868 +0200 @@ -10,6 +10,7 @@ */ #include +#include #include "slu_mt_ddefs.h" #define NTESTS 5 /* Number of test types */ @@ -28,7 +29,7 @@ #endif -main(int argc, char *argv[]) +int main(int argc, char *argv[]) { /* * -- SuperLU MT routine (version 2.0) -- @@ -89,7 +90,9 @@ trans_t trans; equed_t equed; yes_no_t refact, usepr; - void parse_command_line(); + void parse_command_line(int argc, char *argv[], char *matrix_type, + int *nprocs, int *n, int *w, int *relax, int *nrhs, + int *maxsuper, int *rowblk, int *colblk, int *lwork); /* Fixed set of parameters */ int iseed[] = {1994, 1995, 1996, 1997}; --- a/TESTING/pcdrive.c 2026-05-05 13:24:00.625453637 +0200 +++ b/TESTING/pcdrive.c 2026-05-05 13:24:40.085003414 +0200 @@ -9,6 +9,7 @@ at the top-level directory. */ +#include #include #include "slu_mt_cdefs.h" @@ -28,7 +29,7 @@ #endif -main(int argc, char *argv[]) +int main(int argc, char *argv[]) { /* * -- SuperLU MT routine (version 2.0) -- @@ -89,7 +90,9 @@ trans_t trans; equed_t equed; yes_no_t refact, usepr; - void parse_command_line(); + void parse_command_line(int argc, char *argv[], char *matrix_type, + int *nprocs, int *n, int *w, int *relax, int *nrhs, + int *maxsuper, int *rowblk, int *colblk, int *lwork); /* Fixed set of parameters */ int iseed[] = {1994, 1995, 1996, 1997}; --- a/TESTING/pcgst04.c 2026-05-05 13:25:23.588507043 +0200 +++ b/TESTING/pcgst04.c 2026-05-05 13:26:57.516435352 +0200 @@ -12,6 +12,8 @@ #include #include "slu_mt_cdefs.h" +extern int idamax_(int *, complex *, int *); + int_t pcgst04(int_t n, int_t nrhs, complex *x, int_t ldx, complex *xact, int_t ldxact, float rcond, float *resid) { --- a/TESTING/pzdrive.c 2026-05-05 13:27:38.190971265 +0200 +++ b/TESTING/pzdrive.c 2026-05-05 13:28:20.082493292 +0200 @@ -10,6 +10,7 @@ */ #include +#include #include "slu_mt_zdefs.h" #define NTESTS 5 /* Number of test types */ @@ -28,7 +29,7 @@ #endif -main(int argc, char *argv[]) +int main(int argc, char *argv[]) { /* * -- SuperLU MT routine (version 2.0) -- @@ -89,7 +90,9 @@ trans_t trans; equed_t equed; yes_no_t refact, usepr; - void parse_command_line(); + void parse_command_line(int argc, char *argv[], char *matrix_type, + int *nprocs, int *n, int *w, int *relax, int *nrhs, + int *maxsuper, int *rowblk, int *colblk, int *lwork); /* Fixed set of parameters */ int iseed[] = {1994, 1995, 1996, 1997}; --- a/TESTING/pzgst04.c 2026-05-05 13:29:02.476009592 +0200 +++ b/TESTING/pzgst04.c 2026-05-05 13:31:18.533457212 +0200 @@ -12,6 +12,8 @@ #include #include "slu_mt_zdefs.h" +extern int idamax_(int *, doublecomplex *, int *); + int_t pzgst04(int_t n, int_t nrhs, doublecomplex *x, int_t ldx, doublecomplex *xact, int_t ldxact, double rcond, double *resid) {