[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