I am trying to compile one program package on the Opteron using pgf90 compiler. If the tp=k8-32 flag is used, everything is OK. But when the tp=k8-64 flag is used, two different linker warnings are displayed:
usr/bin/ld: Warning: alignment 16 of symbol
pghpf_type_' in /usr/pgi/linux86/5.2/lib/libpgf902.a(const.o) is smaller than 32 in mc.o 2. /usr/bin/ld: warning: i386:x86-64 architecture of input file mc.o’ is incompatible with i386 output
(and more similar messages as the second one for each f90 file)
There is one message of type 1 and several of type 2 (for each f90 file compiled).
The makefile used is given below:
ARCH = LINUX
SER_DEFINES = -D$(ARCH)
CSER_DEFINES = -D$(ARCH)
PAR_DEFINES = -D$(ARCH) -D_PAR_
PAR2_DEFINES = -D$(ARCH) -D_PAR2_
SER_XLF = pgf90
SER_XLFLINK = $(SER_XLF) -Wl,-Bstatic
PAR_XLF = $(SER_XLF)
PAR_XLFLINK = mpif90 -Wl,-Bstatic
FOPT = -O3 -Mfree -tp=k8-64
FSERFLAG = $(SER_DEFINES) $(FOPT)
FPARFLAG = $(PAR_DEFINES) $(FOPT)
FPAR2FLAG = $(PAR2_DEFINES) $(FOPT)
XLC = cc
COPT = -O
CFLAG = $(CSER_DEFINES) $(COPT)
The fortran 90 code includes also some c statements for parallel executable generation:
#if defined (PAR)
Using -m64 flag does not help.
Pure f90 programs compile smoothly using k8-64 flag and run considerably faster than their k8-32 generated counterparts.
The OS is Fedora Core 2 x86-64.
What flags should be used ?