[RFC] Full float128, third iteration

Angelo Graziosi angelo.graziosi@alice.it
Fri Sep 10 15:31:00 GMT 2010


Il 10/09/2010 9.57, FX ha scritto:
>> Now, libquad builds[*] OB on Cygwin :-)
>
> Thanks for the feedback.
>
>> Just a question: Should we use a recent GCC also for the last step ('Patch GCC, configure it with --with-quad=/foo')? I forgot to use CC='gcc-4.6' ./configure... and I am building with gcc-4.3.4 :(
>
> No, as usual you can build GCC itself with whatever compiler you have around.

Perhaps we have some problem on Cygwin.

As I wrote libquad build OB on Cygwin. I have build it with:

$ CC='gcc-4.6' ./configure --prefix=/foo && make && make install

in which

$ gcc-4.6 -v
Using built-in specs.
COLLECT_GCC=gcc-4.6
COLLECT_LTO_WRAPPER=/usr/local/gfortran/libexec/gcc/i686-pc-cygwin/4.6.0/lto-wrapper.exe
Target: i686-pc-cygwin
Configured with: /tmp/gcc-4.6-20100904/configure 
--prefix=/usr/local/gfortran --program-suffix=-4.6 
--enable-languages=c,c++,fortran --enable-checking=release 
--enable-threads=posix --enable-libgomp --disable-bootstrap 
--disable-libmudflap --disable-shared
Thread model: posix
gcc version 4.6.0 20100904 (experimental) (GCC)

Then I have patched the source of the above GCC (gcc-4.6-20100904) and 
the patches 'full_testing_3.diff' apply successfully.

So I have rebuild (both with gcc-4.3.4 and gcc-4.6-20100904) without 
problems GCC-4.6-20100904 adding '--with-quad',

$ gcc-4.6 -v
Using built-in specs.
COLLECT_GCC=/usr/local/gfortran/bin/gcc-4.6
COLLECT_LTO_WRAPPER=/usr/local/gfortran/bin/../libexec/gcc/i686-pc-cygwin/4.6.0/lto-wrapper.exe
Target: i686-pc-cygwin
Configured with: /tmp/gcc-4.6-20100904/configure 
--prefix=/usr/local/gfortran --program-suffix=-4.6 
--enable-languages=c,c++,fortran --enable-checking=release 
--enable-threads=posix --enable-libgomp --with-quad=/foo 
--disable-bootstrap --disable-libmudflap --disable-shared
Thread model: posix
gcc version 4.6.0 20100904 (experimental) (GCC)

Finally I tried to test:

$ cat test_qp.f90
program test_qp
   implicit none
   integer, parameter :: QP = 16
   real(QP) :: x = 0.124_QP
   print *, x,precision(x),digits(x)
end program test_qp

$ gfortran-4.6 -Wall test_qp.f90 -o test_qp
/usr/local/gfortran/bin/../lib/gcc/i686-pc-cygwin/4.6.0/../../../libgfortran.a(write.o):(.text$write_float+0x1fc): 
undefined reference to `_libgfortran_dtoaq'
/usr/local/gfortran/bin/../lib/gcc/i686-pc-cygwin/4.6.0/../../../libgfortran.a(read.o):(.text$__gfortrani_convert_real+0x95): 
undefined reference to `_libgfortran_strtopQ'
collect2: ld returned 1 exit status

(I have also tried adding '-L/foo/lib -lquad' and '/foo/bin' to PATH)

What have I done of wrong?

Ciao,
Angelo.



More information about the Fortran mailing list