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 http://www.fftw.org/fftw3_doc/Generating-your-own-code.html#Generating-your-own-code 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: 1.download and unpack the source fftw-3.0.1.tar.gz 2.edit Makefile.am in rdft/codelets/r2r/ and remove the character # from the line beginning with O00 (line 30) 3.call sh bootstrap.sh in the top directory 4.call libtoolize --copy --force in the top directory 5.call 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. 7.cd 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: algsimp.ml,v 1.7 2003/03/15 20:29:42 stevenj Exp $ * $Id: fft.ml,v 1.2 2003/03/15 20:29:42 stevenj Exp $ * $Id: gen_r2r.ml,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 * T12); O[0] = FMA(KP2_000000000, T14 + T16 + T15, T13); O[WS(ostride, 2)] = FMA(KP1_246979603, T15, T13) + FNMA(KP1_801937735, T16, KP44504186 7 * T14); O[WS(ostride, 1)] = FMA(KP1_246979603, T12, T3) + FNMA(KP1_801937735, T9, KP445041867 * T6); O[WS(ostride, 5)] = FMA(KP1_246979603, T9, T3) + FNMA(KP1_801937735, T6, KP445041867 * T12); O[WS(ostride, 6)] = FMA(KP1_246979603, T14, T13) + FNMA(KP1_801937735, T15, KP44504186 7 * T16); O[WS(ostride, 4)] = FMA(KP1_246979603, T16, T13) + FNMA(KP445041867, T15, KP1_80193773 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 ovs) { 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 bootstrap.sh 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 2.0.51.22-r2 (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/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=k8 -O2 -pipe -fPIC" CHOST="x86_64-pc-linux-gnu" 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" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sfperms strict" GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo http://gentoo.osuosl.org http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" 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" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
*** Bug 106388 has been marked as a duplicate of this bug. ***
please retest with fftw3.1.1
No response from user, closing by default, it should be fixed in the new version anyway.
Indeed, genfft works correctly in fftw3.1.1. Thank you.