summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-support/fftw
diff options
context:
space:
mode:
authorDave Cobbley <david.j.cobbley@linux.intel.com>2018-08-14 20:05:37 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-08-23 04:26:31 +0300
commiteb8dc40360f0cfef56fb6947cc817a547d6d9bc6 (patch)
treede291a73dc37168da6370e2cf16c347d1eba9df8 /meta-openembedded/meta-oe/recipes-support/fftw
parent9c3cf826d853102535ead04cebc2d6023eff3032 (diff)
downloadopenbmc-eb8dc40360f0cfef56fb6947cc817a547d6d9bc6.tar.xz
[Subtree] Removing import-layers directory
As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley <david.j.cobbley@linux.intel.com> Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support/fftw')
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch80
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb80
2 files changed, 160 insertions, 0 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch b/meta-openembedded/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-openembedded/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch
@@ -0,0 +1,80 @@
+From 97af5a2efbe30726ce4d7c921efed6afc32a314f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Sun, 25 Dec 2016 13:41:19 +0100
+Subject: [PATCH] NEON autodetection segfaults: assume neon present
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If TUNE_FEATURES contain 'neon' we can assume our machine supports it
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ simd-support/neon.c | 46 +---------------------------------------------
+ 1 file changed, 1 insertion(+), 45 deletions(-)
+
+diff --git a/simd-support/neon.c b/simd-support/neon.c
+index 86b2cb6..8d6537e 100644
+--- a/simd-support/neon.c
++++ b/simd-support/neon.c
+@@ -23,54 +23,10 @@
+
+ #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;
+- }
+- }
+-
+- int X(have_simd_neon)(void)
+- {
+- static int init = 0, res;
+-
+- if (!init) {
+- res = really_have_neon();
+- init = 1;
+- }
+- return res;
+- }
+-
+-
+-#else
+-/* don't know how to autodetect NEON; assume it is present */
++/* autodetect NEON broken; assume it is present */
+ int X(have_simd_neon)(void)
+ {
+ return 1;
+ }
+-#endif
+
+ #endif
+--
+2.5.5
+
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
new file mode 100644
index 0000000000..aae6ec952a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
@@ -0,0 +1,80 @@
+DESCRIPTION = "FFTW"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+SRC_URI = " \
+ http://www.fftw.org/fftw-${PV}.tar.gz \
+ file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
+"
+SRC_URI[md5sum] = "0d5915d7d39b3253c1cc05030d79ac47"
+SRC_URI[sha256sum] = "3b609b7feba5230e8f6dd8d245ddbefac324c5a6ae4186947670d9ac2cd25573"
+
+inherit autotools pkgconfig
+
+# we had multiple recipes in the past
+PROVIDES = "fftwl fftwf"
+
+EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}"
+FFTW_NEON_class-native = ""
+
+do_configure() {
+ # configure fftw
+ rm -rf ${WORKDIR}/build-fftw
+ mkdir -p ${B}
+ cd ${B}
+ # full (re)configure
+ autotools_do_configure
+ mv ${B} ${WORKDIR}/build-fftw
+
+ # configure fftwl
+ rm -rf ${WORKDIR}/build-fftwl
+ mkdir -p ${B}
+ cd ${B}
+ # configure only
+ oe_runconf --enable-long-double
+ mv ${B} ${WORKDIR}/build-fftwl
+
+ # configure fftwf
+ rm -rf ${WORKDIR}/build-fftwf
+ mkdir -p ${B}
+ cd ${B}
+ # configure only
+ oe_runconf --enable-single ${FFTW_NEON}
+ mv ${B} ${WORKDIR}/build-fftwf
+}
+
+do_compile() {
+ for lib in fftw fftwl fftwf; do
+ cd ${WORKDIR}/build-$lib
+ autotools_do_compile
+ done
+}
+
+do_install() {
+ for lib in fftw fftwl fftwf; do
+ cd ${WORKDIR}/build-$lib
+ autotools_do_install
+ done
+}
+
+
+PACKAGES =+ "libfftw libfftwl libfftwf"
+FILES_libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*"
+FILES_libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*"
+FILES_libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*"
+
+PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf"
+FILES_fftw-wisdom = "${bindir}/fftw-wisdom"
+FILES_fftwl-wisdom = "${bindir}/fftwl-wisdom"
+FILES_fftwf-wisdom = "${bindir}/fftwf-wisdom"
+FILES_fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf"
+
+FILES_${PN}-dev += "${libdir}/cmake"
+RDEPENDS_${PN}-dev = "libfftw libfftwl libfftwf"
+
+BBCLASSEXTEND = "native"