Moi!

In gcc, there has been a strange bug in at least the whole 3.x series
that prevents compiling OpenDX on ia64 (cf. gcc bug #8407). No fix is
known yet, as far as I can tell. There is, however, a simply workaround
that avoids the bug. Not sure whether you want to apply such kludges to
the mainline sources, but here it is. As vendors started shipping
Itanium(2)-based graphics workstations, this might even affect a few
people. (I've also got a workaround for build problems on m68k sitting
in my local patch set, but I doubt it's of any pratical relevance.)

Regards,

Daniel.

---------------------
PatchSet 548 
Date: 2003/07/14 11:07:43
Author: kobras
Branch: HEAD
Tag: (none) 
Log:
Workaround for gcc bug #8407 on ia64. [dk]

Members: 
        src/exec/dxmods/_newtri.c:1.1->1.2 

Index: debian/dx/src/exec/dxmods/_newtri.c
diff -u debian/dx/src/exec/dxmods/_newtri.c:1.1 
debian/dx/src/exec/dxmods/_newtri.c:1.2
--- debian/dx/src/exec/dxmods/_newtri.c:1.1     Thu Aug 24 22:04:16 2000
+++ debian/dx/src/exec/dxmods/_newtri.c Mon Jul 14 12:07:43 2003
@@ -1943,8 +1943,8 @@
         np ++;
     else if (det01p == 0)
     {
-       e0 = v0;
-       e1 = v1;
+       memcpy(&e0, &v0, sizeof(Point2));
+       memcpy(&e1, &v1, sizeof(Point2));
         nz ++;
     }
     else 
@@ -1955,8 +1955,8 @@
         np ++;
     else if (det12p == 0)
     {
-       e0 = v1;
-       e1 = v2;
+       memcpy(&e0, &v1, sizeof(Point2));
+       memcpy(&e1, &v2, sizeof(Point2));
         nz ++;
     }
     else 
@@ -1967,8 +1967,8 @@
         np ++;
     else if (det20p == 0)
     {
-       e0 = v2;
-       e1 = v0;
+       memcpy(&e0, &v2, sizeof(Point2));
+       memcpy(&e1, &v0, sizeof(Point2));
         nz ++;
     }
     else 

Reply via email to