Source: ampliconnoise Version: 1.29-15 Tags: patch User: [email protected] Usertags: ftcbfs
ampliconnoise fails to cross build from source as it misses mpi compiler flags. In theory, it uses mpicc, but cross builds override CC with a non-mpi cross compiler and that's where flags go missing. Fundamentally, mpicc and cross building are incompatible. For openmpi, the solution is to use pkgconf, but mpich does not provide mpi-c anymore. I'm proposing a compromise here: Attempt to use pkgconf to add the flags, but do not fail when pkgconf doesn't work (e.g. on 32bit archs that use mpich). Then native building will continue to work everywhere (as it continues to use mpicc) while cross building will work for 64bit targets (where openmpi is used). Cross builds to 32bit architectures remain broken for now. What do you think? Helmut
diff --minimal -Nru ampliconnoise-1.29/debian/changelog ampliconnoise-1.29/debian/changelog --- ampliconnoise-1.29/debian/changelog 2024-11-26 22:12:39.000000000 +0100 +++ ampliconnoise-1.29/debian/changelog 2025-06-03 08:29:42.000000000 +0200 @@ -1,3 +1,10 @@ +ampliconnoise (1.29-15.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Fix cross building with openmpi. (Closes: #-1) + + -- Helmut Grohne <[email protected]> Tue, 03 Jun 2025 08:29:42 +0200 + ampliconnoise (1.29-15) unstable; urgency=medium * d/t/Run.sh: remove openmpi specific --use-hwthread-cpu argument. diff --minimal -Nru ampliconnoise-1.29/debian/control ampliconnoise-1.29/debian/control --- ampliconnoise-1.29/debian/control 2024-11-26 21:34:27.000000000 +0100 +++ ampliconnoise-1.29/debian/control 2025-06-03 08:29:42.000000000 +0200 @@ -7,7 +7,8 @@ Priority: optional Build-Depends: debhelper-compat (= 13), libgsl-dev, - mpi-default-dev + mpi-default-dev, + pkgconf, Standards-Version: 4.7.0 Vcs-Browser: https://salsa.debian.org/med-team/ampliconnoise Vcs-Git: https://salsa.debian.org/med-team/ampliconnoise.git diff --minimal -Nru ampliconnoise-1.29/debian/patches/cross.patch ampliconnoise-1.29/debian/patches/cross.patch --- ampliconnoise-1.29/debian/patches/cross.patch 1970-01-01 01:00:00.000000000 +0100 +++ ampliconnoise-1.29/debian/patches/cross.patch 2025-06-03 08:29:42.000000000 +0200 @@ -0,0 +1,77 @@ +--- ampliconnoise-1.29.orig/NDist/makefile ++++ ampliconnoise-1.29/NDist/makefile +@@ -2,7 +2,7 @@ + CFLAGS += -O3 + EFLAGS = $(LDFLAGS) + EFILE = NDist +-LIBS = -lm ++LIBS = -lm $(MPI_LIBS) + OBJS = NDist.o + + $(EFILE) : $(OBJS) +--- ampliconnoise-1.29.orig/PyroDist/makefile ++++ ampliconnoise-1.29/PyroDist/makefile +@@ -2,7 +2,7 @@ + CFLAGS += -O3 + EFLAGS = $(LDFLAGS) + EFILE = PyroDist +-LIBS = -lm ++LIBS = -lm $(MPI_LIBS) + OBJS = PyroDist.o + + $(EFILE) : $(OBJS) +--- ampliconnoise-1.29.orig/PyroNoise/makefile ++++ ampliconnoise-1.29/PyroNoise/makefile +@@ -2,7 +2,7 @@ + CFLAGS += -O3 + EFLAGS = $(LDFLAGS) + EFILE = PyroNoise +-LIBS = -lm ++LIBS = -lm $(MPI_LIBS) + OBJS = PyroNoise.o + + $(EFILE) : $(OBJS) +--- ampliconnoise-1.29.orig/PyroNoiseA/makefile ++++ ampliconnoise-1.29/PyroNoiseA/makefile +@@ -2,7 +2,7 @@ + CFLAGS += -O3 + EFLAGS = + EFILE = PyroNoiseA +-LIBS = -lm ++LIBS = -lm $(MPI_LIBS) + OBJS = PyroNoiseA.o + + $(EFILE) : $(OBJS) +--- ampliconnoise-1.29.orig/PyroNoiseM/makefile ++++ ampliconnoise-1.29/PyroNoiseM/makefile +@@ -2,7 +2,7 @@ + CFLAGS += -O3 + EFLAGS = $(LDFLAGS) + EFILE = PyroNoiseM +-LIBS = -lm ++LIBS = -lm $(MPI_LIBS) + OBJS = PyroNoiseM.o + + $(EFILE) : $(OBJS) +--- ampliconnoise-1.29.orig/SeqDist/makefile ++++ ampliconnoise-1.29/SeqDist/makefile +@@ -2,7 +2,7 @@ + CFLAGS += -O3 + EFLAGS = $(LDFLAGS) + EFILE = SeqDist +-LIBS = -lm ++LIBS = -lm $(MPI_LIBS) + OBJS = SeqDist.o + + $(EFILE) : $(OBJS) +--- ampliconnoise-1.29.orig/SeqNoise/makefile ++++ ampliconnoise-1.29/SeqNoise/makefile +@@ -2,7 +2,7 @@ + CFLAGS += -O3 + EFLAGS = $(LDFLAGS) + EFILE = SeqNoise +-LIBS = -lm ++LIBS = -lm $(MPI_LIBS) + OBJS = SeqNoise.o + + $(EFILE) : $(OBJS) diff --minimal -Nru ampliconnoise-1.29/debian/patches/series ampliconnoise-1.29/debian/patches/series --- ampliconnoise-1.29/debian/patches/series 2024-08-07 13:41:01.000000000 +0200 +++ ampliconnoise-1.29/debian/patches/series 2025-06-03 08:29:42.000000000 +0200 @@ -6,3 +6,4 @@ fix_sequence_of_function_definitions.patch fix_missing_header.patch gcc-14.patch +cross.patch diff --minimal -Nru ampliconnoise-1.29/debian/rules ampliconnoise-1.29/debian/rules --- ampliconnoise-1.29/debian/rules 2024-11-26 22:07:12.000000000 +0100 +++ ampliconnoise-1.29/debian/rules 2025-06-03 08:29:42.000000000 +0200 @@ -5,15 +5,24 @@ #export DH_VERBOSE=1 include /usr/share/dpkg/architecture.mk +include /usr/share/dpkg/buildtools.mk export DEB_BUILD_MAINT_OPTIONS = hardening=+all # Compensate test result mismatches occurring on i386 only. ifeq ($(DEB_HOST_ARCH),i386) -export DEB_CFLAGS_MAINT_APPEND=-ffloat-store -export DEB_CXXFLAGS_MAINT_APPEND=-ffloat-store +DEB_CFLAGS_MAINT_APPEND=-ffloat-store +DEB_CXXFLAGS_MAINT_APPEND=-ffloat-store endif +# mpi-c only works for openmpi and mpicc only works for native builds. +# With these settings mpich cross builds are broken and everything else works. +DEB_CFLAGS_MAINT_APPEND += $(shell $(PKG_CONFIG) --cflags mpi-c) +DEB_CXXFLAGS_MAINT_APPEND += $(shell $(PKG_CONFIG) --cflags mpi-c) +MPI_LIBS += $(shell $(PKG_CONFIG) --libs mpi-c) + +export DEB_CFLAGS_MAINT_APPEND DEB_CXXFLAGS_MAINT_APPEND MPI_LIBS + %: dh $@

