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