Help with mcmodel=medium
Orion Poplawski
orion@cora.nwra.com
Fri Jun 20 18:22:00 GMT 2008
Hello -
I'm dealing with an old Fortran code that statically declares its
arrays and we're now pushing beyond the 2GB data section limit. So,
we're attempting to compile with the medium memory model.
Unfortunately, we're running into trouble linking to the HDF 4
library. We're using pgf95 as our fortran compiler and gcc 4.1.1 as our
C compiler. Using '-mcmodel=medium' with pgf95 and "-fPIC
-mcmodel=medium" with gcc. During link we get:
/usr/bin/ld /usr/lib64/crt1.o /usr/lib64/crti.o
/nfs/local/pgi/linux86-64/7.1-6/libso/trace_init.o
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/crtbegin.o
/nfs/local/pgi/linux86-64/7.1-6/libso/f90main.o -m elf_x86_64
-dynamic-linker /lib64/ld-linux-x86-64.so.2
/nfs/local/pgi/linux86-64/7.1-6/lib/pgi.ld
-L/nfs/local/pgi/linux86-64/7.1-6/libso
-L/usr/pgi/7.1-6/share_objects/lib64
-L/nfs/local/pgi/linux86-64/7.1-6/lib -L/usr/lib64
-L/usr/lib/gcc/x86_64-redhat-linux/4.1.1 main.o io.o init_a1d.o
init_a3d.o init_con.o
/data/cora1/clouds/COMMAS.ag/nested_main/Solver/solver.a
/opt/local/netcdf-pgf64/lib/libnetcdff.a
/opt/local/netcdf-pgf64/lib/libnetcdf.a
/opt/local/hdf-pgf64-medium/lib/libdf.a -ljpeg -lz -rpath
/nfs/local/pgi/linux86-64/7.1-6/libso -rpath
/usr/pgi/7.1-6/share_objects/lib64 -rpath
/nfs/local/pgi/linux86-64/7.1-6/lib -o init -lpgf90 -lpgf90_rpm1
-lpgf902 -lpgf90rtl -lpgftnrtl -lnspgc -lpgc -lrt -lpthread -lm -lgcc
-lc -lgcc /usr/lib/gcc/x86_64-redhat-linux/4.1.1/crtend.o /usr/lib64/crtn.o
/opt/local/hdf-pgf64-medium/lib/libdf.a(dfsd.o): In function `DFSDgetdims':
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:244: relocation truncated to fit:
R_X86_64_PC32 against `.bss'
/opt/local/hdf-pgf64-medium/lib/libdf.a(dfsd.o): In function
`DFSDgetdatastrs':
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:315: relocation truncated to fit:
R_X86_64_PC32 against `.bss'
/opt/local/hdf-pgf64-medium/lib/libdf.a(dfsd.o): In function
`DFSDgetdimstrs':
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:389: relocation truncated to fit:
R_X86_64_PC32 against `.bss'
/opt/local/hdf-pgf64-medium/lib/libdf.a(dfsd.o): In function
`DFSDgetdatalen':
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:460: relocation truncated to fit:
R_X86_64_PC32 against `.bss'
/opt/local/hdf-pgf64-medium/lib/libdf.a(dfsd.o): In function
`DFSDgetdimlen':
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:508: relocation truncated to fit:
R_X86_64_PC32 against `.bss'
/opt/local/hdf-pgf64-medium/lib/libdf.a(dfsd.o): In function
`DFSDgetdimscale':
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:563: relocation truncated to fit:
R_X86_64_PC32 against `.bss'
/opt/local/hdf-pgf64-medium/lib/libdf.a(dfsd.o): In function `DFSDgetrange':
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:642: relocation truncated to fit:
R_X86_64_PC32 against `.bss'
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:655: relocation truncated to fit:
R_X86_64_PC32 against `.bss'
/opt/local/hdf-pgf64-medium/lib/libdf.a(dfsd.o): In function
`DFSDsetlengths':
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:747: relocation truncated to fit:
R_X86_64_PC32 against `.bss'
/opt/local/hdf-pgf64-medium/lib/libdf.a(dfsd.o): In function `DFSDsetdims':
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:798: relocation truncated to fit:
R_X86_64_PC32 against `.bss'
/scratch/orion/HDF4.2r3/hdf/src/dfsd.c:802: additional relocation
overflows omitted from the output
$ ld --version
GNU ld version 2.17.50.0.6-2.el5 20061020
Any ideas as to what is going on?
Thanks!
--
Orion Poplawski
Technical Manager 303-415-9701 x222
NWRA/CoRA Division FAX: 303-415-9702
3380 Mitchell Lane orion@cora.nwra.com
Boulder, CO 80301 http://www.cora.nwra.com
More information about the Binutils
mailing list