buc@jessica.stanford.edu (Robert Richards) (10/20/90)
Trying to port a fairly large statistical package (TSP, about 450 subroutines) over from a VAX to a DECStation 3100 using f77 2.1 (and ld 4.4). The port has worked to other Unix systems. The following problems occur. 1. "a large common placed in gp area because also defined as small common ..." This apparently occurs because the named COMMON blocks are not the same length in every subroutine. Strictly speaking, the code violates the f77 standard in this regard, but every other Fortran compiler/linker used has been able to handle this. The result is that when one run's the program, variables in the named COMMON blocks do not retain their values. For example, in fresh.f, one initialize's /IOCOM/ OUNIT to 6, but in other subroutines, OUNIT has the value 0 (without ever being intentionally modified by my code). In the previous version, it was somewhat worse, because OUNIT would be set to random large values which would cause crashes when the code tried to WRITE to OUNIT as a Fortran i/o unit. 2. "gp relocation out-of-range in .text section for relocation entry ___ for .... ___. (for non .sdata or .sbss symbol)" messages for about 5 subroutines. Any ideas on these problems?