This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Help with mcmodel=medium
- From: Orion Poplawski <orion at cora dot nwra dot com>
- To: binutils at sourceware dot org
- Date: Fri, 20 Jun 2008 12:08:41 -0600
- Subject: Help with mcmodel=medium
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