Compilation on IBM Power7 and AIX 6.1


  • Guest -
I'm getting the following error when compiling nwchem 6.0 on an IBM Power 7 machine running AIX 6.1 with xlf version 13.1 and xlc version 11.1.

ld: 0711-317 ERROR: Undefined symbol: .slamch_
ld: 0711-317 ERROR: Undefined symbol: .slaset_
ld: 0711-317 ERROR: Undefined symbol: .sspsvx_
ld: 0711-317 ERROR: Undefined symbol: .sgesvd_
ld: 0711-317 ERROR: Undefined symbol: .cheev_
ld: 0711-317 ERROR: Undefined symbol: .ssyev_
ld: 0711-317 ERROR: Undefined symbol: .slascl_
ld: 0711-317 ERROR: Undefined symbol: .sgebal_
ld: 0711-317 ERROR: Undefined symbol: .slacpy_
ld: 0711-317 ERROR: Undefined symbol: .sorghr_

  • Guest -
The command I used for compilation is
gmake USE_64TO32=y HAS_BLAS=yes BLASOPT="-lessl -lmass"
I've tried using BLASOPT="-L/usr/lib -lessl -lmass" with the same result

I've setup the following variables before compilation

export PATH=/usr/vacpp/bin:$PATH
export LARGE_FILES=TRUE
export LIB_DEFINES=-DDFLT_TOT_MEM=16777216
export NWCHEM_TOP=/usr/local/packages/nwchem/6.0
export NWCHEM_TARGET=LAPI64
export NWCHEM_MODULES="all"
export MPI_INCLUDE=/usr/lpp/ppe.poe/include
export MPI_LIB=/usr/lpp/ppe.poe/lib
export LIBMPI="-binitfini:poe_remote_main -lmpi_r -lvtd_r -I/usr/lpp/ssp/css/include -llapi_r -lpthreads -L/usr/lpp/ppe.poe/lib/threads -L/usr/lpp/ppe.poe/lib -L/usr/lpp/ppe.poe/lib/ip "
export USE_OLDAIO=y

I've tried compilation by linking to lapack and blas which I compiled on said machine. I've also tried compiling using
gmake USE_64TO32=y
all options result in the same error while linking to the blas libraries.

Appreciate all the help and advice I can get. I have the make logs and loadmap files if anyone wants to take a look at it.

Thanks
Alex

Forum Vet
Alex,

Can you check if sgesvd_ is actually in the essl library you are linking against (and if it has the underscore at the end)?

Bert

Quote: May 2nd 1:12 pm
The command I used for compilation is
gmake USE_64TO32=y HAS_BLAS=yes BLASOPT="-lessl -lmass"
I've tried using BLASOPT="-L/usr/lib -lessl -lmass" with the same result

I've setup the following variables before compilation

export PATH=/usr/vacpp/bin:$PATH
export LARGE_FILES=TRUE
export LIB_DEFINES=-DDFLT_TOT_MEM=16777216
export NWCHEM_TOP=/usr/local/packages/nwchem/6.0
export NWCHEM_TARGET=LAPI64
export NWCHEM_MODULES="all"
export MPI_INCLUDE=/usr/lpp/ppe.poe/include
export MPI_LIB=/usr/lpp/ppe.poe/lib
export LIBMPI="-binitfini:poe_remote_main -lmpi_r -lvtd_r -I/usr/lpp/ssp/css/include -llapi_r -lpthreads -L/usr/lpp/ppe.poe/lib/threads -L/usr/lpp/ppe.poe/lib -L/usr/lpp/ppe.poe/lib/ip "
export USE_OLDAIO=y

I've tried compilation by linking to lapack and blas which I compiled on said machine. I've also tried compiling using
gmake USE_64TO32=y
all options result in the same error while linking to the blas libraries.

Appreciate all the help and advice I can get. I have the make logs and loadmap files if anyone wants to take a look at it.

Thanks
Alex

  • Guest -
And, you did a "gmake 64_to_32" before the "gmake USE_64TO32..." command?!

Bert

Quote:Bert May 2nd 9:59 pm
Alex,

Can you check if sgesvd_ is actually in the essl library you are linking against (and if it has the underscore at the end)?

Bert

Quote: May 2nd 1:12 pm
The command I used for compilation is
gmake USE_64TO32=y HAS_BLAS=yes BLASOPT="-lessl -lmass"
I've tried using BLASOPT="-L/usr/lib -lessl -lmass" with the same result

I've setup the following variables before compilation

export PATH=/usr/vacpp/bin:$PATH
export LARGE_FILES=TRUE
export LIB_DEFINES=-DDFLT_TOT_MEM=16777216
export NWCHEM_TOP=/usr/local/packages/nwchem/6.0
export NWCHEM_TARGET=LAPI64
export NWCHEM_MODULES="all"
export MPI_INCLUDE=/usr/lpp/ppe.poe/include
export MPI_LIB=/usr/lpp/ppe.poe/lib
export LIBMPI="-binitfini:poe_remote_main -lmpi_r -lvtd_r -I/usr/lpp/ssp/css/include -llapi_r -lpthreads -L/usr/lpp/ppe.poe/lib/threads -L/usr/lpp/ppe.poe/lib -L/usr/lpp/ppe.poe/lib/ip "
export USE_OLDAIO=y

I've tried compilation by linking to lapack and blas which I compiled on said machine. I've also tried compiling using
gmake USE_64TO32=y
all options result in the same error while linking to the blas libraries.

Appreciate all the help and advice I can get. I have the make logs and loadmap files if anyone wants to take a look at it.

Thanks
Alex

  • Guest -
Compiling lapack and blas with the -qextname flag solved the problem. The object files in essl did not have the underscore. Compiling nwchem without the -qEXTNAME flag gave another set of errors and I wouldn't recommend that route.

Alex

Quote:Bert May 2nd 9:59 pm
Alex,

Can you check if sgesvd_ is actually in the essl library you are linking against (and if it has the underscore at the end)?

Bert

Quote: May 2nd 1:12 pm
The command I used for compilation is
gmake USE_64TO32=y HAS_BLAS=yes BLASOPT="-lessl -lmass"
I've tried using BLASOPT="-L/usr/lib -lessl -lmass" with the same result

I've setup the following variables before compilation

export PATH=/usr/vacpp/bin:$PATH
export LARGE_FILES=TRUE
export LIB_DEFINES=-DDFLT_TOT_MEM=16777216
export NWCHEM_TOP=/usr/local/packages/nwchem/6.0
export NWCHEM_TARGET=LAPI64
export NWCHEM_MODULES="all"
export MPI_INCLUDE=/usr/lpp/ppe.poe/include
export MPI_LIB=/usr/lpp/ppe.poe/lib
export LIBMPI="-binitfini:poe_remote_main -lmpi_r -lvtd_r -I/usr/lpp/ssp/css/include -llapi_r -lpthreads -L/usr/lpp/ppe.poe/lib/threads -L/usr/lpp/ppe.poe/lib -L/usr/lpp/ppe.poe/lib/ip "
export USE_OLDAIO=y

I've tried compilation by linking to lapack and blas which I compiled on said machine. I've also tried compiling using
gmake USE_64TO32=y
all options result in the same error while linking to the blas libraries.

Appreciate all the help and advice I can get. I have the make logs and loadmap files if anyone wants to take a look at it.

Thanks
Alex


Forum >> NWChem's corner >> Compiling NWChem