Fftw: baseline cpu features (#3506)

This commit is contained in:
miqlas
2019-01-04 20:14:42 +01:00
committed by waddlesplash
parent 30f9b522e5
commit b7ed0c4907
4 changed files with 35 additions and 116 deletions

View File

@@ -1,87 +0,0 @@
SUMMARY="Fast C library for the Discrete Fourier Transform"
DESCRIPTION="
FFTW is a C subroutine library for computing the discrete Fourier transform \
(DFT) in one or more dimensions, of arbitrary input size, and of both real and \
complex data (as well as of even/odd data, i.e. the discrete cosine/sine \
transforms or DCT/DST). We believe that FFTW, which is free software, should \
become the FFT library of choice for most applications.
Our benchmarks, performed on on a variety of platforms, show that FFTW's \
performance is typically superior to that of other publicly available FFT \
software, and is even competitive with vendor-tuned codes. In contrast to \
vendor-tuned codes, however, FFTW's performance is portable: the same program \
will perform well on most architectures without modification. Hence the name, \
FFTW, which stands for the somewhat whimsical title of Fastest Fourier \
Transform in the West."
HOMEPAGE="http://www.fftw.org/"
COPYRIGHT="2003, 2007-2011 Matteo Frigo
2003, 2007-2011 Massachusetts Institute of Technology"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="http://www.fftw.org/fftw-$portVersion.tar.gz"
CHECKSUM_SHA256="3b609b7feba5230e8f6dd8d245ddbefac324c5a6ae4186947670d9ac2cd25573"
SOURCE_DIR="fftw-$portVersion"
ARCHITECTURES="x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86_gcc2 x86"
PROVIDES="
fftw$secondaryArchSuffix = $portVersion compat >= 3
cmd:fftw_wisdom$secondaryArchSuffix
cmd:fftw_wisdom_to_conf$secondaryArchSuffix
cmd:fftwf_wisdom$secondaryArchSuffix
lib:libfftw3$secondaryArchSuffix = 3.5.7 compat >= 3
lib:libfftw3f$secondaryArchSuffix = 3.5.7 compat >= 3
"
REQUIRES="
haiku$secondaryArchSuffix
"
PROVIDES_devel="
fftw${secondaryArchSuffix}_devel = $portVersion compat >= 3
devel:libfftw3$secondaryArchSuffix = 3.5.7 compat >= 3
devel:libfftw3f$secondaryArchSuffix = 3.5.7 compat >= 3
"
REQUIRES_devel="
fftw$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:awk
cmd:find
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
"
BUILD()
{
make clean && make distclean || true
# build double-precision version
runConfigure ./configure --enable-shared
make $jobArgs
make install
make clean && make distclean || true
# build float-precision version
runConfigure ./configure --enable-float --enable-shared
make $jobArgs
make install
}
INSTALL()
{
rm $libDir/libfftw*.la
prepareInstalledDevelLibs \
libfftw3 \
libfftw3f
fixPkgconfig
packageEntries devel \
$developDir
}

View File

@@ -15,9 +15,10 @@ HOMEPAGE="http://www.fftw.org/"
COPYRIGHT="2003, 2007-2011 Matteo Frigo
2003, 2007-2011 Massachusetts Institute of Technology"
LICENSE="GNU GPL v2"
REVISION="2"
REVISION="3"
SOURCE_URI="http://www.fftw.org/fftw-$portVersion.tar.gz"
CHECKSUM_SHA256="6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303"
PATCHES="fftw-$portVersion.patchset"
ARCHITECTURES="x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86_gcc2 x86"
@@ -83,12 +84,15 @@ BUILD_REQUIRES+="
"
fi
BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoreconf
cmd:awk
cmd:cmp
cmd:diff
cmd:find
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:libtoolize$secondaryArchSuffix
cmd:make
cmd:perl
"
@@ -111,15 +115,19 @@ defineDebugInfoPackage fftw$secondaryArchSuffix "${debugList[@]}"
BUILD()
{
# Autoreconf because m4 patching
autoreconf --verbose --install --symlink --force
mkdir -p double long-double quad float
# 32 bit targets NORTHWOOD
# 64 bit targets PRESCOTT
CONFIGURE="--enable-shared --enable-threads"
if [ "$effectiveTargetArchitecture" = x86_64 ]; then
CONFIGURE_X86_64="--enable-sse2"
fi
CONFIGURE="--enable-shared --enable-threads --disable-avx --disable-avx2 \
--disable-avx512"
if [ "$effectiveTargetArchitecture" = x86_64 ]; then
CONFIGURE_X86_64="--enable-sse2"
fi
# build double-precision version
cd double

View File

@@ -1,24 +0,0 @@
From 4ee5a540f1e7f19940217378031cd4a4360b435a Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Tue, 2 Aug 2016 22:25:47 +0200
Subject: gcc2 patch
diff --git a/kernel/stride.c b/kernel/stride.c
index 689fdc8..27b631b 100644
--- a/kernel/stride.c
+++ b/kernel/stride.c
@@ -26,8 +26,9 @@ const INT X(an_INT_guaranteed_to_be_zero) = 0;
stride X(mkstride)(INT n, INT s)
{
int i;
+ INT *p;
A(n >= 0);
- INT *p = (INT *) MALLOC((size_t)n * sizeof(INT), STRIDES);
+ p = (INT *) MALLOC((size_t)n * sizeof(INT), STRIDES);
for (i = 0; i < n; ++i)
p[i] = s * i;
--
2.2.2

View File

@@ -0,0 +1,22 @@
From 47051e008ae0df4f5c6bda28bed708cb41fbb9af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sat, 29 Dec 2018 17:38:55 +0100
Subject: Haiku: disable -mtune=native
diff --git a/m4/ax_cc_maxopt.m4 b/m4/ax_cc_maxopt.m4
index 61d3a98..ef0ea65 100644
--- a/m4/ax_cc_maxopt.m4
+++ b/m4/ax_cc_maxopt.m4
@@ -73,7 +73,7 @@ if test "$ac_test_CFLAGS" != "set"; then
CFLAGS="-O3 -fomit-frame-pointer"
# tune for the host by default
- AX_CHECK_COMPILER_FLAGS(-mtune=native, CFLAGS="$CFLAGS -mtune=native")
+ # AX_CHECK_COMPILER_FLAGS(-mtune=native, CFLAGS="$CFLAGS -mtune=native")
# -malign-double for x86 systems
AX_CHECK_COMPILER_FLAGS(-malign-double, CFLAGS="$CFLAGS -malign-double")
--
2.19.1