conda-forge / mumps-feedstock

A conda-smithy repository for mumps.
BSD 3-Clause "New" or "Revised" License
5 stars 24 forks source link

Missing header file #100

Closed akhmerov closed 8 months ago

akhmerov commented 9 months ago

Solution to issue cannot be found in the documentation.

Issue

The latest version of mumps-include seems to miss a header file. Specifically, mumps_c_types.h from mumps-include has these lines:

/* mumps_int_def.h will define either MUMPS_INTSIZE32 (default)
   or MUMPS_INTSIZE64 (if compilation is with -DINTSIZE64 to
   match Fortran -i8 or equivalent option). This allows one to
   test from an external code whether MUMPS_INT is 64bits or not */
#include "mumps_int_def.h"

however mumps_int_def.h is missing from mumps-include.

Installed packages

mumps-include                         5.6.2         ha770c72_0               conda-forge
mumps-seq                             5.6.2         h5c37537_0               conda-forge

Environment info

-
traversaro commented 9 months ago

Thanks for the report. I guess everything was fine for earlier version of mumps, right?

akhmerov commented 9 months ago

Yes, I believe that this is due to a change introduced in 5.5.1, where MUMPS was switching integer formats. The corresponding segment of mumps_c_types.h from 5.2.1 (the version that was previously packaged via conda) is:

#include <stdint.h>
#ifdef INTSIZE64
#define MUMPS_INT int64_t
#else
#define MUMPS_INT int
#endif

and so it doesn't include the other file.

traversaro commented 9 months ago

Ok, I investigate a bit:

However, this is not picked as mumps-include was built before the make script was ever execute.

So the possible action is to move mumps-include build after make as been run.

A non-directly related issue is that Windows uses 64 bit indeces, while Linux/macOS 32 bit. Was this intentional @minrk ?

minrk commented 9 months ago

Was this intentional @minrk ?

No, I updated the build scripts until they worked and figured defaults would apply. It probably makes sense to use 64b indices everywhere.

dalcinl commented 9 months ago

@minrk Wouldn't this blow in our faces as a huge ABI breakage? Maybe this package would need two build variants for 32 and 64 bit indices that can be explicitly selected via the build string?

minrk commented 9 months ago

If it had been out in use by any packages, it would be. But this change is only in a new version just published (which should perhaps be yanked, but I don't see a big reason to because this missing header means nobody can link against it), which presumably nobody can build against due to the missing header, which is the subject of this Issue.

Reading a bit more, I think we should stick with the 32b indices as the default, and the 64b choice for Windows was probably wrong.

akhmerov commented 8 months ago

The latest windows version win-64_mumps-seq-5.6.2-h1f49738_1 still misses the header file mumps_int_def.h, so I believe this issue was not completely fixed, please reopen.