[comp.lang.fortran] Problem with multiple definitions of

rhl@grendel.Princeton.EDU (Robert Lupton (the Good)) (06/13/91)

(On a sparc 1 running f77 1.3.1 with the 16kby-write bug fix installed)

One of our users has discovered that the programme

	read(5,*) r
	end

if compiled and then linked -Bstatic generates doubly defined externals,
with a conflict between /lib/libc.a and /usr/lanf/SC0.0/cg87/libm.a. A
workaround is to link with
	-Bstatic -L/usr/lib /usr/lang/SC0.0/cg87/libm.a
but I am unhappy.

Any Ideas?

			Robert

(The -v -V compilation trace follows:

f77 -c -g -V tst.f
version-id of "/usr/lang/SC0.0/f77pass1":            SC0.0	f77 1.3.1 FCS	90/06/25
/usr/lang/SC0.0/f77pass1 -g "-P -cg87" tst.f /tmp/f77pass1.14713.s.0.s \
			/tmp/f77pass1.14713.i.1.s /tmp/f77pass1.14713.d.b2.s
tst.f:
 MAIN:
version-id of "/usr/lang/SC0.0/as":                  SC0.0		90/02/12
/usr/lang/SC0.0/as -o tst.o -Q -cg87 /tmp/f77pass1.14713.s.0.s \
			/tmp/f77pass1.14713.i.1.s /tmp/f77pass1.14713.d.2.s
rm /tmp/f77pass1.14713.s.0.s
rm /tmp/f77pass1.14713.i.1.s
rm /tmp/f77pass1.14713.d.2.s
f77 -v -y__unpack_double -o tst tst.o -Bstatic
/bin/ld -y__unpack_double -dc -dp -e start -u _MAIN_ -X -o tst \
	/usr/lang/SC0.0/crt0.o /usr/lang/SC0.0/cg87/_crt1.o \
	-L/usr/lang/SC0.0/cg87 -L/usr/lang/SC0.0 tst.o -Bstatic -lF77 -lm -lc
/usr/lang/SC0.0/cg87/libm.a(pack_float.o): reference to external undefined \
								__unpack_double
/usr/lang/SC0.0/cg87/libm.a(_unpack_dble.o): definition of external text \
								__unpack_double
/lib/libc.a(double_decim.o): reference to external undefined __unpack_double
ld: /lib/libc.a(_unpack_dble.o): __class_quadruple: multiply defined
/lib/libc.a(_unpack_dble.o): __class_double: multiply defined
/lib/libc.a(_unpack_dble.o): __fp_normalize: multiply defined
/lib/libc.a(_unpack_dble.o): __fp_leftshift: multiply defined
/lib/libc.a(_unpack_dble.o): __fp_set_exception: multiply defined
/lib/libc.a(_unpack_dble.o): definition of external text __unpack_double
/lib/libc.a(_unpack_dble.o): __unpack_double: multiply defined
*** Error code 2
make: Fatal error: Command failed for target `Tst'

)




-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Robert Lupton                                           rhl@astro.princeton.edu

khb@chiba.Eng.Sun.COM (Keith Bierman fpgroup) (06/14/91)

In article <10716@idunno.Princeton.EDU> rhl@grendel.Princeton.EDU (Robert Lupton (the Good)) writes:

...

	   read(5,*) r
	   end

fixed in v1.4

f.f:
 MAIN:
$ f77v1.3 -g -Bstatic f.f
f.f:
 MAIN:
ld: /lib/libc.a(_unpack_dble.o): __class_quadruple: multiply defined
/lib/libc.a(_unpack_dble.o): __class_double: multiply defined
/lib/libc.a(_unpack_dble.o): __fp_normalize: multiply defined
/lib/libc.a(_unpack_dble.o): __fp_leftshift: multiply defined
/lib/libc.a(_unpack_dble.o): __fp_set_exception: multiply defined
/lib/libc.a(_unpack_dble.o): __unpack_double: multiply defined
$ f77 -g -V f.f
version-id of "/home1/compilers/SC1.0/f77pass1":     SC1.0 Fortran V1.4 1Mar1991
/home1/compilers/SC1.0/f77pass1 -g "-P -cg87" f.f /tmp/f77pass1.01826.s.0.s /tmp/f77pass1.01826.i.1.s /tmp/f77pass1.01826.d.2.s
f.f:
 MAIN:
version-id of "/home1/compilers/SC1.0/as":           SC1.0	1Mar1991
/home1/compilers/SC1.0/as -o f.o -Q -cg87 /tmp/f77pass1.01826.s.0.s /tmp/f77pass1.01826.i.1.s /tmp/f77pass1.01826.d.2.s
rm /tmp/f77pass1.01826.s.0.s
rm /tmp/f77pass1.01826.i.1.s
rm /tmp/f77pass1.01826.d.2.s
version-id of "/bin/ld":                             Unknown
/bin/ld -dc -dp -e start -u _MAIN_ -X -o a.out /home1/compilers/SC1.0/crt0.o /home1/compilers/SC1.0/cg87/_crt1.o -L/home1/compilers/SC1.0/cg87 -L/home1/compilers/SC1.0 f.o -lg -lF77 -lm -lc
rm f.o
$ f77 -g -V -Bstatic f.f
version-id of "/home1/compilers/SC1.0/f77pass1":     SC1.0 Fortran V1.4 1Mar1991
/home1/compilers/SC1.0/f77pass1 -g "-P -cg87" f.f /tmp/f77pass1.01834.s.0.s /tmp/f77pass1.01834.i.1.s /tmp/f77pass1.01834.d.2.s
f.f:
 MAIN:
version-id of "/home1/compilers/SC1.0/as":           SC1.0	1Mar1991
/home1/compilers/SC1.0/as -o f.o -Q -cg87 /tmp/f77pass1.01834.s.0.s /tmp/f77pass1.01834.i.1.s /tmp/f77pass1.01834.d.2.s
rm /tmp/f77pass1.01834.s.0.s
rm /tmp/f77pass1.01834.i.1.s
rm /tmp/f77pass1.01834.d.2.s
version-id of "/bin/ld":                             Unknown
/bin/ld -dc -dp -e start -u _MAIN_ -X -o a.out /home1/compilers/SC1.0/crt0.o /home1/compilers/SC1.0/cg87/_crt1.o -L/home1/compilers/SC1.0/cg87 -L/home1/compilers/SC1.0 -Bstatic f.o -lg -lF77 -lm -lc
rm f.o
$ 
--
----------------------------------------------------------------
Keith H. Bierman    keith.bierman@Sun.COM| khb@chiba.Eng.Sun.COM
SMI 2550 Garcia 12-33			 | (415 336 2648)   
    Mountain View, CA 94043