[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20040312: Problem building netCDF library using intel ifort(1)



Sebastien,

> To: address@hidden
> cc: Sebastien THEETTEN <address@hidden>
> From: Sebastien THEETTEN <address@hidden>
> Subject: Pbm in building netcdf lib using intel ifort
> Organization: IFREMER
> Keywords: 200403111016.i2BAGvrV024118

The above message contained the following:

> I am having problems building the NetCDF library version 3.5.1
> withIntel "ifort" 8.0 compiler.
> 
> I follow this procedure :
> 
> 1. Go to the top-level source directory.
> 
> 2. setting the environment variables :
>           setenv CC gcc 
>           setenv CPPFLAGS "-DNDEBUG -DpgiFortran"
>           setenv CFLAGS -O
>           setenv FC ifort 
>           setenv F90 ifort 
>           setenv FLIBS "-Vaxlib" 
>           setenv FFLAGS "-O -mp -dynamic-libcxa -cm -w95" 

The above settings worked for Hernan G. Arango, whose email exchange with
us can be seen at

    http://www.unidata.ucar.edu/glimpsedocs/ghnetcdf.html

by searching for 

    200403031657.i23GvurV004025

> 3. Execute the configure script. Redirect its standard output 
>     and standard error to the file "configure.log"
> ./configure > & configure.log
> 
> 4. Execute the command "make install". Redirect its standard output
>    and standard > error to the file "install.log".
>  make install >& install.log
> 
> 
> 
> A. uname -a
> 
> Linux kaaba 2.4.20-8smp #1 SMP Thu Mar 13 17:45:54 EST 2003 i686 i686 
> i386 GNU/Linux
> 
> B. file VERSION
> 3.5.1
> 
> C. The file "macros.make"
> See attached file
> 
> D. The absolute pathnames of all compilers
> [theetten@kaaba ~]$ which ifort
> /opt/intel_fc_80/bin/ifort
> [theetten@kaaba ~]$ which gcc
> /usr/bin/gcc
> [theetten@kaaba ~]$ which c++
> /usr/bin/c++
> 
> E. The file "configure.log"
> See attached file

The file "configure.log" indicated that there was no C type equivalent
to a Fortran "byte":

> checking if Fortran "byte" is C "signed char"... no
> checking if Fortran "byte" is C "short"... no
> checking if Fortran "byte" is C "int"... no
> checking if Fortran "byte" is C "long"... no

This is bad because it means that the Fortran netCDF interface will not
be able to use the netCDF library (which is implemented in C).

The reason the "configure" script couldn't find an equivalent type is
in the file "config.log":

> configure:1922: checking if Fortran "byte" is C "signed char"
> configure:1931: gcc -c -DNDEBUG -DpgiFortran -O conftest.c
> configure:1933: ifort -O -mp -dynamic-libcxa -cm -w95 -c conftestf.f
> ifort: Command line warning: ignoring option '-dy'; no argument required
> configure:1935: ifort -o conftest -O -mp -dynamic-libcxa -cm -w95  
> conftestf.o conftest.o -Vaxlib 
> ifort: Command line warning: ignoring option '-dy'; no argument required
> configure:1937: ./conftest
> ./conftest: error while loading shared libraries: libcxa.so.5: cannot open 
> shared object file: No such file or directory

It appears that your ifort(1) compiler doesn't understand the
"-dynamic-libcxa" option.  This is odd because that option did work for
Hernan.

What version is your ifort(1) compiler?  Could it be older or newer than
the one that Hernan used?

According to the ifort(1) documentation, is there a substitute option
for "-dynamic-libcxa"?  If so, then you should reattempt building after
executing a "make distclean".

Apparently, ifort(1) couldn't load library "libcxa.so.5".  Should this
library exist?  If so, why doesn't it?

Can you bring these matters to the attention of the system administrator
for your system?

Regards,
Steve Emmerson