bug-gnulib
[Top][All Lists]
Advanced

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

Re: m4-1.4.11: assert failure in two self tests on NetBSD


From: Bruno Haible
Subject: Re: m4-1.4.11: assert failure in two self tests on NetBSD
Date: Sun, 13 Apr 2008 02:32:25 +0200
User-agent: KMail/1.5.4

Thomas Klausner wrote:
> >   - In gdb of this test, compiled with CFLAGS=-g (no optimization):
> >     print mantissa
> >     print i
> >     print x
> >     print *(void*(*)[4])&mantissa
> >     print *(void*(*)[4])&x
> 
> (gdb) print mantissa
> $1 = 0.505
> (gdb) print i
> $2 = 1
> (gdb) print x
> $3 = 1.01
> (gdb) print *(void*(*)[4])&mantissa
> $4 = {0x8147ae147ae14800, 0x7f7ffdb13ffe, 0x0, 0x7f7ffdb10040}
> (gdb) print *(void*(*)[4])&x
> $5 = {0x8147ae147ae147ae, 0x3fff, 0xc000000000000000, 0xffff}

This means that the first loop iteration already introduced rounding errors.

> #if defined __x86_64__ && defined __GNUC__
> makes the failure go away.

Bingo!

I'm applying this:


2008-04-12  Bruno Haible  <address@hidden>

        * lib/fpucw.h: Enable the definitions also for x86_64.
        Needed for NetBSD/x86_64.
        Reported by Thomas Klausner <address@hidden>.

--- lib/fpucw.h.orig    2008-04-13 02:25:39.000000000 +0200
+++ lib/fpucw.h 2008-04-13 02:22:38.000000000 +0200
@@ -1,5 +1,5 @@
 /* Manipulating the FPU control word.
-   Copyright (C) 2007 Free Software Foundation, Inc.
+   Copyright (C) 2007-2008 Free Software Foundation, Inc.
    Written by Bruno Haible <address@hidden>, 2007.
 
    This program is free software: you can redistribute it and/or modify
@@ -61,7 +61,7 @@
  */
 
 /* Inline assembler like this works only with GNU C.  */
-#if defined __i386__ && defined __GNUC__
+#if (defined __i386__ || defined __x86_64__) && defined __GNUC__
 
 typedef unsigned short fpucw_t; /* glibc calls this fpu_control_t */
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]