Hola Gang,

I'm attempting to get PV 4.4.0 builds of Paraview against Intel 14 and 15 on our HPC systems. One item that some users have asked us for was the Cosmotools integration. This ultimately needs the Qhull library to be built. Builds against GCC 4.8.2 went through without a hitch. However the Intel builds all failed with an odd cryptic syntax error message that I do not fully comprehend (sorry I'm still stuck in Fortranistan).

Building CXX object CMakeFiles/qhullcpp.dir/src/libqhullcpp/Coordinates.cpp.o In file included from /tmp/conega/BUILD/lightshow/paraview-4.4.0-osmesa/intel-15_openmpi-1.6.5/BUILD01/qhull/src/qhull/src/libqhull/poly2.c(16): /tmp/conega/BUILD/lightshow/paraview-4.4.0-osmesa/intel-15_openmpi-1.6.5/BUILD01/qhull/src/qhull/src/libqhull/qhull_a.h(106): warning #77: this declaration has no storage class or type specifier
  template <typename T>
  ^

In file included from /tmp/conega/BUILD/lightshow/paraview-4.4.0-osmesa/intel-15_openmpi-1.6.5/BUILD01/qhull/src/qhull/src/libqhull/poly2.c(16): /tmp/conega/BUILD/lightshow/paraview-4.4.0-osmesa/intel-15_openmpi-1.6.5/BUILD01/qhull/src/qhull/src/libqhull/qhull_a.h(106): error: expected a ";"
  template <typename T>
           ^
From what little I understand of C and C++, I believe that "templates" are a C++ construct. I'm thinking the Intel compiler is attempting to digest the above as "straight-up C" and failing.

The error messages put the blame on QHULL_SRC_ROOT/src/libqhull/qhull_a.h around line 105

I then decided to snoop on github.com for another qhull repo. I found one
at

https://github.com/qhull/qhull

From which I believe the "https://github.com/mathstuf/qhull next branch" repo that Paraview wants to use was forked from.

Point being that the mainline non-forked Qhull has something different in the preprocessor conditional surrounding the above offensive line of source:

#if defined(__cplusplus) && defined(__INTEL_COMPILER) && !defined(QHULL_OS_WIN)

while the mathstuf/qhull repo DOES NOT have the above "defined(__cplusplus)" preproc conditional.

I tested to see if the addition would at least allow the 'mathstuf/qhull next branch' source to properly build with Intel 14 and 15. It got about to 36% and then failed with the error message:

In file included from /tmp/conega/qhull_SRC/src/libqhullcpp/QhullIterator.h(13),
from /tmp/conega/qhull_SRC/src/libqhullcpp/Coordinates.h(13),
from /tmp/conega/qhull_SRC/src/libqhullcpp/Coordinates.cpp(11):
/tmp/conega/qhull_SRC/src/libqhull/qhull_a.h(106): error: this declaration may not have extern "C" linkage
  template <typename T>
  ^

So at least the conditional helped a bit for what I believe is the "straight up C" part of the build.


I'll CC the author of the fork Ben Boeckel about this.
--
!   Giovanni "Vann" Cone
!   LANL HPC-3 Consultant
!   TA-3, BLDG 2327, RM 1128
!   Schedule B
!...............................
!   I fight for the users!
END OF LINE
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Search the list archives at: http://markmail.org/search/?q=ParaView

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/paraview

Reply via email to