Re: building ictrans on SGI Itanium2 running Redhat 9 Kernal 2.4.2

From: Rick Grubin <grubin_at_nyahnyahspammersnyahnyah>
Date: Tue, 20 Jun 2006 10:08:52 -0600

Hello DG,

Please let me begin by stating that my access to the Intel compiler
suite is limited to a SuSE (v9.2) Linux cluster, rather than an
Itanium host, and the compiler version (for all) is v9.0. That said...

To add a bit on to what Mary has said:

>> I have built NCAR graphics on an HP Opteron Linux machine (not a
>> desktop), but seem to have problems building NCAR graphics on an
>> SGI Linux Itanium2 machine (not a desktop).
>>
>> The section from my make-output with the error is:
>>
>> Making install in ./ncarview/src/bin/ictrans
>> make[5]: Entering directory `/hafs7/ncar/Distribution/temp/
>> ncarg-4.4.1/ncarview/src/bin/ictrans'
>> 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/app/ncar/
>> platform/ncar4.4.1/1/1.altix/ncarg/lib -L/usr/X11R6/lib -L/opt/
>> intel_fc_80/lib -L/usr/lib -L/usr/include -lX11 -lXext -lm -
>> lifcore ../../../.././ncarview/src/lib/libcgm/libcgm.a(meta_edit.o)
>> (.text+0x35d2):
>>
>> In function `CGM_initMetaEdit':
>> : the use of `mktemp' is dangerous, better use `mkstemp'
>> /opt/intel_fc_80/lib/libifcore.so.6: undefined reference to
>> `__cxa_end_catch'
>> /opt/intel_fc_80/lib/libifcore.so.6: undefined reference to
>> `std::terminate()'
>> /opt/intel_fc_80/lib/libifcore.so.6: undefined reference to
>> `__intel_personality_routine'
>> /opt/intel_fc_80/lib/libifcore.so.6: undefined reference to
>> `__cxa_begin_catch'
>> make[5]: *** [ictrans] Error 1
>>
>
> It looks like you may be missing a system compiler library. The
> undefined symbols "__cxa_begin_catch" are not coming from NCAR
> Graphics, but rather your "libifcore" library. I googled this
> symbol, and it seems like it might be in the libstdc++ library.
> Try to find this library on your system, and then do an "nm" on it
> to see if the symbol is defined:
>
> nm libstdc++.so | grep __cxa_end_catch
>
> If it is, then edit the config file you are using in $NCARG/
> config, add "-lstdc++" after "-lifcore", and rerun "make Everything".

The symbols '__cxa_begin_catch' and '__cxa_end_catch' can be found in
the Intel C and Fortran compiler libraries libcprts.a and libcxa.a.
Both of these libraries should be accessed at compile/link time by
the compiler without you having to specify them in your build.
However, you can specify them if you wish in your $NCARG/config/LINUX
file.

I note that the build is using the Intel C/C++ compiler 'icc' but
you're specifying what I think is the Intel Fortran library directory
'/opt/intel_fc_80/lib.' As I suspect this is compiler version 8.x (I
don't have experience with this), it may be that '...fc...' specifies
both C and Fortran libraries in one spot. Even so, please follow
Mary's suggestion and find out which of your compiler libraries
specify the missing '__cxa...' symbols.

The undefined reference to 'std::terminate()' would indeed come from
a C++ library, and I'm not sure why this would come into play. My
understanding of the Intel compiler workings (again, v9.0) is that
when 'icc' is invoked, it accesses C++ libraries only when C++ source
code is specified as something to be compiled. There's nothing
within NCAR Graphics generally and ictrans/idt specifically that is C+
+ code. I would suspect that either something is wrong with your
compiler installation (doubtful) or the NCAR Graphics configuration
is somehow confused. You might try linking with libstdc++ and see
what happens. Look for it in places such as /usr/lib, /usr/lib/64 or
similar.

Lastly, the symbol '__intel_personality_routine' is, as best I can
tell, a vendor- and hardware-specific compiler/assembler routine
created for each function in source code. The limited information I
found via a web search didn't detail anything more. I have forwarded
this bit on to some folks here at NCAR who may have seen this before
(no guarantees).

In the meantime, try the above suggestions from Mary and me,
reconfigure/remake and please let us know what happens. Apologies
for being somewhat vague, but it can be difficult to debug something
that we can't duplicate hardware/compiler/software-wise. We will do
our best.

-Rick.

----
Rick Grubin      NCAR/CISL/SCD/VETS
Visualization + Enabling Technologies
grubin_at_ucar.edu             303.497.1832
Received on Tue Jun 20 2006 - 10:08:52 MDT

This archive was generated by hypermail 2.2.0 : Tue Jun 20 2006 - 16:39:11 MDT