Hi,

While investigating a build failure (ITK on Debian [1]), I discovered
that fftw3 now uses the GCC extension __float128 for quad precision
arithmetic.  In a nutshell, the following code builds OK using
Debian's GCC 4.6.2-9 on both my amd64 machine and a 32-bit chroot on
the same machine.  Gccxml, however, differs: it parses OK on 64-bits,
but complains when used with the 32-bit compiler.


        int main(int ac, char* av[])
        {
            /* Modeled on code in fftw3.h, from about line 370 */

        /* __float128 (quad precision) is a gcc extension on i386, x86_64, and 
ia64
           for gcc >= 4.6 (compiled in FFTW with --enable-quad-precision) */

        #if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) \
         && (defined(__i386__) || defined(__x86_64__) || defined(__ia64__))
            typedef __float128 quadcomplex[2];
        #endif

            return 0;
        }

The 32-bit gccxml invocation produces this output:

        steve@riemann{Testing}gccxml float128.c 
        float128.c: In function 'int main(int, char**)':
        float128.c:13: error: '__float128' does not name a type


Is there an easy solution to this?  I can make gccxml accept this
input by doing:

        steve@riemann{Testing}gccxml -D__float128=double float128.c 

But I'm afraid this will mess up the API of fftw output by gccxml.  Ideas?

Thanks,
-Steve


[1] 
https://buildd.debian.org/status/fetch.php?pkg=wrapitk-python&arch=i386&ver=3.20.1.2&stamp=1323582679

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.gccxml.org/mailman/listinfo/gccxml

Reply via email to