[Pw_forum] AMD64 opteron pgi linker warning
aaron at nemo.physics.ncsu.edu
aaron at nemo.physics.ncsu.edu
Wed Aug 11 13:24:43 CEST 2004
Hi all,
We are having a problem with a linker warning and spurious results in
cp.x. The problem is described below, and was alluded to in the thread
dated Tue, 13 Apr 2004 for pw.x entitled "AMD64 and IFC ... and PGI":
Having a terrible time compiling our application using pgi
compilers on
AMD64 Opteron. Trying to compile just for single processor (no MPI) we
get warnings like the following:
/usr/bin/ld: Warning: alignment 16 of symbol `timex_mod_1_' in modules.o
is smaller than 32 in cplib.o
/usr/bin/ld: Warning: alignment 16 of symbol `cell_base_2_' in
../Modules/cell_base.o is smaller than 32 in cplib.o
/usr/bin/ld: Warning: alignment 16 of symbol `control_flags_2_' in
../Modules/control_flags.o is smaller than 32 in cplib.o
/usr/bin/ld: Warning: alignment 16 of symbol `control_flags_0_' in
../Modules/control_flags.o is smaller than 32 in cplib.o
/usr/bin/ld: Warning: alignment 16 of symbol `electrons_base_0_' in
../Modules/electrons_base.o is smaller than 32 in cplib.o
The application builds and runs, however we get very unexpected results.
Trying to clear warnings to eliminate unexpected results.
We suspect misalignment may be giving incorrect numerical results.
We have tried -Mcache_align.
Are there other flags to set?
Here is our make.sys
# make.sys. Generated from make.sys.in by configure.
CC = pgcc
CCFLAGS = -fast $(DFLAGS) $(IFLAGS)
# See include/defs.h.README for a list of precompilation options
# (possible arguments to -D or -U) and their meaning
DFLAGS = -D__LINUX64 -D__PGI -D__FFTW -D__USE_INTERNAL_FFTW
IFLAGS = -I. -I../include -I../Modules -I../PW -I../PH
CPP = cpp
CPPFLAGS = -P -traditional $(DFLAGS) $(IFLAGS)
F77 = pgf77
F90 = pgf90
FFLAGS = -fast -r8
F77FLAGS = $(FFLAGS) $(IFLAGS)
F90FLAGS = $(FFLAGS) $(DFLAGS) $(IFLAGS)
F77FLAGS_NOOPT = -O0
LD = pgf90
LDFLAGS = $(LIBOBJS) $(LIBS)
LIBOBJS = ../flib/ptools.a ../flib/flib.a ../clib/clib.a
# LIBS must contain the location of all needed external libraries
LIBS = -llapack -lblas
# MYLIB can be one of the following (depending on LIBS):
# blas : compile the local copy of blas routines
# lapack : compile the local copy of lapack routines
# blas_and_lapack : all of the above - use this for a quick test
# or if you don't have an optimized blas/lapack library
# lapack_ibm : compile only lapack routines not present in IBM ESSL
# use this together with IBM ESSL
# lapack_t3e : compile only lapack routines not present in T3E scilib
# use this together with T3E scilib
# lapack_mkl : compile only lapack routines not present in Intel MKL
# use this together with Intel MKL
MYLIB =
AR = ar
ARFLAGS = ruv
Please help!
Thanks in Advance,
Lee Atkinson,
More information about the users
mailing list