u502sou@mpirbn.mpifr-bonn.mpg.de (Ignatios Souvatzis) (06/12/91)
The ISIS V2.1 makefile(s) test for a list of machines (excluding the DECstations I am using), to decide whether they should generate the fortran interface. Has anybody ported the interface to the DECstation? Ignatios Souvatzis -- Paper mail: Ignatios Souvatzis, Radioastronomisches Institut der Universitaet Bonn, Auf dem Huegel 71, D-5300 Bonn 1, FRG Internet: u502sou@mpirbn.mpifr-bonn.mpg.de souva@babsy.mpifr-bonn.mpg.de
ken@CS.Cornell.EDU (Ken Birman) (06/13/91)
In article <U502SOU.91Jun12111749@mpirbn.mpifr-bonn.mpg.de> souva@babsy.mpifr-bonn.mpg.de writes: >Has anybody ported the F77 interface to the DECstation? I tested this at Cornell recently and ran into some minor problems. I am sure that F77 won't work with the V2.1 version of Fortran but it should be ok under V3.0. The problems I saw were clearly not major things and if you need to get ISIS fortran running under a Decstation I wouldn't expect it to be a very difficult task. -- Kenneth P. Birman E-mail: ken@cs.cornell.edu 4105 Upson Hall, Dept. of Computer Science TEL: 607 255-9199 (office) Cornell University Ithaca, NY 14853 (USA) FAX: 607 255-4428
ken@CS.Cornell.EDU (Ken Birman) (06/14/91)
In article <U502SOU.91Jun12111749@mpirbn.mpifr-bonn.mpg.de> souva@babsy.mpifr-bonn.mpg.de writes: >Has anybody ported the F77 interface to the DECstation? I tested further and the main problem may be in the DEC optimizer and not in the fortran port itself. When I compiled with -O, things blow up, but when I recompiled flib1.c and flib2.c without -O, it was fine. I was able to isolate the following simple test program that illustrates the compiler bug. If you look at the assembler code produced, you will see that the compiler decided to eliminate the code to save the result from the call to "def" and leaves it in a register, but then uses that register as a temporary storage place when computing the somewhat messy expression right after the call to def() in procedure abc(). Unfortunately, this is the expression generated by the ENDFROMFORTRAN macro... I don't know if this affects anything else in ISIS. I hope not! /* Convince a skeptic that DEC code optimizer has a bug */ #include <stdio.h> int save, i; int j; main() { j = abc(1234); printf("After call: should be 9876, got %d\n", j); } abc(x) { char *rval, *def(); save = i; i |= 0x100; rval = def(x); i = (i&~0x100) | (save&0x100); return (int)rval; } char * def(x) { return((char*)9876); } -- Kenneth P. Birman E-mail: ken@cs.cornell.edu 4105 Upson Hall, Dept. of Computer Science TEL: 607 255-9199 (office) Cornell University Ithaca, NY 14853 (USA) FAX: 607 255-4428