sjm100@csc.anu.edu.au (03/28/91)
I have a question about Fortran 1.3.1 and shared libraries. Of course, I'm trying to make executable images smaller as they are ridiculously huge with SunOS. By the way we are running SunOS4.1 on SPARCstations. My problem is this : when I try the example as given in the SUN Fortran Users Guide (release 16 March 1990) I find it gives incorrect results, and the executable is not a single bytes smaller. Firstly, perhaps someone can tell me if there is a bug in Fortran 1.3 that precludes the use of shareable libraries? If it is meant to work then why does the following program fail and why is the executable the same size with and without shareable libraries. Here is the source code : File : tessharmain.f common /grp/ a,b,c a = 1.0 b = 2.0 call printgrp end File : blkgrp.f blockdata blkgrp common /grp/ a,b,c data a,b,c /3*9.9/ end File : printgrp.f subroutine printgrp common /grp/ a,b,c write(*,'(3f4.1)') a,b,c return end I do the following : f77 -c -pic *.f ar cv libblkgrp.sa.1.1 blkgrp.o ranlib libblkgrp.sa.1.1 ld -o libblkgrp.so.1.1 -assert pure-text printgrp.o f77 testsharmain.o libblkgrp.so.1.1 Then running it : a.out 1.0 2.0 0.0 This is wrong it should be : 1.0 2.0 9.9 - which the non-shareable version does give. Any ideas? Stephen Meatheringham Applications Programmer Mt. Stromlo Observatory CANBERRA, ACT, AUSTRALIA internet : sjm@merlin.anu.edu.au