[Paraview] Intel Compiler errors out with libXML2 [PV310]

Mike Jackson imikejackson at gmail.com
Mon Jul 30 10:06:53 EDT 2007



On Jul 26, 2007, at 3:13 PM, clinton at elemtech.com wrote:

> On Tuesday 24 July 2007 3:15:49 pm Mike Jackson wrote:
>> I am trying to build ParaView 3-1-0 using the Intel Compiler (Vers
>> 9.x) on OS X (intel) 10.4.10. During linking I get the following
>> error:
>>
>> Linking C shared library ../../../bin/libvtklibxml2.dylib
>> xilibtool: executing 'libtool'
>> ld: Undefined symbols:
>> ___signbit
>> libtool: internal link edit command failed
>> make[2]: *** [bin/libvtklibxml2.pv3.1.dylib] Error 1
>> make[1]: *** [VTK/Utilities/vtklibxml2/CMakeFiles/vtklibxml2.dir/ 
>> all] Error
>> 2 make: *** [all] Error 2
>>
>> This otherwise compiles fine with the gcc included with OS X. Out of
>> curiosity I downloaded LibXML2 version 2..6.27 (of which the ParaView
>> version is based off) and successfully compiled and tested it using
>> the Intel Compiler.
>>
>> I am now guess that something went wrong when the LibXML2 sources  
>> were
>> changed to work with CMake/VTK/ParaView.
>>
>> Anyone have any idea? I grepped the sources for "signbit" and the  
>> only
>> close matches were in the "trio" sources, which are NOT compiled by
>> default. I did find one reference to "signbit" in the compiled object
>> file xpath.o. I looked through some of the sources of xpath.c/h and
>> some of those includes but nothing obvious popped out at me.
>
> xpath.c includes "trionan.c", which in turn includes triodef.h and  
> trionan.h
> That's how xpath.o gets it.
>
> So when you use diff, what changes were made to the code when put  
> into VTK?
> vtk_README.txt indicates some things were changed in the trio*.h  
> files, but
> doesn't say what.
>
> Clint
>
>

Just to follow up with this.. evidently 'signbit(...)' is implemented  
as an actual function in the 'imf' library that intel includes with  
their compiler where as in GCC it is implemented as a macro.  
Supposedly icc/icpc should be automatically linking against libimf  
but for some reason is not, at least not on my system. There is also  
a preprocessor constant '__PURE_SYS_C99_HEADERS__' that if defined  
will NOT use the intel supplied definitions and instead use the gcc  
definitions. By setting this I can get the xpath.c to compile.. and  
probably link at that point.

   I have submitted a request to intel to explain what I might be  
doing wrong so hopefully this can get worked out. For now I am going  
to just define __PURE_SYS_C99_HEADERS__ and see if I can get the rest  
of ParaView 3.1.0 to compile using icc/icpc.

-- 
Mike Jackson   Senior Research Engineer
Innovative Management & Technology Services




More information about the ParaView mailing list