Problem with new release of Fortran compiler on RS/6000
Wendy Ross
wross at caen.engin.umich.edu
Thu Feb 7 09:45:01 AEST 1991
Anyone else noticed a problem with newer Fortran compiler/library
when linking? skylab is running the older version; the program compiles
and links happily. elvedore is running the newer version; the compiler
bombs out at link time with unresolved symbols. The reason is that the
/usr/lib/libxlf.a library was changed between the two versions. When I
took the older version of the library and used it with the newer version
of the compiler, things worked fine.
The nitty gritty details are as follows:
OLDER VERSION OF FORTRAN:
skylab% lslpp -h
...
xlfrte.obj INACTIVE COMMIT 11/27/90 01.01.0000.0000 root
INACTIVE APPLY 11/27/90 01.01.0000.0001 root
ACTIVE COMMIT 11/27/90 01.01.0000.0001 root
xlfrtemEn_US.msg ACTIVE COMMIT 11/27/90 01.01.0000.0000 root
xlfcmp.obj INACTIVE COMMIT 11/27/90 01.01.0000.0000 root
INACTIVE APPLY 11/27/90 01.01.0000.0001 root
ACTIVE COMMIT 11/27/90 01.01.0000.0001 root
...
skylab% xlf /tmp/p.f
** main === End of Compilation 1 ===
** ttyint === End of Compilation 2 ===
** pttyin === End of Compilation 3 ===
1501-510 Compilation successful for file p.f.
skylab%
skylab% nm /usr/lib/libxlf.a | grep -i getenv
U getenv
00001b90 T .getenv
00001b90 t .getenv
00000378 d getenv
U .getenv
00000008 d .+GETENV_
00000000 T .getenv_
0000000c d GETENV_
00000000 D getenv_
U .getenv
00000000 D #GETENV
0000000c d #GETENV
00000000 T .#GETENV
00000008 d .+#GETENV
NEWER VERSION OF FORTRAN:
elvedore% lslpp -h
...
xlfrte.obj INACTIVE COMMIT 11/27/90 01.01.0000.0000 root
INACTIVE APPLY 11/27/90 01.01.0000.0001 root
INACTIVE COMMIT 11/27/90 01.01.0000.0001 root
INACTIVE APPLY 11/30/90 01.01.0001.0002 root
ACTIVE COMMIT 11/30/90 01.01.0001.0002 root
xlfrtemEn_US.msg ACTIVE COMMIT 11/27/90 01.01.0000.0000 root
xlfcmp.obj INACTIVE COMMIT 11/27/90 01.01.0000.0000 root
INACTIVE APPLY 11/27/90 01.01.0000.0001 root
INACTIVE COMMIT 11/27/90 01.01.0000.0001 root
INACTIVE APPLY 11/30/90 01.01.0001.0004 root
ACTIVE COMMIT 11/30/90 01.01.0001.0004 root
xlfcmpmEn_US.msg ACTIVE COMMIT 11/27/90 01.01.0000.0000 root
...
elvedore% xlf /tmp/p.f
** main === End of Compilation 1 ===
** ttyint === End of Compilation 2 ===
** pttyin === End of Compilation 3 ===
1501-510 Compilation successful for file p.f.
0706-317 ERROR: Unresolved or undefined symbols detected:
Symbols in error (followed by references) are
dumped to the load map.
.#GETENV
.#SIGNAL
elvedore%
elvedore% nm /usr/lib/libxlf.a | grep -i getenv
U getenv
00001b90 T .getenv
00001b90 t .getenv
00000370 d getenv
U ._getenv
00000008 d .+GETENV_
00000000 T .getenv_
0000000c d GETENV_
00000000 D getenv_
U ._getenv
00000008 d .+GETENV
00000000 T .getenv
0000000c d GETENV
00000000 D getenv
Where /tmp/p.f is as follows:
character*10 C
C
C integer getenv
C i=getenv('SHELL',C)
C
call getenv('SHELL',C)
write(6,'(a10)') C
call ttyint
pause
stop
end
subroutine ttyint
external pttyin
C IBMRS/6000
C call signal(2,pttyin)
C Apollos/Suns/Decs5000
integer signal
k=signal(2,pttyin,-1)
return
end
subroutine pttyin
write(6,'(a32)') '**** Interrupt signal caught ...'
write(6,*) 'enter a number'
read(5,*) i
write(6,*) 'number was ',i
return
end
Hello Austin???
Wendy Ross wross at caen.engin.umich.edu
Computer Aided Engineering Network
University of Michigan, Ann Arbor
<Insert amusing quip here>
More information about the Comp.unix.aix
mailing list