Load order problem with ioinit() in F77 libraries
Donn Seeley
donn at sdchema.UUCP
Fri Feb 24 11:44:04 AEST 1984
Subject: Load order problem with ioinit() in F77 libraries
Index: usr.lib/libI77/ioinit.f 4.2BSD
Description:
The new F77 I/O library routine ioinit() is very useful but
unfortunately it has the problem that it wants to use
subroutines from the run-time library, and the run-time
library is loaded ahead of the I/O library.
Repeat-By:
If you compile the program 'iotest.f' as in the script below,
you get the results shown:
----------------------------------------------------------------
% cat iotest.f
c
c iotest.f -- check load order of ioinit()
c
logical n
logical ioinit
n = ioinit( .true., .false., .false., 'FORT', .false. )
stop
end
% f77 -O iotest.f
iotest.f:
MAIN:
Undefined:
_i_len
_i_indx
_lnblnk_
_s_cmp
_s_copy
%
----------------------------------------------------------------
More complex programs probably don't have this problem -- they
load all of the routines needed by ioinit() anyway, because
they need them elsewhere. However a reasonably complex program
which one of our users was trying to bring up still failed to
load a few of the required routines.
Fix:
I scratched my head with this one. I have decided not to offer
a real fix and let the authorities decide how to deal with it.
There are a number of conceptual problems (e.g, ioinit.f is
supposed to be a model F77 subroutine, but it won't work in the
F77 I/O library because it calls run-time subroutines like any
good F77 program should, so perhaps it should be rewritten in
C; or perhaps the run-time and I/O libraries should get loaded
together; etc.). A hack that makes the problem go away is the
following:
----------------------------------------------------------------
# cd /usr/lib
# ar xv libI77.a ioinit.o
x - ioinit.o
# ar rv libF77.a ioinit.o
a - ioinit.o
# ranlib libF77.a
# rm ioinit.o
----------------------------------------------------------------
Donn Seeley UCSD Chemistry Dept. ucbvax!sdcsvax!sdchema!donn
32 52' 30"N 117 14' 25"W (619) 452-4016 sdcsvax!sdchema!donn at noscvax
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list