tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: PR/38359 CVS commit: src/gnu/dist/gcc4/gcc/config/m68k



On May 2,  8:45pm, tsutsui%ceres.dti.ne.jp@localhost (Izumi Tsutsui) wrote:
-- Subject: Re: PR/38359 CVS commit: src/gnu/dist/gcc4/gcc/config/m68k

| I wrote:
| 
| > Now sun2 build on alpha fails in libm by SIGFPE of lint, though..
| 
| Here is more details:
| ---
| #   compile  libm/catan.ln
| CC=/usr/src/obj.sun2/tooldir.NetBSD-4.99.62-alpha/bin/m68010--netbsdelf-gcc \
| /usr/src/obj.sun2/tooldir.NetBSD-4.99.62-alpha/bin/m68010--netbsdelf-lint \
| -chapbxzFS -d /usr/src/obj.sun2/destdir.sun2/usr/include  -D_MULTI_LIBM \
| -D_POSIX_MODE -DLIBM_SCCS -I/usr/src/lib/libm/gen    -i \
| /usr/src/lib/libm/complex/catan.c
| m68010--netbsdelf-lint: \
| 
/usr/src/obj.sun2/tooldir.NetBSD-4.99.62-alpha/libexec/m68010--netbsdelf-lint1 \
| got signal 8
| 
| *** Failed target:  catan.ln
| *** Failed command: \
| CC=/usr/src/obj.sun2/tooldir.NetBSD-4.99.62-alpha/bin/m68010--netbsdelf-gcc \
| /usr/src/obj.sun2/tooldir.NetBSD-4.99.62-alpha/bin/m68010--netbsdelf-lint \
| -chapbxzFS -d /usr/src/obj.sun2/destdir.sun2/usr/include -D_MULTI_LIBM \
| -D_POSIX_MODE -DLIBM_SCCS -I/usr/src/lib/libm/gen -i \
| /usr/src/lib/libm/complex/catan.c
| *** Error code 1
| 
| Stop.
| nbmake: stopped in /usr/src/lib/libm
| # gdb /usr/src/obj.sun2/tools/lint1.NetBSD-4.99.62-alpha/lint1 
obj.sun2/m68010--netbsdel.core
| GNU gdb 6.5
| Copyright (C) 2006 Free Software Foundation, Inc.
| GDB is free software, covered by the GNU General Public License, and you are
| welcome to change it and/or distribute copies of it under certain conditions.
| Type "show copying" to see the conditions.
| There is absolutely no warranty for GDB.  Type "show warranty" for details.
| This GDB was configured as "alpha--netbsd"...
| Reading symbols from /usr/lib/libz.so.1...done.
| Loaded symbols for /usr/lib/libz.so.1
| Reading symbols from /usr/lib/libm.so.0...done.
| Loaded symbols for /usr/lib/libm.so.0
| Reading symbols from /usr/lib/libc.so.12...done.
| Loaded symbols for /usr/lib/libc.so.12
| Reading symbols from /usr/libexec/ld.elf_so...done.
| Loaded symbols for /usr/libexec/ld.elf_so
| Core was generated by `m68010--netbsdel'.
| Program terminated with signal 8, Arithmetic exception.
| #0  0x0000000120018d34 in build (op=<value optimized out>, ln=0x1fffffc6c, 
|     rn=0x1fffffcd8)
|     at /usr/src/tools/lint1/../../usr.bin/xlint/lint1/tree.c:2948
| 2948                    v->v_ldbl = l + r;
| (gdb) 
| 

Well, if the alpha is supposed to run by default in ieee mode, the following
program shows that the exception bits are not set, and so it is not supposed
to be signalling FPE. Anyway, I will fix lint.

#include <stdio.h>
#include <ieeefp.h>

int
main(int argc, char *argv[])
{
        fp_except e = fpgetmask();
#ifdef FP_X_INV
        if (e & FP_X_INV)
                printf("invalid ");
#endif
#ifdef FP_X_DNML
        if (e & FP_X_DNML)
                printf("denormalized ");
#endif
#ifdef FP_X_DZ
        if (e & FP_X_DZ)
                printf("zerodivide ");
#endif
#ifdef FP_X_OFL
        if (e & FP_X_OFL)
                printf("overflow ");
#endif
#ifdef FP_X_UFL
        if (e & FP_X_UFL)
                printf("underflow ");
#endif
#ifdef FP_X_IMP
        if (e & FP_X_IMP)
                printf("imprecise ");
#endif
        printf("\n");   
        return 0;
}

christos


Home | Main Index | Thread Index | Old Index