Source: cubature Version: 1.0.3+ds-4 Tags: patch User: debian-cr...@lists.debian.org Usertags: ftcbfs
cubature fails to cross build from source. The failure varies a bit with the architecture combination. For instance cross building from amd64 to mipsel results in a failure about finding -lfftw3l. Cross building from amd64 to arm64 results in an Exec format error. There are multiple causes at work here. The tool clencurt_gen is a build tool and therefore should be built with the build architecture compiler, not the host architecture compiler. Once fixing that, the relevant fftw library is missing. It is a bit special here, because fftw is needed for both the build architecture (for clencurt_gen) and for the host architecture (for the actual libcubature). Thus a dependency is required for both architectures. Then, depending on the architecture combination, linking fftw fails again. This time, it happens during the later host architecture compiler invocations. The relevant fftw library to use depends on the architecture. Thus we need the FFTWLIB variable for both build and host. Please consider applying the attached patch to make cross building work. Helmut
diff --minimal -Nru cubature-1.0.3+ds/debian/changelog cubature-1.0.3+ds/debian/changelog --- cubature-1.0.3+ds/debian/changelog 2021-02-20 11:14:12.000000000 +0100 +++ cubature-1.0.3+ds/debian/changelog 2021-03-09 08:25:25.000000000 +0100 @@ -1,3 +1,13 @@ +cubature (1.0.3+ds-4.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Fix FTCBFS: (Closes: #-1) + + Build build tool clencurt_gen with the build arch compiler. + + Add missing libfftw3-dev:native build dependency. + + Detect fftw/fftwl for the host objects using the host library. + + -- Helmut Grohne <hel...@subdivi.de> Tue, 09 Mar 2021 08:25:25 +0100 + cubature (1.0.3+ds-4) unstable; urgency=medium * Replace DEB_BUILD_MULTIARCH with DEB_HOST_MULTIARCH diff --minimal -Nru cubature-1.0.3+ds/debian/control cubature-1.0.3+ds/debian/control --- cubature-1.0.3+ds/debian/control 2021-02-20 11:13:22.000000000 +0100 +++ cubature-1.0.3+ds/debian/control 2021-03-09 08:25:25.000000000 +0100 @@ -3,7 +3,7 @@ Priority: optional Maintainer: Debian Science Team <debian-science-maintain...@lists.alioth.debian.org> Uploaders: Ole Streicher <oleb...@debian.org>, Nilesh Patra <npatra...@gmail.com> -Build-Depends: debhelper-compat (= 12), dh-exec, libfftw3-dev +Build-Depends: debhelper-compat (= 12), dh-exec, libfftw3-dev, libfftw3-dev:native Standards-Version: 4.4.1 Vcs-Git: https://salsa.debian.org/science-team/cubature.git Vcs-Browser: https://salsa.debian.org/science-team/cubature diff --minimal -Nru cubature-1.0.3+ds/debian/rules cubature-1.0.3+ds/debian/rules --- cubature-1.0.3+ds/debian/rules 2021-02-20 11:04:04.000000000 +0100 +++ cubature-1.0.3+ds/debian/rules 2021-03-09 08:25:25.000000000 +0100 @@ -3,12 +3,18 @@ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 --include /usr/share/dpkg/buildtools.mk +include /usr/share/dpkg/buildtools.mk %: dh $@ ifeq (,$(wildcard /usr/lib/$(DEB_BUILD_MULTIARCH)/libfftw3l*)) +FFTWDEF_FOR_BUILD=-DNO_LONG_DOUBLE_FFTW +FFTWLIB_FOR_BUILD=-lfftw3 +else +FFTWLIB_FOR_BUILD=-lfftw3l +endif +ifeq (,$(wildcard /usr/lib/$(DEB_HOST_MULTIARCH)/libfftw3l*)) FFTWDEF=-DNO_LONG_DOUBLE_FFTW FFTWLIB=-lfftw3 else @@ -16,7 +22,7 @@ endif override_dh_auto_build: - $(CC) $(CFLAGS) $(CPPFLAGS) $(FFTWDEF) $(LDFLAGS) -o clencurt_gen clencurt_gen.c $(FFTWLIB) -lm + $(CC_FOR_BUILD) $(CFLAGS) $(CPPFLAGS) $(FFTWDEF_FOR_BUILD) $(LDFLAGS) -o clencurt_gen clencurt_gen.c $(FFTWLIB_FOR_BUILD) -lm ./clencurt_gen 19 > clencurt.h $(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c hcubature.c pcubature.c $(CC) $(LDFLAGS) -shared -o libcubature.so.0 -Wl,-soname,libcubature.so.0 hcubature.o pcubature.o -lm