diff options
| -rw-r--r-- | meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch | 80 | ||||
| -rw-r--r-- | meta-oe/recipes-support/fftw/fftw_3.3.5.bb | 5 |
2 files changed, 84 insertions, 1 deletions
diff --git a/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch b/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch new file mode 100644 index 0000000000..6340f42f46 --- /dev/null +++ b/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch | |||
| @@ -0,0 +1,80 @@ | |||
| 1 | From 97af5a2efbe30726ce4d7c921efed6afc32a314f Mon Sep 17 00:00:00 2001 | ||
| 2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
| 3 | Date: Sun, 25 Dec 2016 13:41:19 +0100 | ||
| 4 | Subject: [PATCH] NEON autodetection segfaults: assume neon present | ||
| 5 | MIME-Version: 1.0 | ||
| 6 | Content-Type: text/plain; charset=UTF-8 | ||
| 7 | Content-Transfer-Encoding: 8bit | ||
| 8 | |||
| 9 | If TUNE_FEATURES contain 'neon' we can assume our machine supports it | ||
| 10 | |||
| 11 | Upstream-Status: Inappropriate [embedded specific] | ||
| 12 | |||
| 13 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
| 14 | --- | ||
| 15 | simd-support/neon.c | 46 +--------------------------------------------- | ||
| 16 | 1 file changed, 1 insertion(+), 45 deletions(-) | ||
| 17 | |||
| 18 | diff --git a/simd-support/neon.c b/simd-support/neon.c | ||
| 19 | index 86b2cb6..8d6537e 100644 | ||
| 20 | --- a/simd-support/neon.c | ||
| 21 | +++ b/simd-support/neon.c | ||
| 22 | @@ -23,54 +23,10 @@ | ||
| 23 | |||
| 24 | #if HAVE_NEON | ||
| 25 | |||
| 26 | -/* check for an environment where signals are known to work */ | ||
| 27 | -#if defined(unix) || defined(linux) | ||
| 28 | - # include <signal.h> | ||
| 29 | - # include <setjmp.h> | ||
| 30 | - | ||
| 31 | - static jmp_buf jb; | ||
| 32 | - | ||
| 33 | - static void sighandler(int x) | ||
| 34 | - { | ||
| 35 | - UNUSED(x); | ||
| 36 | - longjmp(jb, 1); | ||
| 37 | - } | ||
| 38 | - | ||
| 39 | - static int really_have_neon(void) | ||
| 40 | - { | ||
| 41 | - void (*oldsig)(int); | ||
| 42 | - oldsig = signal(SIGILL, sighandler); | ||
| 43 | - if (setjmp(jb)) { | ||
| 44 | - signal(SIGILL, oldsig); | ||
| 45 | - return 0; | ||
| 46 | - } else { | ||
| 47 | - /* paranoia: encode the instruction in binary because the | ||
| 48 | - assembler may not recognize it without -mfpu=neon */ | ||
| 49 | - /*asm volatile ("vand q0, q0, q0");*/ | ||
| 50 | - asm volatile (".long 0xf2000150"); | ||
| 51 | - signal(SIGILL, oldsig); | ||
| 52 | - return 1; | ||
| 53 | - } | ||
| 54 | - } | ||
| 55 | - | ||
| 56 | - int X(have_simd_neon)(void) | ||
| 57 | - { | ||
| 58 | - static int init = 0, res; | ||
| 59 | - | ||
| 60 | - if (!init) { | ||
| 61 | - res = really_have_neon(); | ||
| 62 | - init = 1; | ||
| 63 | - } | ||
| 64 | - return res; | ||
| 65 | - } | ||
| 66 | - | ||
| 67 | - | ||
| 68 | -#else | ||
| 69 | -/* don't know how to autodetect NEON; assume it is present */ | ||
| 70 | +/* autodetect NEON broken; assume it is present */ | ||
| 71 | int X(have_simd_neon)(void) | ||
| 72 | { | ||
| 73 | return 1; | ||
| 74 | } | ||
| 75 | -#endif | ||
| 76 | |||
| 77 | #endif | ||
| 78 | -- | ||
| 79 | 2.5.5 | ||
| 80 | |||
diff --git a/meta-oe/recipes-support/fftw/fftw_3.3.5.bb b/meta-oe/recipes-support/fftw/fftw_3.3.5.bb index 7bce6f4e57..71adb89051 100644 --- a/meta-oe/recipes-support/fftw/fftw_3.3.5.bb +++ b/meta-oe/recipes-support/fftw/fftw_3.3.5.bb | |||
| @@ -3,7 +3,10 @@ SECTION = "libs" | |||
| 3 | LICENSE = "GPLv2" | 3 | LICENSE = "GPLv2" |
| 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" | 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" |
| 5 | 5 | ||
| 6 | SRC_URI = "http://www.fftw.org/fftw-${PV}.tar.gz" | 6 | SRC_URI = " \ |
| 7 | http://www.fftw.org/fftw-${PV}.tar.gz \ | ||
| 8 | file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \ | ||
| 9 | " | ||
| 7 | SRC_URI[md5sum] = "6cc08a3b9c7ee06fdd5b9eb02e06f569" | 10 | SRC_URI[md5sum] = "6cc08a3b9c7ee06fdd5b9eb02e06f569" |
| 8 | SRC_URI[sha256sum] = "8ecfe1b04732ec3f5b7d279fdb8efcad536d555f9d1e8fabd027037d45ea8bcf" | 11 | SRC_URI[sha256sum] = "8ecfe1b04732ec3f5b7d279fdb8efcad536d555f9d1e8fabd027037d45ea8bcf" |
| 9 | 12 | ||
