Hi Hong, Can you share all of the CMake variables regarding Fortran and Phasta Coprocessing you might have hand set during the superbuild process? I'm trying to compare to a successful non-superbuild Fortran copro install on my workstation.
Thanks, Mark > -----Original Message----- > From: [email protected] [mailto:paraview- > [email protected]] On Behalf Of Hong Yi > Sent: Monday, September 09, 2013 12:06 PM > To: Benson Muite; [email protected] > Subject: Re: [Paraview] Errors when linking catalyst in ParaView version 4.0.1 > to, simulation code on Titan (Hong Yi) > > Thanks for the useful info, Benson. I did what you suggested and now > superbuild can find MPI_FORTRAN. However, > FortranCInterface_GLOBAL_FOUND variable is zero, so I still got the warning > "No FortranCInterface mangling known for coprocessorinitialize" during the > build. Did you get that error also? I have not found where > FortranCInterface_GLOBAL_FOUND variable is set in CMake yet, so have no > exact clue on why this variable is zero (i.e., why FortranCInterface_GLOBAL is > not found). Have to dig in deeper to see what else I need to set for > superbuild to find FortranCInterface, but let me know if you or anybody else > in the list have some suggestions on what to look for to resolve this issue. > > Thanks and regards, > > Hong > ________________________________________ > From: [email protected] [[email protected]] > on behalf of Benson Muite [[email protected]] > Sent: Saturday, September 07, 2013 4:55 AM > To: [email protected] > Subject: Re: [Paraview] Errors when linking catalyst in ParaView version 4.0.1 > to, simulation code on Titan (Hong Yi) > > Hi Hong Yi, > > I got a similar error. One way to is to find the paths for the mpi libraries > on > titan directly - do module show cray_mpich for the mpich version in your gcc > environment. When you run ccmake, toggle to the advanced configuration > and enter the paths directly. You will need to manually add all the statically > linked libraries. To put in more than one library on the same line, you will > need to separate the paths by semicolons. > > Regards, > Benson > > On 07/09/2013 09:08, [email protected] wrote: > > > > > > ---------------------------------------------------------------------- > > > > Message: 1 > > Date: Fri, 6 Sep 2013 21:27:23 +0000 > > From: Hong Yi <[email protected]> > > Subject: Re: [Paraview] Errors when linking catalyst in ParaView > > version 4.0.1 to simulation code on Titan > > To: David E DeMarle <[email protected]>, Andy Bauer > > <[email protected]> > > Cc: "[email protected]" <[email protected]> > > Message-ID: > > > > <65F8B323A072504ABFC5D3D8751910514FEB3E51@MAIL- > MBX2.ad.renci.org> > > Content-Type: text/plain; charset="windows-1252" > > > > Hi Andy, David, > > > > I used GCC to build both ParaView and simulation code. The problem is > with ParaView's superbuild not being able to find MPI_Fortran on Titan. I got > the following messages during superbuild: > > > > -------------- > > Could NOT find MPI_Fortran (missing: MPI_Fortran_LIBRARIES > > MPI_Fortran_INCLUDE_PATH) > > > > No FortranCInterface mangling known for coprocessorinitialize > > > > ... > > > > -------------- > > > > I then tried to add "ftn" into FindMPI.cmake, but got the message "Unable > to determine MPI from MPI driver /opt/cray/xt-asyncpe/5.17/bin/ftn" prior > to those MPI_Fortran errors. I looked at ftn wrapper but could not > determine the mpi Fortran executable, either. Let me know if you have ideas > on how to make superbuild to find MPI_Fortran. > > > > Many thanks, > > > > Hong > > > > ________________________________ > > From: David E DeMarle [[email protected]] > > Sent: Friday, September 06, 2013 4:21 PM > > To: Andy Bauer > > Cc: Hong Yi; [email protected] > > Subject: Re: [Paraview] Errors when linking catalyst in ParaView > > version 4.0.1 to simulation code on Titan > > > > The Superbuild on cray uses the backend flavor of the GCC compiler > (xk7_gcc target). I haven't made an xk7_pgi target yet. > > > > David E DeMarle > > Kitware, Inc. > > R&D Engineer > > 21 Corporate Drive > > Clifton Park, NY 12065-8662 > > Phone: 518-881-4909 > > > > > > On Fri, Sep 6, 2013 at 4:07 PM, Andy Bauer > <[email protected]<mailto:[email protected]>> wrote: > > Hi Hong, > > > > This Fortran/C mangling issue is a bit tricky. It has to be done during the > configuration process because the C and Fortran compilers won't necessarily > know how to properly mangle the function names. The thing is that it the > configuration process depends on using the same compilers as any other > code that links to the generated libraries. You can check out Bill Hoffman's > blog at http://www.kitware.com/blog/home/post/231 which explains this > issue and how CMake handles it. Now if ParaView Catalyst was built with GCC > and you built your simulation code with PGI, for example, then it wouldn't > surprise me that this issue crops up. What compilers did you use for your > ParaView build and your simulation code build? If they are consistent then it > is a problem with CMake or ParaView's superbuild. > > > > Regards, > > Andy > > > > > > On Fri, Sep 6, 2013 at 3:54 PM, Hong Yi > <[email protected]<mailto:[email protected]>> wrote: > > Hi Andy, > > > > Thanks for the useful info. You are exactly right ? the problem is caused by > C/Fortran mangling of the names. In the Fortran code, underbar trailing is not > there for all catalyst-related function calls, those underbar trailing to the > function names as shown in the linking errors are automatically added by > C/Fortran mangling in the final linking stage. I also pulled in the Fortran > example in the github repo, and got the similar undefined reference errors in > the final linking stage when linking to the ParaView 4.0 built with > superbuild. > So the linking problem seems to be generic to Fortran code linking to > Catalyst. > > > > I checked the Catalyst static lib built with superbuild and found the lib > > only > includes function symbols without the trailing underbar such as > coprocessorinitialize, which explains why those undefined reference errors > result. I also tried to build ParaView 3.98 with superbuild which included > FortranAdaptor lib, and found the FortranAdatpor lib built with superbuild > does not include the trailing underbar for coprocessor-related functions, > while the FortranAdaptor lib built from source does include the trailing > underbar, which explains why I can link our simulation code to Catalyst 3.98 > built from source, but cannot successfully link to Catalyst 3.98 built with > superbuild. So here is my question: > > > > Should Catalyst libs built with superbuild contain those coprocessing > function symbols with trailing underbar in addition to those corresponding > function symbols without trailing underbar? Specifically, for example, I am > wondering whether both coprocessorinitialize and coprocessorinitialize_ > need to present so these coprocessing functions can be called from different > languages including Fortran? Could you confirm whether this is the case? If > so, I need to check my superbuild to see why those trailing underbar > functions are not created in the Catalyst libs. Let me know if you, David, or > anybody else can confirm whether this is the case, or offer any > ideas/suggestions. > > > > Thanks, > > > > Hong > > > > > > From: Andy Bauer > > [mailto:[email protected]<mailto:[email protected]>] > > Sent: Friday, September 06, 2013 12:33 PM > > To: Hong Yi > > Cc: [email protected]<mailto:[email protected]> > > Subject: Re: [Paraview] Errors when linking catalyst in ParaView > > version 4.0.1 to simulation code on Titan > > > > Hi Hong, > > > > I think it's the Fortran mangling of the names. Try taking out the > > underscore > on the Fortran subroutine calls. Let me know if that doesn't help. Otherwise > it may be an issue with how C/Fortran mangles things. The GCC behavior > should be the following: > > Fortran -> call xyz() > > C -> void xyz_() {...}. > > All of these methods should be available in the vtkPVCatalyst module. If > you can't get it to work, try to see what you can do with the Fortran example > in the github repo. > > > > Regards, > > And > > > > On Thu, Sep 5, 2013 at 5:52 PM, Hong Yi > <[email protected]<mailto:[email protected]>> wrote: > > When linking our simulation code (a variant of phasta) to Catalyst in > ParaView version 4.0.1 built on Titan with superbuild, I got the following > linking errors: > > > > ----------------- > > ../../lib/libincompressible.a(itrdrv.f.o): In function `itrdrv_': > > itrdrv.f:(.text+0x2add): undefined reference to `coprocessorinitialize_' > > itrdrv.f:(.text+0x6198): undefined reference to `coprocessorfinalize_' > > itrdrv.f:(.text+0x973d): undefined reference to `coprocessorfinalize_' > > ../../lib/libincompressible.a(phastaadaptor.f.o): In function > `phastacoprocessor_': > > phastaadaptor.f:(.text+0x84): undefined reference to > `requestdatadescription_' > > phastaadaptor.f:(.text+0x95): undefined reference to `needtocreategrid_' > > phastaadaptor.f:(.text+0xba): undefined reference to `coprocess_' > > /usr/bin/ld: link errors found, deleting executable `../../bin/phastaIC.exe' > > ----------------- > > > > I use CMake to link Catalyst to our simulation code. I was able to resolve > those linking errors when linking to ParaView version 3.98.1 by adding > "find_package(ParaView 3.98 REQUIRED COMPONENTS FortranAdaptor)" in > addition to find_package for vtkCoProcessorImplementation and then link > both to the final executable. However, for ParaView version 4.0.1, it seems > FortranAdaptor does not exist any more which defines those functions such > as coprocessorinitialize, etc. Here is the corresponding excerpt in my > CMakeLists.txt related to linking Catalyst in ParaView version 4.0.1: > > ------------------- > > if(USE_CATALYST) > > find_package(ParaView 3.98 REQUIRED COMPONENTS > vtkPVPythonCatalyst) > > find_library(PHASTA_ADAPTOR_LIB PhastaAdaptorLib) > > include("${PARAVIEW_USE_FILE}") > > set(Adaptor_SRCS phastaadaptor.f) > > add_library(Adaptor ${Adaptor_SRCS}) > > target_link_libraries(Adaptor ${PHASTA_ADAPTOR_LIB} > vtkPVPythonCatalyst) > > add_definitions("-DUSE_CATALYST") > > endif() > > ------------------- > > > > Adaptor is then linked to the final executable. > > > > Please let me know if you have ideas on what I should do to resolve those > linking errors. > > > > Many thanks, > > > > Hong > > > > > > > > _______________________________________________ > > Powered by www.kitware.com<http://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 > > > > Follow this link to subscribe/unsubscribe: > > http://www.paraview.org/mailman/listinfo/paraview > > > > > > > > _______________________________________________ > 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 > > Follow this link to subscribe/unsubscribe: > http://www.paraview.org/mailman/listinfo/paraview > _______________________________________________ > 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 > > Follow this link to subscribe/unsubscribe: > http://www.paraview.org/mailman/listinfo/paraview _______________________________________________ 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 Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
