[ncl-install] Issues with building NCL 5.0.0 with Intel Compilers

Craig Tierney Craig.Tierney at noaa.gov
Thu Apr 10 14:15:29 MDT 2008


I am trying to get NCL 5.0.0 built on my cluster.  Here are the
specifics of my environment:

OS: Redhat RHEL 4.4
Kernel: 2.6.20.20
Arch: x86_64
Compiler: Intel 9.1 (eventually PGI 7.1-3)

I have worked through most of the issues, but I am still getting
stuck on some.

When first configuring the build, I copied config/LINUX.64.INTEL
to config/LINUX.  It appears that some of the options in this
file don't match the compiler I have.

Here are the changes I made to the LINUX.64.INTEL file.

[root at wfe0 ncl]# diff ncl_ncarg-5.0.0-intel91/config/LINUX ncl_ncarg-5.0.0/config/LINUX.64.INTEL
32,34c32,34
< #define CtoFLibraries   -lm
< #define CcOptions    -ansi
< #define FcOptions
---
 > #define CtoFLibraries   -lm -lifcore
 > #define CcOptions    -ansi -size_lp64
 > #define FcOptions     -size_lp64
41c41
< #define ArchRecLibSearch    -L/usr/X11R6/lib64
---
 > #define ArchRecLibSearch    -L/usr/X11R6/lib

Questions:

1) What is ifcore?
2) Why is -size_lp64 included?  Isn't this an Itanium option?
3) One option not shown here is the HdfDefines.  Why does
the x86_64 file have -DIA64?  Does that just mean 64-bit,
or should there be a different setting for x86_64?

After making those changes, I ran ./Configure.  I specified the
installation path and the packages I wanted to use.  The following
config/Site.local file was created.


-------------------------------------------------------
#ifdef FirstSite

#endif /* FirstSite */


#ifdef SecondSite

#define YmakeRoot /opt/ncl/5.0.0_intel_9.1

#define LibSearch -L/usr/X11R6/lib64 -L/opt/netcdf/3.6.1_intel_9.1/lib -L/opt/udunits/1.12.4/lib -L/opt/hdf4/2r1_intel_9.1/lib 
-L/opt/netcdf/3.6.1_intel_9.1/lib
#define IncSearch -I/usr/X11R6/include -I/opt/netcdf/3.6.1_intel_9.1/include -I/opt/udunits/1.12.4/include 
-I/opt/hdf4/2r1_intel_9.1/include -I/opt/netcdf/3.6.1_intel_9.1/include



#define BuildTRIANGLE FALSE
#define BuildHDFEOS FALSE
#define HDFEOSlib
#define BuildV5D FALSE
#define V5Dlib
#define BuildGRIB2 FALSE
-------------------------------------------------------


Including the paths to my packages solved many of my problems,
but a few exist.  The problems are listed below.  Any tips on fixing
them would be appreciated.

------------------------------------

Problem 1: Where is the function giargs?

icc -ansi  -O2    -o ictrans main.o ../../../.././ncarview/src/lib/libictrans/libictrans.o 
../../../.././ncarview/src/lib/libctrans/libctrans.o -L../../../.././ncarview/src/lib/libcgm -lcgm 
-L../../../.././ncarview/src/lib/libncarg_ras -lncarg_ras                         -L../../../.././common/src/libncarg_c -lncarg_c 
-L/opt/ncl/5.0.0_intel_9.1/lib -L/usr/X11R6/lib64 -L/opt/netcdf/3.6.1_intel_9.1/lib -L/opt/udunits/1.12.4/lib 
-L/opt/hdf4/2r1_intel_9.1/lib -L/opt/netcdf/3.6.1_intel_9.1/lib -lXpm -lX11 -lXext   -lmfhdf -ldf -ljpeg -lz -lm
../../../.././ncarview/src/lib/libictrans/libictrans.o(.text+0x6bd7): In function `giargs_':
: undefined reference to `for_cpystr'
make[5]: *** [ictrans] Error 1

-------------------------------------

Problem 2: I configured the build not to use the triangle software.  Why is it still referenced?

icc -ansi  -O2  -I../../../.././include -I/usr/X11R6/include -I/opt/netcdf/3.6.1_intel_9.1/include -I/opt/udunits/1.12.4/include 
-I/opt/hdf4/2r1_intel_9.1/include -I/opt/netcdf/3.6.1_intel_9.1/include  -DLinux    -DSYSV -D_POSIX_SOURCE -D_XOPEN_SOURCE 
-DByteSwapped -DNeedFuncProto    -c -o CnTriMeshRenderer.o CnTriMeshRenderer.c
CnTriMeshRenderer.c(34): catastrophic error: could not open source file "ncarg/hlu/triangle.h"
   #include <ncarg/hlu/triangle.h>
                                  ^

compilation aborted for CnTriMeshRenderer.c (code 4)
make[5]: *** [CnTriMeshRenderer.o] Error 4

-------------------------------------

Problem 3:  wrapit77 doesn't build correctly.

icc -ansi  -O2    -o wrapit77 y.tab.o lex.yy.o Symbol.o wrapit.o  -L/opt/ncl/5.0.0_intel_9.1/lib -L/usr/X11R6/lib64 
-L/opt/netcdf/3.6.1_intel_9.1/lib -L/opt/udunits/1.12.4/lib -L/opt/hdf4/2r1_intel_9.1/lib -L/opt/netcdf/3.6.1_intel_9.1/lib  -lfl
wrapit.o(.text+0x0): In function `yyparse':
: multiple definition of `yyparse'
y.tab.o(.text+0x0): first defined here
wrapit.o(.rodata+0x900): multiple definition of `yydefred'
y.tab.o(.rodata+0x900): first defined here
wrapit.o(.rodata+0xb40): multiple definition of `yysindex'
y.tab.o(.rodata+0xb40): first defined here
wrapit.o(.rodata+0x1220): multiple definition of `yycheck'
y.tab.o(.rodata+0x1220): first defined here
wrapit.o(.rodata+0xf60): multiple definition of `yytable'
y.tab.o(.rodata+0xf60): first defined here
wrapit.o(.rodata+0xd20): multiple definition of `yyrindex'
y.tab.o(.rodata+0xd20): first defined here
wrapit.o(.rodata+0x7e0): multiple definition of `yylen'
y.tab.o(.rodata+0x7e0): first defined here
wrapit.o(.bss+0x0): multiple definition of `theparam'
y.tab.o(.bss+0x0): first defined here
wrapit.o(.text+0x4da4): In function `CType':
: multiple definition of `CType'
y.tab.o(.text+0x4da4): first defined here
wrapit.o(.text+0x4e06): In function `WMakeListNode':
: multiple definition of `WMakeListNode'
y.tab.o(.text+0x4e06): first defined here
wrapit.o(.text+0x4e1c): In function `FType':
: multiple definition of `FType'
y.tab.o(.text+0x4e1c): first defined here
wrapit.o(.text+0x4e40): In function `NType':
: multiple definition of `NType'
y.tab.o(.text+0x4e40): first defined here
wrapit.o(.rodata+0x6c0): multiple definition of `yylhs'
wrapit.o(.rodata+0x6c0): multiple definition of `yylhs'
y.tab.o(.rodata+0x6c0): first defined here
wrapit.o(.rodata+0xf00): multiple definition of `yygindex'
y.tab.o(.rodata+0xf00): first defined here
wrapit.o(.rodata+0xae0): multiple definition of `yydgoto'
y.tab.o(.rodata+0xae0): first defined here
wrapit.o(.text+0x4fb0): In function `yyerror':
: multiple definition of `yyerror'
y.tab.o(.text+0x4fb0): first defined here
ld: skipping incompatible /usr/lib/libm.so when searching for -lm
ld: skipping incompatible /usr/lib/libm.a when searching for -lm
ld: skipping incompatible /usr/lib/libc.so when searching for -lc
ld: skipping incompatible /usr/lib/libc.a when searching for -lc
ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl
ld: skipping incompatible /usr/lib/libdl.a when searching for -ldl
ld: skipping incompatible /usr/lib/libc.so when searching for -lc
ld: skipping incompatible /usr/lib/libc.a when searching for -lc
y.tab.o(.text+0x536): In function `yyparse':
: undefined reference to `DoDimsizes'
y.tab.o(.text+0x570): In function `yyparse':
: undefined reference to `DoDimsizes'
y.tab.o(.text+0x5aa): In function `yyparse':
: undefined reference to `DoTotal'
y.tab.o(.text+0x640): In function `yyparse':
: undefined reference to `DoDimsizes'
y.tab.o(.text+0x67a): In function `yyparse':
: undefined reference to `DoDimsizes'
y.tab.o(.text+0x6b4): In function `yyparse':
: undefined reference to `DoTotal'
y.tab.o(.text+0x721): In function `yyparse':
: undefined reference to `DoDimsizes'
y.tab.o(.text+0x75b): In function `yyparse':
: undefined reference to `DoDimsizes'
y.tab.o(.text+0x795): In function `yyparse':
: undefined reference to `DoTotal'
y.tab.o(.text+0x7fe): In function `yyparse':
: undefined reference to `NewParamLoc'
y.tab.o(.text+0x811): In function `yyparse':
: undefined reference to `DoDimsizes'
y.tab.o(.text+0x871): In function `yyparse':

### Many more references like this deleted.

Thanks,
Craig

-- 
Craig Tierney (craig.tierney at noaa.gov)


More information about the ncl-install mailing list