[ncl-install] Error compiling Ictranc

Craig Tierney Craig.Tierney at noaa.gov
Wed Apr 16 12:01:51 MDT 2008


Mary Haley wrote:
> 
> Craig,
> 
> Even though ifcore is a Fortran library, you still need it
> in order to resolve the symbols for ictrans. This kind of thing
> can happen when you have C programs calling Fortran routines, and
> vice versa, which is the case for ictrans and just about everything
> else in NCAR Graphics and NCL source code.
> 
> You should still be able to link against ifcore, even though it's a
> Fortran library. As Rick pointed out, you need to tell the C compiler
> where this library can be found by using the "-L" option.
> 
> Usually, though, if you are using ifort and icc, I'm surprised that
> "icc" doesn't automatically know where to find this library, unless
> icc and ifort were installed separately of each other, and are unaware
> of each other's existence, so to speak.
> 

Mary,

I understand the linking issues between Fortran and C.  Intel provides
different packages for ifort and icc (and always have).  I don't even
think you can purchase them together.

I am not trying to figure out how to fix my build.  What I want make
sure that with 5.X comes out, that the NCL build process does the right
thing and I don't have to worry about this issue in the future.

Craig


> --Mary
> 
> 
> On Wed, 16 Apr 2008, Craig Tierney wrote:
> 
>> Rick Grubin wrote:
>>> Hi Tristan
>>>
>>>> I 'm trying to compile NCL 5.0 with Intel Fortan & C compiler.  Idt 
>>>> doesn't display anything (just say "translator aborted"). Seem that's
>>>> something wrong about 'ictrans'.
>>>>
>>>> Indeed ictrans's compilation crash with "(.text+0x6eb5): undefined 
>>>> reference to `for_cpystr`"
>>>
>>> 'for_cpystr' is a symbol from the Intel Fortran compiler's library 
>>> 'libifcore'
>>>
>>>> Intel(R) C Compiler for applications running on IA-32, Version 10.1
>>>> Build 20070913 Package ID: l_cc_p_10.1.008
>>>> Intel(R) Fortran Compiler for applications running on IA-32, Version
>>>> 10.1    Build 20070913 Package ID: l_fc_p_10.1.008
>>>> [...]
>>>>
>>>> icc -mp -ansi  -O    -o ictrans main.o
>>>> [...] -L/opt/1/intel_cc_10.1/ia32/lib -lcxa -lifcore -lcprts -lm
>>>>
>>>> ../../../.././ncarview/src/lib/libictrans/libictrans.o: In function
>>>> `giargs_':
>>>> (.text+0x6eb5): undefined reference to `for_cpystr'
>>>> [...]
>>>> CTOFLIBS    = -L/opt/1/intel_cc_10.1/ia32/lib -lcxa -lifcore -lcprts 
>>>> -lm
>>>
>>> It would appear that you've done this, based on the output from the 
>>> compilation and your Makefile.  Could you
>>> please send along your 'LINUX' config file, located in: 
>>> /path/to/ncl_source_code/ncarg/config/LINUX ?
>>>
>>> Also, as was pointed out to me by a user, strictly speaking, the 
>>> references to libraries 'cxa' and 'cprts' are not
>>> necessary, but shouldn't hurt either.
>>>
>>> One other thing to verify, as we cannot duplicate your host here, is 
>>> that there is indeed a 'libifcore.a' located
>>> in  /opt1/intel_cc_10.1/ia32/lib  --  that directory seems, by its 
>>> name, to refer to the Intel C compiler library, and
>>> 'libifcore.a' is an Intel Fortran compiler library.  Is there a 
>>> directory similarly named that refers to the Fortran compiler
>>> present in /opt1 ?
>>>
>>
>> I am having this same problem.  I was talking offline with Mary about
>> this.  The library libifcore.a is a fortran library, not a C library.  In
>> Intel compiler versions 8 through 10 (didn't check back further), it is
>> not included in the C compiler.  One solution to this problem is to
>> replace the linker icc with "ifort -nofor-main".
>>
>>
>> Craig
>>
>>
>>
>>
>>> ----   Rick Grubin      NCAR/TDD/CISL/VETS
>>> Visualization + Enabling Technologies
>>> grubin at ucar.edu             303.497.1832
>>>
>>>
>>> _______________________________________________
>>> ncl-install mailing list
>>> ncl-install at ucar.edu
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-install
>>
>>
>> -- 
>> Craig Tierney (craig.tierney at noaa.gov)
>> _______________________________________________
>> ncl-install mailing list
>> ncl-install at ucar.edu
>> http://mailman.ucar.edu/mailman/listinfo/ncl-install
>>


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


More information about the ncl-install mailing list