Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Likely] Incompatibility with superludist-6.3.1 #5

Open
sagitter opened this issue Apr 12, 2020 · 4 comments
Open

[Likely] Incompatibility with superludist-6.3.1 #5

sagitter opened this issue Apr 12, 2020 · 4 comments

Comments

@sagitter
Copy link

sagitter commented Apr 12, 2020

Hi all.

mld2p4-2.2.1-1 does not compile against new superludist-6.3.1 library (full build log):

make[2]: Entering directory '/builddir/build/BUILD/mld2p4-2-2.2.1-1/openmpi-build/mlprec/impl'
mpicc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/usr/include/openblas   -DHave_MUMPS_ -I/usr/include/openmpi-x86_64/MUMPS  -DHave_UMF_ -I/usr/include/suitesparse -DHave_SLUDist_ -DSLUD_VERSION_3 -I/usr/include/openmpi-x86_64/superlu_dist  -c mld_dslud_interface.c -o mld_dslud_interface.o
mld_dslud_interface.c:99:3: error: unknown type name 'LUstruct_t'
   99 |   LUstruct_t *LUstruct;
      |   ^~~~~~~~~~
mld_dslud_interface.c:101:3: error: unknown type name 'ScalePermstruct_t'
  101 |   ScalePermstruct_t *ScalePermstruct;
      |   ^~~~~~~~~~~~~~~~~
mld_dslud_interface.c: In function 'mld_dsludist_fact':
mld_dslud_interface.c:130:5: error: unknown type name 'ScalePermstruct_t'; did you mean 'dScalePermstruct_t'?
  130 |     ScalePermstruct_t *ScalePermstruct;
      |     ^~~~~~~~~~~~~~~~~
      |     dScalePermstruct_t
mld_dslud_interface.c:131:5: error: unknown type name 'LUstruct_t'; did you mean 'dLUstruct_t'?
  131 |     LUstruct_t *LUstruct;
      |     ^~~~~~~~~~
      |     dLUstruct_t
mld_dslud_interface.c:132:5: error: unknown type name 'SOLVEstruct_t'; did you mean 'dSOLVEstruct_t'?
  132 |     SOLVEstruct_t SOLVEstruct;
      |     ^~~~~~~~~~~~~
      |     dSOLVEstruct_t
mld_dslud_interface.c:140:5: error: unknown type name 'superlu_options_t'; did you mean 'superlu_dist_options_t'?
  140 |     superlu_options_t options;
      |     ^~~~~~~~~~~~~~~~~
      |     superlu_dist_options_t
mld_dslud_interface.c:163:24: error: 'ScalePermstruct_t' undeclared (first use in this function); did you mean 'dScalePermstruct_t'?
  163 |     ScalePermstruct = (ScalePermstruct_t *) SUPERLU_MALLOC(sizeof(ScalePermstruct_t));
      |                        ^~~~~~~~~~~~~~~~~
      |                        dScalePermstruct_t
mld_dslud_interface.c:163:24: note: each undeclared identifier is reported only once for each function it appears in
mld_dslud_interface.c:163:43: error: expected expression before ')' token
  163 |     ScalePermstruct = (ScalePermstruct_t *) SUPERLU_MALLOC(sizeof(ScalePermstruct_t));
      |                                           ^
mld_dslud_interface.c:164:17: error: 'LUstruct_t' undeclared (first use in this function); did you mean 'dLUstruct_t'?
  164 |     LUstruct = (LUstruct_t *) SUPERLU_MALLOC(sizeof(LUstruct_t));
      |                 ^~~~~~~~~~
      |                 dLUstruct_t
mld_dslud_interface.c:164:29: error: expected expression before ')' token
  164 |     LUstruct = (LUstruct_t *) SUPERLU_MALLOC(sizeof(LUstruct_t));
      |                             ^
mld_dslud_interface.c:165:5: warning: implicit declaration of function 'ScalePermstructInit'; did you mean 'dScalePermstructInit'? [-Wimplicit-function-declaration]
  165 |     ScalePermstructInit(n,n, ScalePermstruct);
      |     ^~~~~~~~~~~~~~~~~~~
      |     dScalePermstructInit
mld_dslud_interface.c:169:5: warning: implicit declaration of function 'LUstructInit'; did you mean 'dLUstructInit'? [-Wimplicit-function-declaration]
  169 |     LUstructInit(n,n, LUstruct);
      |     ^~~~~~~~~~~~
      |     dLUstructInit
mld_dslud_interface.c:175:30: warning: passing argument 1 of 'set_default_options_dist' from incompatible pointer type [-Wincompatible-pointer-types]
  175 |     set_default_options_dist(&options);
      |                              ^~~~~~~~
      |                              |
      |                              int *
In file included from /usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:37,
                 from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_defs.h:698:40: note: expected 'superlu_dist_options_t *' but argument is of type 'int *'
  698 | extern void   set_default_options_dist(superlu_dist_options_t *);
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~
mld_dslud_interface.c:176:12: error: request for member 'IterRefine' in something not a structure or union
  176 |     options.IterRefine=NO;
      |            ^
mld_dslud_interface.c:177:12: error: request for member 'PrintStat' in something not a structure or union
  177 |     options.PrintStat=NO;
      |            ^
mld_dslud_interface.c:179:13: warning: passing argument 1 of 'pdgssvx' from incompatible pointer type [-Wincompatible-pointer-types]
  179 |     pdgssvx(&options, A, ScalePermstruct, b, nl, 0,
      |             ^~~~~~~~
      |             |
      |             int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:420:22: note: expected 'superlu_dist_options_t *' but argument is of type 'int *'
  420 | extern void  pdgssvx(superlu_dist_options_t *, SuperMatrix *,
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~
mld_dslud_interface.c:179:26: warning: passing argument 3 of 'pdgssvx' from incompatible pointer type [-Wincompatible-pointer-types]
  179 |     pdgssvx(&options, A, ScalePermstruct, b, nl, 0,
      |                          ^~~~~~~~~~~~~~~
      |                          |
      |                          int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:421:8: note: expected 'dScalePermstruct_t *' but argument is of type 'int *'
  421 |        dScalePermstruct_t *, double *,
      |        ^~~~~~~~~~~~~~~~~~~~
mld_dslud_interface.c:180:12: warning: passing argument 8 of 'pdgssvx' from incompatible pointer type [-Wincompatible-pointer-types]
  180 |      grid, LUstruct, &SOLVEstruct, berr, &stat, &info);
      |            ^~~~~~~~
      |            |
      |            int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:422:32: note: expected 'dLUstruct_t *' but argument is of type 'int *'
  422 |        int, int, gridinfo_t *, dLUstruct_t *,
      |                                ^~~~~~~~~~~~~
mld_dslud_interface.c:180:22: warning: passing argument 9 of 'pdgssvx' from incompatible pointer type [-Wincompatible-pointer-types]
  180 |      grid, LUstruct, &SOLVEstruct, berr, &stat, &info);
      |                      ^~~~~~~~~~~~
      |                      |
      |                      int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:423:8: note: expected 'dSOLVEstruct_t *' but argument is of type 'int *'
  423 |        dSOLVEstruct_t *, double *, SuperLUStat_t *, int *);
      |        ^~~~~~~~~~~~~~~~
mld_dslud_interface.c:190:16: error: request for member 'SolveInitialized' in something not a structure or union
  190 |     if (options.SolveInitialized) {
      |                ^
mld_dslud_interface.c:191:22: warning: passing argument 1 of 'dSolveFinalize' from incompatible pointer type [-Wincompatible-pointer-types]
  191 |       dSolveFinalize(&options,&SOLVEstruct);
      |                      ^~~~~~~~
      |                      |
      |                      int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:427:28: note: expected 'superlu_dist_options_t *' but argument is of type 'int *'
  427 | extern void dSolveFinalize(superlu_dist_options_t *, dSOLVEstruct_t *);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~
mld_dslud_interface.c:191:31: warning: passing argument 2 of 'dSolveFinalize' from incompatible pointer type [-Wincompatible-pointer-types]
  191 |       dSolveFinalize(&options,&SOLVEstruct);
      |                               ^~~~~~~~~~~~
      |                               |
      |                               int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:427:54: note: expected 'dSOLVEstruct_t *' but argument is of type 'int *'
  427 | extern void dSolveFinalize(superlu_dist_options_t *, dSOLVEstruct_t *);
      |                                                      ^~~~~~~~~~~~~~~~
mld_dslud_interface.c:148:13: warning: unused variable 'ival' [-Wunused-variable]
  148 |     double *ival;
      |             ^~~~
mld_dslud_interface.c:147:16: warning: unused variable 'irpt' [-Wunused-variable]
  147 |     int *icol,*irpt;
      |                ^~~~
mld_dslud_interface.c:147:10: warning: unused variable 'icol' [-Wunused-variable]
  147 |     int *icol,*irpt;
      |          ^~~~
mld_dslud_interface.c:136:14: warning: unused variable 'drop_tol' [-Wunused-variable]
  136 |     double   drop_tol = 0.0, b[1], berr[1];
      |              ^~~~~~~~
mld_dslud_interface.c:135:14: warning: variable 'trans' set but not used [-Wunused-but-set-variable]
  135 |     trans_t  trans;
      |              ^~~~~
mld_dslud_interface.c:134:41: warning: unused variable 'relax' [-Wunused-variable]
  134 |     int      i, panel_size, permc_spec, relax, info;
      |                                         ^~~~~
mld_dslud_interface.c:134:29: warning: unused variable 'permc_spec' [-Wunused-variable]
  134 |     int      i, panel_size, permc_spec, relax, info;
      |                             ^~~~~~~~~~
mld_dslud_interface.c:134:17: warning: unused variable 'panel_size' [-Wunused-variable]
  134 |     int      i, panel_size, permc_spec, relax, info;
      |                 ^~~~~~~~~~
mld_dslud_interface.c:134:14: warning: unused variable 'i' [-Wunused-variable]
  134 |     int      i, panel_size, permc_spec, relax, info;
      |              ^
mld_dslud_interface.c:128:19: warning: unused variable 'Astore' [-Wunused-variable]
  128 |     NRformat_loc *Astore;
      |                   ^~~~~~
mld_dslud_interface.c: In function 'mld_dsludist_solve':
mld_dslud_interface.c:226:5: error: unknown type name 'ScalePermstruct_t'; did you mean 'dScalePermstruct_t'?
  226 |     ScalePermstruct_t *ScalePermstruct;
      |     ^~~~~~~~~~~~~~~~~
      |     dScalePermstruct_t
mld_dslud_interface.c:227:5: error: unknown type name 'LUstruct_t'; did you mean 'dLUstruct_t'?
  227 |     LUstruct_t *LUstruct;
      |     ^~~~~~~~~~
      |     dLUstruct_t
mld_dslud_interface.c:228:5: error: unknown type name 'SOLVEstruct_t'; did you mean 'dSOLVEstruct_t'?
  228 |     SOLVEstruct_t SOLVEstruct;
      |     ^~~~~~~~~~~~~
      |     dSOLVEstruct_t
mld_dslud_interface.c:237:5: error: unknown type name 'superlu_options_t'; did you mean 'superlu_dist_options_t'?
  237 |     superlu_options_t options;
      |     ^~~~~~~~~~~~~~~~~
      |     superlu_dist_options_t
mld_dslud_interface.c:273:30: warning: passing argument 1 of 'set_default_options_dist' from incompatible pointer type [-Wincompatible-pointer-types]
  273 |     set_default_options_dist(&options);
      |                              ^~~~~~~~
      |                              |
      |                              int *
In file included from /usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:37,
                 from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_defs.h:698:40: note: expected 'superlu_dist_options_t *' but argument is of type 'int *'
  698 | extern void   set_default_options_dist(superlu_dist_options_t *);
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~
mld_dslud_interface.c:274:12: error: request for member 'IterRefine' in something not a structure or union
  274 |     options.IterRefine = NO;
      |            ^
mld_dslud_interface.c:275:12: error: request for member 'Fact' in something not a structure or union
  275 |     options.Fact       = FACTORED;
      |            ^
mld_dslud_interface.c:276:12: error: request for member 'PrintStat' in something not a structure or union
  276 |     options.PrintStat  = NO;
      |            ^
mld_dslud_interface.c:278:13: warning: passing argument 1 of 'pdgssvx' from incompatible pointer type [-Wincompatible-pointer-types]
  278 |     pdgssvx(&options, A, ScalePermstruct, b, ldb, nrhs,
      |             ^~~~~~~~
      |             |
      |             int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:420:22: note: expected 'superlu_dist_options_t *' but argument is of type 'int *'
  420 | extern void  pdgssvx(superlu_dist_options_t *, SuperMatrix *,
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~
mld_dslud_interface.c:278:26: warning: passing argument 3 of 'pdgssvx' from incompatible pointer type [-Wincompatible-pointer-types]
  278 |     pdgssvx(&options, A, ScalePermstruct, b, ldb, nrhs,
      |                          ^~~~~~~~~~~~~~~
      |                          |
      |                          int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:421:8: note: expected 'dScalePermstruct_t *' but argument is of type 'int *'
  421 |        dScalePermstruct_t *, double *,
      |        ^~~~~~~~~~~~~~~~~~~~
mld_dslud_interface.c:279:12: warning: passing argument 8 of 'pdgssvx' from incompatible pointer type [-Wincompatible-pointer-types]
  279 |      grid, LUstruct, &SOLVEstruct, berr, &stat, &info);
      |            ^~~~~~~~
      |            |
      |            int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:422:32: note: expected 'dLUstruct_t *' but argument is of type 'int *'
  422 |        int, int, gridinfo_t *, dLUstruct_t *,
      |                                ^~~~~~~~~~~~~
mld_dslud_interface.c:279:22: warning: passing argument 9 of 'pdgssvx' from incompatible pointer type [-Wincompatible-pointer-types]
  279 |      grid, LUstruct, &SOLVEstruct, berr, &stat, &info);
      |                      ^~~~~~~~~~~~
      |                      |
      |                      int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:423:8: note: expected 'dSOLVEstruct_t *' but argument is of type 'int *'
  423 |        dSOLVEstruct_t *, double *, SuperLUStat_t *, int *);
      |        ^~~~~~~~~~~~~~~~
mld_dslud_interface.c:282:16: error: request for member 'SolveInitialized' in something not a structure or union
  282 |     if (options.SolveInitialized) {
      |                ^
mld_dslud_interface.c:283:22: warning: passing argument 1 of 'dSolveFinalize' from incompatible pointer type [-Wincompatible-pointer-types]
  283 |       dSolveFinalize(&options,&SOLVEstruct);
      |                      ^~~~~~~~
      |                      |
      |                      int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:427:28: note: expected 'superlu_dist_options_t *' but argument is of type 'int *'
  427 | extern void dSolveFinalize(superlu_dist_options_t *, dSOLVEstruct_t *);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~
mld_dslud_interface.c:283:31: warning: passing argument 2 of 'dSolveFinalize' from incompatible pointer type [-Wincompatible-pointer-types]
  283 |       dSolveFinalize(&options,&SOLVEstruct);
      |                               ^~~~~~~~~~~~
      |                               |
      |                               int *
In file included from mld_dslud_interface.c:93:
/usr/include/openmpi-x86_64/superlu_dist/superlu_ddefs.h:427:54: note: expected 'dSOLVEstruct_t *' but argument is of type 'int *'
  427 | extern void dSolveFinalize(superlu_dist_options_t *, dSOLVEstruct_t *);
      |                                                      ^~~~~~~~~~~~~~~~
mld_dslud_interface.c:232:14: warning: unused variable 'drop_tol' [-Wunused-variable]
  232 |     double   drop_tol = 0.0;
      |              ^~~~~~~~
mld_dslud_interface.c:231:14: warning: variable 'trans' set but not used [-Wunused-but-set-variable]
  231 |     trans_t  trans;
      |              ^~~~~
mld_dslud_interface.c:230:41: warning: unused variable 'relax' [-Wunused-variable]
  230 |     int      i, panel_size, permc_spec, relax, info;
      |                                         ^~~~~
mld_dslud_interface.c:230:29: warning: unused variable 'permc_spec' [-Wunused-variable]
  230 |     int      i, panel_size, permc_spec, relax, info;
      |                             ^~~~~~~~~~
mld_dslud_interface.c:230:17: warning: unused variable 'panel_size' [-Wunused-variable]
  230 |     int      i, panel_size, permc_spec, relax, info;
      |                 ^~~~~~~~~~
mld_dslud_interface.c:230:14: warning: unused variable 'i' [-Wunused-variable]
  230 |     int      i, panel_size, permc_spec, relax, info;
      |              ^
mld_dslud_interface.c: In function 'mld_dsludist_free':
mld_dslud_interface.c:306:5: error: unknown type name 'ScalePermstruct_t'; did you mean 'dScalePermstruct_t'?
  306 |     ScalePermstruct_t *ScalePermstruct;
      |     make[2]: Leaving directory '/builddir/build/BUILD/mld2p4-2-2.2.1-1/openmpi-build/mlprec/impl'
^~~~~~~~~~~~~~~~~
      |     dScalePermstruct_t
mld_dslud_interface.c:307:5: error: unknown type name 'LUstruct_t'; did you mean 'dLUstruct_t'?
  307 |     LUstruct_t *LUstruct;
      |     ^~~~~~~~~~
      |     dLUstruct_t
mld_dslud_interface.c:308:5: error: unknown type name 'SOLVEstruct_t'; did you mean 'dSOLVEstruct_t'?
  308 |     SOLVEstruct_t SOLVEstruct;
      |     ^~~~~~~~~~~~~
      |     dSOLVEstruct_t
mld_dslud_interface.c:317:5: error: unknown type name 'superlu_options_t'; did you mean 'superlu_dist_options_t'?
  317 |     superlu_options_t options;
      |     ^~~~~~~~~~~~~~~~~
      |     superlu_dist_options_t
mld_dslud_interface.c:337:5: warning: implicit declaration of function 'ScalePermstructFree'; did you mean 'dScalePermstructFree'? [-Wimplicit-function-declaration]
  337 |     ScalePermstructFree(ScalePermstruct);
      |     ^~~~~~~~~~~~~~~~~~~
      |     dScalePermstructFree
mld_dslud_interface.c:338:5: warning: implicit declaration of function 'LUstructFree'; did you mean 'dLUstructFree'? [-Wimplicit-function-declaration]
  338 |     LUstructFree(LUstruct);
      |     ^~~~~~~~~~~~
      |     dLUstructFree
mld_dslud_interface.c:321:19: warning: unused variable 'stat' [-Wunused-variable]
  321 |     SuperLUStat_t stat;
      |                   ^~~~
mld_dslud_interface.c:317:23: warning: unused variable 'options' [-Wunused-variable]
  317 |     superlu_options_t options;
      |                       ^~~~~~~
mld_dslud_interface.c:313:13: warning: unused variable 'berr' [-Wunused-variable]
  313 |     double *berr;
      |             ^~~~
mld_dslud_interface.c:312:14: warning: unused variable 'drop_tol' [-Wunused-variable]
  312 |     double   drop_tol = 0.0;
      |              ^~~~~~~~
mld_dslud_interface.c:311:14: warning: unused variable 'trans' [-Wunused-variable]
  311 |     trans_t  trans;
      |              ^~~~~
mld_dslud_interface.c:310:41: warning: unused variable 'relax' [-Wunused-variable]
  310 |     int      i, panel_size, permc_spec, relax;
      |                                         ^~~~~
mld_dslud_interface.c:310:29: warning: unused variable 'permc_spec' [-Wunused-variable]
  310 |     int      i, panel_size, permc_spec, relax;
      |                             ^~~~~~~~~~
mld_dslud_interface.c:310:17: warning: unused variable 'panel_size' [-Wunused-variable]
  310 |     int      i, panel_size, permc_spec, relax;
      |                 ^~~~~~~~~~
mld_dslud_interface.c:310:14: warning: unused variable 'i' [-Wunused-variable]
  310 |     int      i, panel_size, permc_spec, relax;
      |              ^
mld_dslud_interface.c:308:19: warning: unused variable 'SOLVEstruct' [-Wunused-variable]
  308 |     SOLVEstruct_t SOLVEstruct;
      |                   ^~~~~~~~~~~
mld_dslud_interface.c:305:18: warning: variable 'A' set but not used [-Wunused-but-set-variable]
  305 |     SuperMatrix *A;
      |                  ^
make[2]: *** [../../Make.inc:109: mld_dslud_interface.o] Error 1
@sfilippone
Copy link
Owner

sfilippone commented Apr 12, 2020 via email

@sfilippone
Copy link
Owner

sfilippone commented Apr 22, 2020 via email

@sfilippone
Copy link
Owner

sfilippone commented Apr 23, 2020

There is a notation issue: the incompatibility has appeared with version 6.3 of SuperLU_dist, up to version at least 6.1 the ifdefs on SLUD_VERSION_5 were working. SuperLU_DIST version 6.3. changed the name of some data structures and functions, hence the error.
Am going to change the ifdef to VERSION_63, but the substance of the fix should be the same

@sagitter
Copy link
Author

Could you please try with the current branch mld2p4-2.2-maint ? If you can confirm, I'll push a new release (2.2.2) Thanks S.

Correctly compiled against superludist-6.1.1 and 6.3.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants