Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 106387

Summary: fftw3.0.1: gen_r2r (part of genfft suite) crashes with a floating point exception
Product: Gentoo Linux Reporter: Renato Vitolo <renato.vitolo>
Component: [OLD] UnspecifiedAssignee: Gentoo Science Related Packages <sci>
Severity: normal CC: robbat2
Priority: High    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Package list:
Runtime testing required: ---

Description Renato Vitolo 2005-09-18 11:05:25 UTC
gen_r2r is one of the codelet-generators in the genfft set of programs with
which the codelets in fftw are generated,
see the directory genfft/ inside the fftw-3.0.1 source root.
It is automatically called when compiling fftw and requesting the
generation of new codelets, as described in
It is compiled with ocaml.

On my gentoo amd64 it crashes with a floating point exception, making impossible
the generation of new codelets.

Reproducible: Always
Steps to Reproduce: and unpack the source fftw-3.0.1.tar.gz
2.edit in rdft/codelets/r2r/ and remove the character #
  from the line beginning with O00 (line 30) sh in the top directory libtoolize --copy --force in the top directory make in the top directory
6.compilation fails. The generated codelet files
 (such as e01_8.c but also many others not only in rdft/codelets/r2r)
 are empty. genfft && ./gen_r2r -redft00 -n 8 gives Floating point exception
  this is why the codelet files are empty  

Actual Results:  
$ cd genfft
$ ./gen_r2r -redft00 -n 8
$ Floating point exception
$ gdb ./gen_r2r
$ set args -redft00 -n 8
(gdb) r
Starting program: /usr/src/fftw-3.0.1/genfft/gen_r2r -redft00 -n 8

Program received signal SIGFPE, Arithmetic exception.
0x000000000044c3b7 in bng_generic_div_rem_norm_digit ()

Expected Results:  
On another machine (a Xeon running Debian GNU/Linux):

mymach:/usr/src/packages/fftw-3.0.1/genfft#  ./gen_r2r -redft00 -n 8
/* Generated by: ./gen_r2r -redft00 -n 8 */

 * This function contains 32 FP additions, 20 FP multiplications,
 * (or, 18 additions, 6 multiplications, 14 fused multiply/add),
 * 16 stack variables, and 16 memory accesses
 * Generator Id's : 
 * $Id:,v 1.7 2003/03/15 20:29:42 stevenj Exp $
 * $Id:,v 1.2 2003/03/15 20:29:42 stevenj Exp $
 * $Id:,v 1.3 2003/04/17 19:25:50 athena Exp $

static void unnamed_0(const R * I, R * O, stride istride, stride ostride)
const E KP2_000000000 = K(+2.000000000000000000000000000000000000000000000);
const E KP1_801937735 = K(+1.801937735804838252472204639014890102331838324);
const E KP445041867 = K(+0.445041867912628808577805128993589518932711138);
const E KP1_246979603 = K(+1.246979603717467061050009768008479621264549462);
E T3;
E T13;
E T12;
E T14;
E T6;
E T16;
E T9;
E T15;
E T1;
E T2;
E T10;
E T11;
T1 = I[0];
T2 = I[WS(istride, 7)];
T3 = T1 - T2;
T13 = T1 + T2;
T10 = I[WS(istride, 2)];
T11 = I[WS(istride, 5)];
T12 = T10 - T11;
T14 = T10 + T11;
E T4;
E T5;
E T7;
E T8;
T4 = I[WS(istride, 4)];
T5 = I[WS(istride, 3)];
T6 = T4 - T5;
T16 = T4 + T5;
T7 = I[WS(istride, 6)];
T8 = I[WS(istride, 1)];
T9 = T7 - T8;
T15 = T7 + T8;
O[WS(ostride, 3)] = FMA(KP1_246979603, T6, T3) + FNMA(KP445041867, T9,
KP1_801937735 *
O[0] = FMA(KP2_000000000, T14 + T16 + T15, T13);
O[WS(ostride, 2)] = FMA(KP1_246979603, T15, T13) + FNMA(KP1_801937735, T16,
7 * T14);
O[WS(ostride, 1)] = FMA(KP1_246979603, T12, T3) + FNMA(KP1_801937735, T9,
* T6);
O[WS(ostride, 5)] = FMA(KP1_246979603, T9, T3) + FNMA(KP1_801937735, T6,
KP445041867 *
O[WS(ostride, 6)] = FMA(KP1_246979603, T14, T13) + FNMA(KP1_801937735, T15,
7 * T16);
O[WS(ostride, 4)] = FMA(KP1_246979603, T16, T13) + FNMA(KP445041867, T15,
5 * T14);
O[WS(ostride, 7)] = FMA(KP2_000000000, T12 + T6 + T9, T3);

static void unnamed(const R *I, R *O, stride is, stride os,  int v, int ivs, int
int i;
for (i = v; i > 0; --i) {
unnamed_0(I, O, is, os);
I += ivs; O += ovs;

static const kr2r_desc desc = { 8, "unnamed", { 18, 6, 14, 0 }, &GENUS, REDFT00,
0, 0,
 0, 0 };

void X(codelet_unnamed)(planner *p)
{  X(kr2r_register)(p, unnamed, &desc);

It might be that the problem is the ocaml compiler.

I also have tried to edit the file, adding
  --host=x86_64-pc-linux-gnu  --build=x86_64-pc-linux-gnu --libdir=/usr/lib64
but id did not help.

Gentoo Base System version 1.6.13
Portage (default-linux/amd64/2005.0, gcc-3.4.4, glibc-2.3.5-r1,
2.6.9-gentoo-r14 x86_64)
System uname: 2.6.9-gentoo-r14 x86_64 AMD Athlon(tm) 64 Processor 3000+
dev-lang/python:     2.3.5-r2
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.6.11-r2
CFLAGS="-march=k8 -O2 -pipe -fPIC"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env
/usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/
/usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/
/usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=k8 -O2 -pipe -fPIC"
FEATURES="autoconfig distlocks sfperms strict"
USE="amd64 X alsa avi berkdb bitmap-fonts cdr crypt cups curl dvd eds emboss
encode esd fam flac foomaticdb fortran gd gdbm gif gpm gstreamer gtk gtk2
imagemagick imlib ipv6 jpeg kde libwww lzw lzw-tiff mad motif mp3 mpeg ncurses
nls ogg opengl pam pdflib perl plotutils png python qt quicktime readline samba
sdl spell ssl tcpd tetex tiff truetype-fonts type1-fonts usb userlocales vorbis
xine xml2 xpm xv zlib userland_GNU kernel_linux elibc_glibc"
Comment 1 Jim Laflin 2005-09-18 11:08:33 UTC
*** Bug 106388 has been marked as a duplicate of this bug. ***
Comment 2 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2006-05-11 03:10:31 UTC
please retest with fftw3.1.1
Comment 3 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2006-06-11 03:19:16 UTC
No response from user, closing by default, it should be fixed in the new version anyway.
Comment 4 Renato Vitolo 2006-07-04 07:56:39 UTC
Indeed, genfft works correctly in fftw3.1.1. Thank you.