Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock Dear Release Team, Please unblock fftw3. Version 3.3.4-2 fixes #767138, which was causing several packages to FTBFS on armhf (only on CPUs without NEON support, which includes many of our armhf buildds). Changelog and debdiff follow. fftw3 (3.3.4-2) unstable; urgency=medium * Team upload. * fix-runtime-neon-detection.patch: new patch, fixes runtime NEON detection on armhf (and also arm64, but NEON is currently unconditionnally disabled there). Thanks to Edmund Grimley Evans for the patch. (Closes: #767138) -- Sébastien Villemot <sebastien@debian.org> Sun, 23 Nov 2014 20:49:59 +0100 unblock fftw3/3.3.4-2 Thanks, -- .''`. Sébastien Villemot : :' : Debian Developer `. `' http://www.dynare.org/sebastien `- GPG Key: 4096R/381A7594
diff -Nru fftw3-3.3.4/debian/changelog fftw3-3.3.4/debian/changelog --- fftw3-3.3.4/debian/changelog 2014-10-14 04:13:24.000000000 +0200 +++ fftw3-3.3.4/debian/changelog 2014-11-23 21:04:48.000000000 +0100 @@ -1,3 +1,13 @@ +fftw3 (3.3.4-2) unstable; urgency=medium + + * Team upload. + * fix-runtime-neon-detection.patch: new patch, fixes runtime NEON + detection on armhf (and also arm64, but NEON is currently + unconditionnally disabled there). Thanks to Edmund Grimley Evans for + the patch. (Closes: #767138) + + -- Sébastien Villemot <sebastien@debian.org> Sun, 23 Nov 2014 20:49:59 +0100 + fftw3 (3.3.4-1.1) unstable; urgency=low * Add mips64(el), ppc64el and arm64 to the list with long double support. diff -Nru fftw3-3.3.4/debian/patches/fix-runtime-neon-detection.patch fftw3-3.3.4/debian/patches/fix-runtime-neon-detection.patch --- fftw3-3.3.4/debian/patches/fix-runtime-neon-detection.patch 1970-01-01 01:00:00.000000000 +0100 +++ fftw3-3.3.4/debian/patches/fix-runtime-neon-detection.patch 2014-11-23 21:04:48.000000000 +0100 @@ -0,0 +1,103 @@ +Description: Fix runtime detection of NEON support on armhf and arm64 +Author: Edmund Grimley Evans <edmund.grimley.evans@gmail.com> +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=767138 +Forwarded: no +Reviewed-by: Sébastien Villemot <sebastien@debian.org> +Last-Update: 2014-11-23 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/simd-support/neon.c ++++ b/simd-support/neon.c +@@ -23,56 +23,45 @@ + + #if HAVE_NEON + +-/* check for an environment where signals are known to work */ +-#if defined(unix) || defined(linux) +- # include <signal.h> +- # include <setjmp.h> +- +- static jmp_buf jb; +- +- static void sighandler(int x) +- { +- UNUSED(x); +- longjmp(jb, 1); +- } +- +- static int really_have_neon(void) +- { +- void (*oldsig)(int); +- oldsig = signal(SIGILL, sighandler); +- if (setjmp(jb)) { +- signal(SIGILL, oldsig); +- return 0; +- } else { +- /* paranoia: encode the instruction in binary because the +- assembler may not recognize it without -mfpu=neon */ +- /*asm volatile ("vand q0, q0, q0");*/ +- asm volatile (".long 0xf2000150"); +- signal(SIGILL, oldsig); +- return 1; +- } +- } +- +- extern void X(check_alignment_of_sse2_pm)(void); +- +- int X(have_simd_neon)(void) +- { +- static int init = 0, res; +- +- if (!init) { +- res = really_have_neon(); +- init = 1; +- } +- return res; +- } ++#ifdef __linux__ + ++#ifdef __aarch64__ ++ ++/* HWCAP_ASIMD is defined in <asm/hwcap.h> but not included by <sys/auxv.h>. ++ Since all current AArch64 implementations have NEON/ASIMD it is probably ++ better to return 1 than include a header file which is not intended for ++ use by user programs. */ ++ ++int X(have_simd_neon)(void) ++{ ++ return 1; ++} + + #else +-/* don't know how to autodetect NEON; assume it is present */ +- int X(have_simd_neon)(void) +- { +- return 1; +- } ++ ++#include <sys/auxv.h> ++ ++int X(have_simd_neon)(void) ++{ ++ static int cached = 2; ++ int ret; ++ ++ /* This should be thread-safe in all reasonable circumstances. */ ++ ret = cached; ++ if (ret == 2) ++ { ++ ret = !!(getauxval(AT_HWCAP) & HWCAP_ARM_NEON); ++ cached = ret; ++ } ++ return ret; ++} ++ ++#endif ++ ++#else ++ ++#error Please implement a run-time test for NEON/ASIMD for your platform. ++ + #endif + + #endif diff -Nru fftw3-3.3.4/debian/patches/series fftw3-3.3.4/debian/patches/series --- fftw3-3.3.4/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ fftw3-3.3.4/debian/patches/series 2014-11-23 21:04:48.000000000 +0100 @@ -0,0 +1 @@ +fix-runtime-neon-detection.patch
Attachment:
signature.asc
Description: Digital signature