Fix for PR 15235 libgfortran doesn't build on Solaris
Rainer Orth
ro@TechFak.Uni-Bielefeld.DE
Tue May 18 18:15:00 GMT 2004
Tobias Schlüter writes:
> And here's the patch which uses isnan, to be applied in libgfortran/io.
> I verified that NaNs are now also handled correctly.
>
> Could you please try how far you get with it?
The situation is somewhat mixed now:
* On Solaris 10, most execution tests fail due to link failures:
__builtin_isnan is missing. This is a bug in Sun's <iso/math_c99.h>
which doesn't work with non-Sun C99 compilers. Apart from reporting this
to Sun, this is fixincludes material.
* On Solaris 8, this problem is gone since the system headers don't support
C99, but I get tons of link failures nonetheless, e.g.
FAIL: gfortran.fortran-torture/execute/a_edit_1.f90 compilation, -O0
Undefined first referenced
symbol in file
expf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
cosf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
atan2f /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
sqrtf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
coshf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
nextafterf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
sinf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
round /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
scalbnf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
atanf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
roundf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
log10f /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
logf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
sinhf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
acosf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
frexpf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
copysignf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
tanf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
tanhf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
asinf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
hypotf /amnt/figaro/volumes/obj-gcc/gcc/obj.sol2/gcc-3.5.0-20040517/8-gcc/sparc-sun-solaris2.8//libgfortran/.libs/libgfortran.so
ld: fatal: Symbol referencing errors. No output written to /vol/gcc/obj/gcc-3.5.0-20040517/8-gcc/gcc/testsuite/a_edit_1.x
collect2: ld returned 1 exit status
As I said before, libgfortran cannot unconditionally use C99 functions
without checking for their existance and provide an alternative.
Rainer
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
More information about the Fortran
mailing list