~ruther/guix-local

293cca33249c408384e06ce4c1291a6a5be93f41 — Paul Garlick 1 year, 2 months ago dd5a0d5
gnu: fenics-dolfin: Fix build with gcc@14.

* gnu/packages/patches/fenics-dolfin-integer-types.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register new patch.
* gnu/packages/simulation.scm (fenics-dolfin)[source]: Use new patch.

Signed-off-by: Andreas Enge <andreas@enge.fr>
M gnu/local.mk => gnu/local.mk +1 -0
@@ 1294,6 1294,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/fenics-dolfin-boost.patch		\
  %D%/packages/patches/fenics-dolfin-config-slepc.patch		\
  %D%/packages/patches/fenics-dolfin-hdf5-version-check.patch	\
  %D%/packages/patches/fenics-dolfin-integer-types.patch	\
  %D%/packages/patches/ffmpeg-add-av_stream_get_first_dts-for-chromium.patch	\
  %D%/packages/patches/ffmpeg-jami-change-RTCP-ratio.patch	\
  %D%/packages/patches/ffmpeg-jami-rtp_ext_abs_send_time.patch	\

A gnu/packages/patches/fenics-dolfin-integer-types.patch => gnu/packages/patches/fenics-dolfin-integer-types.patch +29 -0
@@ 0,0 1,29 @@
This patch updates the integer types used in two of the dolfin header files.
The changes enable building with gcc-13 and above.

See <https://gcc.gnu.org/gcc-13/porting_to.html> for the porting notes.

See <https://bitbucket.org/fenics-project/dolfin/commits/d56b1b082c50d846fb5bbe4971799ab9ecb21a24> for the upstream fix.

--- a/dolfin/common/timing.h
+++ b/dolfin/common/timing.h
@@ -39,7 +39,7 @@
   ///
   /// Precision of wall is around 1 microsecond, user and system are around
   /// 10 millisecond (on Linux).
-  enum class TimingType : int32_t { wall = 0, user = 1, system = 2 };
+  enum class TimingType : int { wall = 0, user = 1, system = 2 };
 
   /// Start timing (should not be used internally in DOLFIN!)
   void tic();

--- a/dolfin/mesh/MeshConnectivity.h
+++ b/dolfin/mesh/MeshConnectivity.h
@@ -24,5 +24,7 @@
 #include <vector>
 #include <dolfin/log/log.h>
 
+#include <cstdint>
+
 namespace dolfin
 {

M gnu/packages/simulation.scm => gnu/packages/simulation.scm +2 -1
@@ 755,7 755,8 @@ FFC is part of the FEniCS Project.")
                                "fenics-dolfin-demo-init.patch"
                                "fenics-dolfin-boost.patch"
                                "fenics-dolfin-config-slepc.patch"
                                "fenics-dolfin-hdf5-version-check.patch"))
                                "fenics-dolfin-hdf5-version-check.patch"
                                "fenics-dolfin-integer-types.patch"))
       (modules '((guix build utils)))
       (snippet '(begin
                   ;; Make sure we don't use the bundled test framework.