[prev in list] [next in list] [prev in thread] [next in thread]
List: netbsd-bugs
Subject: pkg/22634: fftw upgrade to version 3 needs tweaking
From: tls () NetBSD ! org
Date: 2003-08-29 4:51:40
[Download RAW message or body]
> Number: 22634
> Category: pkg
> Synopsis: The upgrade of fftw to version 3 left it not-quite-right.
> Confidential: no
> Severity: serious
> Priority: medium
> Responsible: pkg-manager
> State: open
> Class: change-request
> Submitter-Id: net
> Arrival-Date: Fri Aug 29 04:52:00 UTC 2003
> Closed-Date:
> Last-Modified:
> Originator: Thor Lancelot Simon
> Release: NetBSD 1.6W
> Organization:
The NetBSD Project
> Environment:
System: NetBSD homeworld.netbsd.org 1.6.1 NetBSD 1.6.1 (HOMEWORLD) #2: Fri Jul 25 \
09:05:09 CDT 2003 root@aurora.ait.iastate.edu:/usr/NetBSD/kernels/compile/HOMEWORLD \
i386
Architecture: i386
Machine: i386
> Description:
The upgrade of the math/fftw package to version 3 didn't leave it
quite right for many users. There are a number of minor problems:
1) Only one precision is built/installed.
2) The threaded versions of the FFTW libraries aren't built (even if
--enable-thread is specified to configure, the non-threaded libs
are still also built, so it's safe to turn this on).
3) kernel/alloc.c needs to know how our malloc() aligns data. It
appears that, currently, on all platforms, we provide the 16-byte
alignment FFTW wants, so we could patch the file to tell it so.
However, as a quick fix (this breaks the build at present) it is
possible to add --with-our-malloc16 to the configure args.
4) SIMD extensions are not enabled. Enabling these is safe, since
FFTW does runtime detection before using them.
> How-To-Repeat:
> Fix:
1) The FFTW libraries for each supported precision have different
names and APIs, so it is safe to build/install them all.
(see doc/Precision.html, which gives the names for each
library).
Unfortunately, it's necessary to clean/re-configure/re-make
to get each library built.
There's probably no point to building the "long double" library
on any of our platforms, since we don't run on anything with
hardware support for 128-bit floating-point AFAIK. But we
need to build the single-precision and double-precision ones.
To do this, we need to iterate over the configure/make steps,
once with "--enable-single" and once without it, and install
both resulting builds (some files, esp. headers, will be in
both builds, that's harmless).
2) --enable-threads should be added to the configure args.
3) We should patch kernel/alloc.c to tell it that NetBSD's malloc,
like that of OS X, returns 16-byte-aligned addresses. Or we
could just use --with-our-malloc16.
4) For the single-precision build, we should add --enable-sse
--enable-k7 on i386, and --enable-altivec on powerpc. For
the double-precision (default) build, we should add --enable-sse2
on i386. There's no corresponding double-precision vector
extension on the powerpc AFAIK.
> Release-Note:
> Audit-Trail:
> Unformatted:
pkgsrc as of 2003-08-29
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic