[ncl-install] multiple definition of `abgcdp' during NCL build
Slatest, Leonard A
slatest at bnl.gov
Wed Jan 30 17:06:50 MST 2008
Hi. I am installing ncl_ncarg-5.0.0 on the front end node (fen) of our
Blue Gene/L (SUSE Linux with powerpc chip). I get these messages during
the build:
: multiple definition of `abgcdp'
: multiple definition of `adgcdp'
Here is a more extended excerpt for the first of these messages, from a
transcript of my build:
************************************************************************
*********
xlc -qstrict -qfullpath -qmaxmem=-1 -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -O3 -o ncl Ncl.o io.o NclHLUObj.o scanner.o
parser.o MathFuncs.o NclTypedouble.o NclTypefloat.o
NclTypeint.o NclTypelogical.o NclTypelong.o
NclTypeobj.o NclTypeshort.o NclTypestring.o
NclTypebyte.o NclTypechar.o TypeSupport.o
NclMultiDValData.o AddFileFormats.o AttSupport.o DataSupport.o
FileSupport.o Formats.o GetGrids.o InitData.o
Memory.o NclAtt.o NclCCM.o NclCoordVar.o NclData.o
NclFile.o NclFileVar.o NclGRIB.o NclHDF.o
NclMultiDValnclfileData.o NclNetCdf.o
NclOneDValCoordData.o NclType.o NclTypelist.o
NclVar.o VarSupport.o ctoiee.o date.o qu2reg3.o
rowina3.o scm0.o ncepcode.o NclGRIB2.o AddBuiltIns.o AddHLUObjs.o
AddIntrinsics.o Execute.o Machine.o OpsFuncs.o
Printtoken.o SrcTree.o Symbol.o Translate.o
NclHLUVar.o HLUSupport.o NclMultiDValHLUObjData.o
BuiltInSupport.o BuiltInFuncs.o HLUFunctions.o
yywrap.o craybin.o complete.o editline.o sysunix.o
ListSupport.o NclList.o NclMultiDVallistData.o
fortranio.o -L../../.././ni/src/lib/nfp -lnfp
-L../../.././ni/src/lib/nfpfort -lnfpfort -L../../.././ni/src/lib/hlu
-lhlu -L../../.././ncarg2d/src/libncarg -lncarg
-L../../.././ncarg2d/src/libncarg_gks -lncarg_gks
-L../../.././common/src/libncarg_c -lncarg_c -L../../.././ngmath/src/lib
-lngmath -L/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/lib
-L/usr/X11R6/lib -L/opt/ibmmath/lib
-L/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/g2clib-1.0.5
-L/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/udunit-fen-final
/udunits-1.12.4/lib
-L/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/netcdf-final/net
cdf-3.6.2/lib
-L/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/jasper-1.900.1/l
ib
-L/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/hdf4-o3qstrict/H
DF4.2r1/mfhdf/libsrc
-L/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/hdf4-o3qstrict/H
DF4.2r1/hdf/src -lnetcdf -lmfhdf -ldf -ljpeg -lz -ludunits -lgrib2c
-ljasper -L../../.././external/sphere3.1_dp -lsphere3.1_dp
-L../../.././external/fftpack5_dp -lfftpack5_dp
-L../../.././external/lapack -llapack_ncl -L../../.././external/blas
-lblas_ncl -lX11 -lXext -L/opt/ibmcmp/xlf/bg/10.1/lib -lxlfmath -lxlf90
-lm -lm -ldl
../../.././ni/src/lib/hlu/libhlu.a(SphericalGeometry.o)(.text+0x0): In
function `abgcdp':
: multiple definition of `abgcdp'
../../.././ni/src/lib/nfpfort/libnfpfort.a(sg_tools.o)(.text+0x1b80):
first defined here
/usr/bin/ld: Warning: size of symbol `abgcdp' changed from 284 in
../../.././ni/src/lib/hlu/libhlu.a(SphericalGeometry.o) to 260 in
../../.././ni/src/lib/hlu/libhlu.a(SphericalGeometry.o)
************************************************************************
********
This multiple definition evidently arises because of the combination of
the following in libnfpfort.a (specifically the sg_tools.f contribution
to that library ):
DOUBLE PRECISION FUNCTION ABGCDP (AQDP,BQDP,CQDP)
and the following in libhlu.a (the SphericalGeometry.c contribution to
that library):
double abgcdp(double*,double*,double*);
I read the following in the NCL install doc file:
*********************************************************************
If, however, your compiler does not append an underscore (the IBM
xlf/xlf90 compilers are
two such examples), then you need to set this macro as follows:
NgCallF reg
********************************************************************
Regarding that, I had confirmed earlier in the build process that the
$NCARG/config file that the build uses is "LINUX":
SYSTEM_INCLUDE = "LINUX"
and NgCallF is in fact set correctly in that file. (My LINUX file is
listed in its entirety below).
So I'm puzzled by the multiple definition error. I've googled this but
can't find anyone who has obtained this particular
multiple definition error.
A second question: I thought the LINUX file that I had constructed (see
below), derived from templates in the NCL distribution, would do a
32-bit build, yet in the build transcript I still see -Dppc64 in some
spots, e.g. in the following build session excerpt. Why is -Dppc64 being
used in the build, or is there some reason I shouldn't worry about it? :
************************************************************************
**********************************
make[5]: Entering directory
`/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/ncl_ncarg-5.0.0/n
carview/src/lib/libncarg_ras'
makedepend -s "# DO NOT DELETE" -- -I../../../.././include
-I/usr/X11R6/include -I/opt/ibmmath/include
-I/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/g2clib-1.0.5
-I/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/udunit-fen-final
/udunits-1.12.4/include
-I/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/netcdf-final/net
cdf-3.6.2/include
-I/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/jasper-1.900.1/i
nclude
-I/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/hdf4-o3qstrict/H
DF4.2r1/hdf/src
-I/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/hdf4-o3qstrict/H
DF4.2r1/mfhdf/libsrc -DBuildRasterHDF -D_IBMR2 -DBuildRasterHPPCL
-DBuildRasterNrif -DBuildRasterSun -DBuildRasterXWD
-DBuildRasterAVS -DBuildRasterSGI -DBuildRasterAbekas
-DBuildRasterBinary -DBuildRasterYUV -DNGTMPDIR='"tmp"'
-Dppc64 -DIBM -DSYSV -D_POSIX_SOURCE -D_XOPEN_SOURCE -DNeedFuncProto --
raster.c cleartext.c error.c misc.c palette.c dither.c
resample.c composite.c ntsc.c color.c rasterop.c generic.c
memory.c hdf.c hppcl.c nrif.c sunraster.c xwd.c avsraster.c
sgiraster.c abekas.c binary.c yuv.c
************************************************************************
*******************************
Some more background information:
I'm building everything to run on the fen, not the compute nodes, i.e.
I'm using native compilers, not cross compilers. Also, the fen has a
64-bit architecture and
the build I am attempting is a 32-bit build. I previously did 32-bit
builds for the external software e.g. HDF4 .
I set the following variables prior to the build:
export F77=xlf
export FC=xlf
export F90=xlf90
export CXX=xlC
export CC=xlc
export NCARG=/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict
and the library and include paths respectively that I provided during
the configure are:
/usr/X11R6/lib
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/g2clib-1.0.5
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/udunit-fen-final/u
dunits-1.12.4/lib
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/netcdf-final/netcd
f-3.6.2/lib
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/jasper-1.900.1/lib
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/hdf4-o3qstrict/HDF
4.2r1/mfhdf/libsrc
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/hdf4-o3qstrict/HDF
4.2r1/hdf/src/
and
/usr/X11R6/include
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/g2clib-1.0.5
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/udunit-fen-final/u
dunits-1.12.4/include
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/netcdf-final/netcd
f-3.6.2/include
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/jasper-1.900.1/inc
lude
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/hdf4-o3qstrict/HDF
4.2r1/hdf/src
/gpfs/scratch2/slatest/ncl_ncar_5.0.0-final-o3qstrict/hdf4-o3qstrict/HDF
4.2r1/mfhdf/libsrc
My complete LINUX file appears below. Do you see any changes I should
make?
Thanks,
Len (slatest at bnl.gov)
Here is the complete LINUX file:
*
* $Id: LINUX.ppc64.xl,v 1.1 2007/10/06 02:05:31 haley Exp $
*/
/***********************************************************************
*
*
*
* Copyright (C) 2005
*
* University Corporation for Atmospheric Research
*
* All Rights Reserved
*
*
*
************************************************************************
/
/*
* File: LINUX.ppc32
*
* Author: Richard Grubin
* National Center for Atmospheric Research
* PO 3000, Boulder, Colorado
*
* Date: Sun May 1 16:56:33 MDT 2005
*
* Description: This file contains all the directives needed to
* tell ymake how to build NCAR Graphics on a PPC 32-bit LINUX
* system using the xlf/xlc compilers
*/
#define HdfDefines -D_IBMR2
#define StdDefines -DSYSV -D_POSIX_SOURCE -D_XOPEN_SOURCE
#define CCompiler xlc
#define FCompiler xlf
#define CcOptions -qstrict -qfullpath -qmaxmem=-1
#define FcOptions -qstrict -qfullpath
#define LdCommand ld -melf32ppc
#define LdRelCommand ld -melf32ppc
#define ArCommand ar
#define COptimizeFlag -O3
#define FOptimizeFlag -O3
#define Cstatic -bnso
#define Cdynamic -bso
#define CtoFLibraries -L/opt/ibmcmp/xlf/bg/10.1/lib -lxlfmath -lxlf90
-lm
#define NgCallF reg
#define CppCommand '/usr/bin/cpp -traditional'
#define XToolLibrary -lXt -lSM -lICE
#define BuildShared NO
#define XLibrary -lX11 -lXext
#define ArchRecLibSearch -L/usr/X11R6/lib
#define ArchRecIncSearch -I/usr/X11R6/include
/*************** Redefine Macros from Rules
********************************/
/*
* Macro: MakeDir
*
* Description: This rule creates a directory - if a parent dir doesn't
exist
* it attempts to create it.
*/
#ifndef MakeDir
#define MakeDir(dir) @if (test ! -d dir); then ($(MKDIRHIER) dir); fi
#endif
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-install/attachments/20080130/c9c02b5e/attachment-0001.html
More information about the ncl-install
mailing list