[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