#1128813 getfem: fails to build against SuperLU

#1128813#5
Date:
2026-02-23 10:39:45 UTC
From:
To:
The debian getfem package has been configured to build using MUMPS as
the linear solver.  But it is also supposed to be able to build
against SuperLU.

MUMPS is not available for hppa or powerpc, so I configured the getfem
build to use SuperLU on these architectures, configuring with
`--enable-superlu --disable-mumps`

However getfem fails to build against SuperLU.
The debian build logs are

hppa:  https://buildd.debian.org/status/fetch.php?pkg=getfem&arch=hppa&ver=5.4.4%2Bdfsg1-6&stamp=1771777630&raw=0

powerpc:  https://buildd.debian.org/status/fetch.php?pkg=getfem&arch=powerpc&ver=5.4.4%2Bdfsg1-6&stamp=1771773521&raw=0

But I can also reproduce the problem locally on amd64.

This is with SuperLU provided by libsuperlu-dev 7.0.1+dfsg1-2+b1

I've reported the issue upstream at
https://savannah.nongnu.org/bugs/index.php?68083

An extract from the build log is:

g++ -DHAVE_CONFIG_H -I. -I.. -I../src/getfem -I../src/gmm  -I../src -I../src -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/local/include     -Wall -g -O2 -ffile-prefix-map=/build/reproducible-path/getfem-5.4.4+dfsg1=. -fstack-protector-strong -Wformat -Werror=format-security -O3 -fmessage-length=0 -fvisibility-inlines-hidden -ftemplate-depth-100 -std=c++14 -fPIC -Wall -W -Wextra -Wshadow -Wno-unknown-pragmas -Wno-variadic-macros -Wno-unused-but-set-variable -Wpointer-arith -Wcast-qual -Wwrite-strings -Wconversion -Wredundant-decls -Wno-long-long -c -o test_mesh_im_level_set.o test_mesh_im_level_set.cc
In file included from /usr/include/c++/15/atomic:53,
                 from ../src/getfem/getfem_omp.h:41,
                 from ../src/getfem/dal_singleton.h:49,
                 from ../src/getfem/bgeot_small_vector.h:40,
                 from ../src/getfem/bgeot_tensor.h:40,
                 from ../src/getfem/bgeot_convex_structure.h:43,
                 from ../src/getfem/bgeot_mesh_structure.h:42,
                 from ../src/getfem/bgeot_mesh.h:41,
                 from ../src/getfem/getfem_mesh.h:43,
                 from ../src/getfem/getfem_mesh_fem.h:41,
                 from ../src/getfem/getfem_assembling_tensors.h:41,
                 from ../src/getfem/getfem_assembling.h:45,
                 from test_range_basis.cc:27:
/usr/include/c++/15/cstdint:58:11: error: ‘int_fast8_t’ has not been declared in ‘::’
   58 |   using ::int_fast8_t;
      |           ^~~~~~~~~~~
/usr/include/c++/15/cstdint:59:11: error: ‘int_fast16_t’ has not been declared in ‘::’
   59 |   using ::int_fast16_t;
      |           ^~~~~~~~~~~~
/usr/include/c++/15/cstdint:60:11: error: ‘int_fast32_t’ has not been declared in ‘::’
   60 |   using ::int_fast32_t;
      |           ^~~~~~~~~~~~
/usr/include/c++/15/cstdint:61:11: error: ‘int_fast64_t’ has not been declared in ‘::’
   61 |   using ::int_fast64_t;
      |           ^~~~~~~~~~~~
/usr/include/c++/15/cstdint:63:11: error: ‘int_least8_t’ has not been declared in ‘::’
   63 |   using ::int_least8_t;
      |           ^~~~~~~~~~~~
/usr/include/c++/15/cstdint:64:11: error: ‘int_least16_t’ has not been declared in ‘::’
   64 |   using ::int_least16_t;
      |           ^~~~~~~~~~~~~
/usr/include/c++/15/cstdint:65:11: error: ‘int_least32_t’ has not been declared in ‘::’
   65 |   using ::int_least32_t;
      |           ^~~~~~~~~~~~~
/usr/include/c++/15/cstdint:66:11: error: ‘int_least64_t’ has not been declared in ‘::’
   66 |   using ::int_least64_t;
      |           ^~~~~~~~~~~~~
/usr/include/c++/15/cstdint:68:11: error: ‘intmax_t’ has not been declared in ‘::’
   68 |   using ::intmax_t;
      |           ^~~~~~~~
/usr/include/c++/15/cstdint:69:11: error: ‘intptr_t’ has not been declared in ‘::’
   69 |   using ::intptr_t;
      |           ^~~~~~~~
/usr/include/c++/15/cstdint:71:11: error: ‘uint8_t’ has not been declared in ‘::’
   71 |   using ::uint8_t;
      |           ^~~~~~~
/usr/include/c++/15/cstdint:72:11: error: ‘uint16_t’ has not been declared in ‘::’
   72 |   using ::uint16_t;
      |           ^~~~~~~~
/usr/include/c++/15/cstdint:73:11: error: ‘uint32_t’ has not been declared in ‘::’
   73 |   using ::uint32_t;
      |           ^~~~~~~~
/usr/include/c++/15/cstdint:74:11: error: ‘uint64_t’ has not been declared in ‘::’
   74 |   using ::uint64_t;
      |           ^~~~~~~~
/usr/include/c++/15/cstdint:76:11: error: ‘uint_fast8_t’ has not been declared in ‘::’
   76 |   using ::uint_fast8_t;
      |           ^~~~~~~~~~~~
/usr/include/c++/15/cstdint:77:11: error: ‘uint_fast16_t’ has not been declared in ‘::’
   77 |   using ::uint_fast16_t;
      |           ^~~~~~~~~~~~~
/usr/include/c++/15/cstdint:78:11: error: ‘uint_fast32_t’ has not been declared in ‘::’
   78 |   using ::uint_fast32_t;
      |           ^~~~~~~~~~~~~
/usr/include/c++/15/cstdint:79:11: error: ‘uint_fast64_t’ has not been declared in ‘::’
   79 |   using ::uint_fast64_t;
      |           ^~~~~~~~~~~~~
/usr/include/c++/15/cstdint:81:11: error: ‘uint_least8_t’ has not been declared in ‘::’
   81 |   using ::uint_least8_t;
      |           ^~~~~~~~~~~~~
/usr/include/c++/15/cstdint:82:11: error: ‘uint_least16_t’ has not been declared in ‘::’
   82 |   using ::uint_least16_t;
      |           ^~~~~~~~~~~~~~
/usr/include/c++/15/cstdint:83:11: error: ‘uint_least32_t’ has not been declared in ‘::’
   83 |   using ::uint_least32_t;
      |           ^~~~~~~~~~~~~~
/usr/include/c++/15/cstdint:84:11: error: ‘uint_least64_t’ has not been declared in ‘::’
   84 |   using ::uint_least64_t;
      |           ^~~~~~~~~~~~~~
/usr/include/c++/15/cstdint:86:11: error: ‘uintmax_t’ has not been declared in ‘::’
   86 |   using ::uintmax_t;
      |           ^~~~~~~~~
/usr/include/c++/15/cstdint:87:11: error: ‘uintptr_t’ has not been declared in ‘::’
   87 |   using ::uintptr_t;
      |           ^~~~~~~~~
/usr/include/c++/15/atomic:1123:18: error: ‘uint8_t’ was not declared in this scope; did you mean ‘SuperLU::uint8_t’?
 1123 |   typedef atomic<uint8_t>               atomic_uint8_t;
      |                  ^~~~~~~
      |                  SuperLU::uint8_t
In file included from /usr/include/stdint.h:37,
                 from /usr/lib/gcc/powerpc-linux-gnu/15/include/stdint.h:11,
                 from /usr/include/inttypes.h:27,
                 from /usr/include/superlu/slu_util.h:27,
                 from ../src/gmm/gmm_superlu_interface.h:68,
                 from ../src/gmm/gmm_solver_Schwarz_additive.h:43,
                 from ../src/gmm/gmm_iter_solvers.h:100,
                 from ../src/gmm/gmm.h:44,
                 from test_range_basis.cc:26:
/usr/include/powerpc-linux-gnu/bits/stdint-uintn.h:24:19: note: ‘SuperLU::uint8_t’ declared here
   24 | typedef __uint8_t uint8_t;
      |                   ^~~~~~~
/usr/include/c++/15/atomic:1123:25: error: template argument 1 is invalid
 1123 |   typedef atomic<uint8_t>               atomic_uint8_t;
      |                         ^
/usr/include/c++/15/atomic:1129:18: error: ‘uint16_t’ was not declared in this scope; did you mean ‘SuperLU::uint16_t’?
 1129 |   typedef atomic<uint16_t>              atomic_uint16_t;
      |                  ^~~~~~~~
      |                  SuperLU::uint16_t
/usr/include/powerpc-linux-gnu/bits/stdint-uintn.h:25:20: note: ‘SuperLU::uint16_t’ declared here
   25 | typedef __uint16_t uint16_t;
      |                    ^~~~~~~~
/usr/include/c++/15/atomic:1129:26: error: template argument 1 is invalid
 1129 |   typedef atomic<uint16_t>              atomic_uint16_t;
      |                          ^
/usr/include/c++/15/atomic:1135:18: error: ‘uint32_t’ was not declared in this scope; did you mean ‘SuperLU::uint32_t’?
 1135 |   typedef atomic<uint32_t>              atomic_uint32_t;
      |                  ^~~~~~~~
      |                  SuperLU::uint32_t
/usr/include/powerpc-linux-gnu/bits/stdint-uintn.h:26:20: note: ‘SuperLU::uint32_t’ declared here
   26 | typedef __uint32_t uint32_t;
      |                    ^~~~~~~~
/usr/include/c++/15/atomic:1135:26: error: template argument 1 is invalid
 1135 |   typedef atomic<uint32_t>              atomic_uint32_t;
      |                          ^
/usr/include/c++/15/atomic:1141:18: error: ‘uint64_t’ was not declared in this scope; did you mean ‘SuperLU::uint64_t’?
 1141 |   typedef atomic<uint64_t>              atomic_uint64_t;
      |                  ^~~~~~~~
      |                  SuperLU::uint64_t
/usr/include/powerpc-linux-gnu/bits/stdint-uintn.h:27:20: note: ‘SuperLU::uint64_t’ declared here
   27 | typedef __uint64_t uint64_t;
      |                    ^~~~~~~~
/usr/include/c++/15/atomic:1141:26: error: template argument 1 is invalid
 1141 |   typedef atomic<uint64_t>              atomic_uint64_t;
      |                          ^

#1128813#12
Date:
2026-03-27 10:24:13 UTC
From:
To:
I think this is rather an architecture issue than a SuperLU issue.

Could you try this patch?

https://cgit.git.savannah.nongnu.org/cgit/getfem.git/commit/?id=157a1b42fc1f303c10f235acb5ddc124567aba05

#1128813#17
Date:
2026-03-28 14:17:53 UTC
From:
To:
I have now tested it and could reproduce the issue.

Just ignore my previous message.

The following patch should work:
https://cgit.git.savannah.nongnu.org/cgit/getfem.git/commit/?id=bdf8abc34b7a06fb798b66dbcf909db8228a6bb2

#1128813#22
Date:
2026-06-10 15:20:06 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
getfem, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1128813@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Drew Parsons <dparsons@debian.org> (supplier of updated getfem package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Wed, 10 Jun 2026 16:43:22 +0200
Source: getfem
Architecture: source
Version: 5.5+dfsg1-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Changed-By: Drew Parsons <dparsons@debian.org>
Closes: 990402 1095517 1128813 1136919
Changes:
 getfem (5.5+dfsg1-1) unstable; urgency=medium
 .
   * Team upload.
   * New upstream release
     - builds SuperLU support without MUMPS. Closes: #1128813
     - passes plasticity tests. Closes: #1136919
   * builds against reentrant libqhull-r8.0. Closes: #990402
   * drop debian patches 05_disable_failing_test.patch
     and 08_skip_failing_tests.patch. Tests fixed in new release.
     Closes: #1095517
   * Standards-Version: 4.7.4
Checksums-Sha1:
 5c0a17b1751a0a363d025ca12ce8a3f407b082a5 2754 getfem_5.5+dfsg1-1.dsc
 2ef58e7a38bb967bd2156a6120a5c4e9d17ecad5 5613620 getfem_5.5+dfsg1.orig.tar.xz
 6757a5ffb86111cc7d7630175a7afef7b1c35914 11392 getfem_5.5+dfsg1-1.debian.tar.xz
 1a75a98cea9b85ec613ce44bc3b3697071d60e88 13111 getfem_5.5+dfsg1-1_amd64.buildinfo
Checksums-Sha256:
 65e9d026a50627079514cee65429068bb24c9ef4d322f305581177e58b69c3b2 2754 getfem_5.5+dfsg1-1.dsc
 e592059af3d239bd864e53777d7bbbc561d62378ebcb181c89b3d4eeec0e503b 5613620 getfem_5.5+dfsg1.orig.tar.xz
 b84f7a9b84f3b82dc00f3f9158424b6524e2f9f92fc94be6508a3006f65879fc 11392 getfem_5.5+dfsg1-1.debian.tar.xz
 07ff2764321a79e7cafd21876043ed8bcb1fdbac7028cab27392ee6bdc12d7e8 13111 getfem_5.5+dfsg1-1_amd64.buildinfo
Files:
 b58c97baebe2f498412ff8a0aa979d06 2754 libs optional getfem_5.5+dfsg1-1.dsc
 53bcd39a9cd0ec77bce9fc5e921ebc39 5613620 libs optional getfem_5.5+dfsg1.orig.tar.xz
 89d960cf52760f053d530c4fba3157e3 11392 libs optional getfem_5.5+dfsg1-1.debian.tar.xz
 8e8813087f05738733741ca69bded1a5 13111 libs optional getfem_5.5+dfsg1-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEI8mpPlhYGekSbQo2Vz7x5L1aAfoFAmopfhUACgkQVz7x5L1a
AfoDBBAAkYVKvv8JLPzRfSVxl4sAVJ2iX+sg7BjSmFJZEaRygKSKIP+GfNN050mk
IbfAzSsKM878TShds6xNESq/kAA0f8na2HL/QBXutp5Vip92cti7HHdKbj2easoh
uHOa2HOHcV+lMFFBCO8ddiHz3+Zrvf5NEUmTwjj08+ECY8eCv/mi74S0l5HpLa+q
xuCxZ2d0raJc5xBrrIsVq1+rzxUbuvPWBKl1YWY0W8NyvqQJd8MwXfRkRxAUnful
npY0lCg7r6QJcRC5Dc6155uG5stjtGGQ5XSrTKJY0CmZjeVRcOZlT5SnS92xlH8Q
yk+ul6JWXgb15O4HuyzzsfiUEin0Qnwo+LqUy3N5KCZpWCAcPqNenRrqwTnJKEmM
QkC3jCTbEFMaAsN8+WNFr64cVuAXb8hbCFzMBr9dVza/aI2MW4vRnKNqDitHe095
Te0oPPFN+dfvU/8+M6QktF51vOopi9K0AqRsry3Yl3a4DUVn8PpUXDa3nIRwF2Lf
ifhqJZAvgXu2det6OTNmBs7M5JuOt9MocruDZydtqcUvX99AYS1dxDJTA6Nvc9/g
MouJ+J58ENFgkg576CJtj5iFPTJx5QmyrtOpJntzIZ6pRba0LPA6osXjkTUXKppU
HznvziuM3pHgyoFa8lFhD0OvnKErU+Kt/iHSxapj754Ihgs0wFw=
=xpaJ
-----END PGP SIGNATURE-----