Igor Schein on Fri, 16 Jul 1999 19:03:07 -0400


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

64bit executable under Solaris 2.7


Hi,

last few days I've been building 64bit gp version 2.0.16
under Solaris 2.7, and I thought I'd share my findings.

Using WorkShop 5.0 cc, I used configuration solaris-none,
CC="cc -xarch=v9" and OPTFLAGS="-fast -xarch=v9" (you need -xarch=v9
twice, because otherwise Configure won't figure out to use 87654321
for type long).  The following patch was needed because of a WorkShop
bug (Sun BugID #4254959, Gerhard)

--- src/basemath/trans3.c~	Tue Jun 29 08:12:58 1999
+++ src/basemath/trans3.c	Fri Jul 16 18:34:38 1999
@@ -398,7 +398,8 @@
   else
   { /* written by Manfred Radimersky */
     l  = lg(x);
-    n  = 3 * bit_accuracy(l) / 4;
+    n  = bit_accuracy(l);
+    n  = 3 * n / 4;
     y  = negr(x);
     if(gcmpgs(y, n) < 0) {
       p1 = p2 = p3 = y;

This following cosmetic patch cleans up a lone warning:

--- src/kernel/none/mp.c~	Tue Jun 29 08:11:22 1999
+++ src/kernel/none/mp.c	Fri Jul 16 18:45:42 1999
@@ -900,8 +900,9 @@
   z = z ^ (z<<16); /* or  z = z - (z<<16) */
 #ifdef LONG_IS_64BIT
   return s + tab[(z&0xffffffff)>>26];
-#endif
+else
   return tab[z>>26];
+#endif
 }
 
 GEN

Having done that, I encountered a bug in quadray()/quadhilbert() -
quadhilbert(777) raises SIGBUS.  However, it'll be extremely hard for
me to debug it, because gdb doesn't understand 64bit format, and I
don't have dbx.  A prospect of having to use adb gives me horror
chills. I'll listen for any useful suggestion, or for a volunteer
effort from any1 who has both Solaris 2.7 and dbx.

At the same time, I've been trying to build 64bit gp using egcs.
This has been a very messy experience, and I won't go into details,
unless some1 is interested.  The bottom line is I haven't succeeded.
I wanted though to express my gratitude to genius of Casper Dik for
his pointers ( as if he hasn't received enough praise all over the
world ) 

Thanks for listening.

Igor