Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 106388 - fftw3.0.1: gen_r2r (part of genfft suite) crashes with a floating point exception
Summary: fftw3.0.1: gen_r2r (part of genfft suite) crashes with a floating point excep...
Status: VERIFIED DUPLICATE of bug 106387
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Linux bug wranglers
Depends on:
Reported: 2005-09-18 11:07 UTC by Renato Vitolo
Modified: 2005-09-18 11:59 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Renato Vitolo 2005-09-18 11:07:06 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 sh in the top directory make in the top directory
7.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

*** This bug has been marked as a duplicate of 106387 ***
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2005-09-18 11:59:21 UTC