I have a similar problem to Mr. Borg, who posted earlier today …
I am trying to compile an object (on a 64b linux machine) and link it with existing 32b .o’s and libs (compiled/linked on a different, 32b, machine). As expected, this doesn’t work. The path of least resistance that I’d like to follow is to compile my .o 32b and direct the linker to link it with the existing binaries in 32b mode. But I can’t seem to make this happen …
I tried the “-tp k8-32” option to pgf90 but got the following
/fs/opt/pgi/linux86/bin/pgf90 -g -fpic -g77libs -Mbackslash -Mpreprocess -tp k8-32 -I/fs/opt/pgi/linux86/include -I…/TEXT -I/fs/hseb.djs/ob81/ohd/ofs/inc -I/fs/hseb.djs/ob81/ohd/calb/inc -I/fs/hseb.djs/ob81/ohd/util/inc -I/fs/hseb.djs/ob81/ohd/ifp/inc -I/fs/hseb.djs/ob81/ohd/icp/inc -I/fs/hseb.djs/ob81/ohd/xsets/inc -I/fs/hseb.djs/ob81/ohd/xdat/inc -I/fs/hseb.djs/ob81/ohd/xnav/inc -I/fs/hseb.djs/ob81/ohd/idma/inc -I/fs/hseb.djs/ob81/ohd/ofsde/inc -c llgd.f
&& chmod 664 llgd.o
&& echo “o - llgd.o”
|| echo “e - llgd”
pgf90-Error–tp k8-32 not supported in this installation
Is this not the correct -tp option? A “uname -a” on my compilation (64b) system says
Linux cucharas.riverside.com 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:29:47 EST 2005 x86_64 x86_64 x86_64 GNU/Linux
A “file” on the object I generated says
llgd.o: ELF 64-bit LSB relocatable, AMD x86-64, version 1 (SYSV), not stripped
BTW, a “file” on a representative object I’m trying to link against (32b) says
ublock.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
I should probably note that I had some minor license issues, in that we had a 32b license and I just yesterday got a temp 64b license. Is it possible that my license doesn’t allow access to the 32b function of the compiler?
Thanks for any advice.