[Paraview] Building on Titan using ParaViewSuperbuild
Hong Yi
hongyi at renci.org
Wed Sep 11 14:37:36 EDT 2013
Thanks for the update, Mark. I can also get rid of FortranCmangling errors for cross build by adding "fortran" into line 137 of FindMPI.cmake so it reads:
foreach (lang C CXX Fortran)
This allows superbuild to find MPI_Fortran automatically in the same way as finding MPI_C and MPI_CXX. I am currently half way through the cross build, but I verified the errors/warnings disappeared and an output message indicating FortranCMangling and FortranCInterface are found and working, so it looks like everything is good now...
Hong
From: Vanmoer, Mark W [mailto:mvanmoer at illinois.edu]
Sent: Wednesday, September 11, 2013 2:26 PM
To: Andy Bauer; Hong Yi
Cc: Vanmoer, Mark W; David E DeMarle; paraview at paraview.org
Subject: RE: [Paraview] Building on Titan using ParaViewSuperbuild
Hi all, I can get the properly mangled names and MPI_Fortran_* errors to disappear by also exporting FC (didn't know if F77 was needed) in configcross.sh. If I have problems building a test coprocessing program, I'll start a new thread.
# from David DeMarle
# 20130829
# 20130910 - added FC, F77 exports
# System cmake too old
export PATH=/ccs/home/vanmoer/builds/byhand/CMake/2.8.11.2/bin:$PATH
# git is not part of default env
module load git
# compilers
module unload PrgEnv-pgi
module unload gcc
module load PrgEnv-gnu
export CC=/opt/cray/xt-asyncpe/5.17/bin/cc
export CXX=/opt/cray/xt-asyncpe/5.17/bin/CC
export FC=/opt/cray/xt-asyncpe/5.17/bin/ftn
export F77=/opt/cray/xt-asyncpe/5.17/bin/ftn
#configure settings to cross compile python, (mesa - implied), and paraview
cmake \
-DCROSS_BUILD_STAGE:STRING=CROSS -Dcross_target:STRING=xk7_gnu \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DBUILD_TESTING:BOOL=TRUE \
-DParaView_FROM_GIT:BOOL=OFF \
-DENABLE_paraview:BOOL=TRUE \
-DENABLE_python:BOOL=TRUE \
../ParaViewSuperbuild
From: Andy Bauer [mailto:andy.bauer at kitware.com]
Sent: Wednesday, September 11, 2013 8:50 AM
To: Hong Yi
Cc: Vanmoer, Mark W; David E DeMarle; paraview at paraview.org<mailto:paraview at paraview.org>
Subject: Re: [Paraview] Building on Titan using ParaViewSuperbuild
Hi,
If I remember correctly, the CFortranInterface utility essentially works in a separate process space so that it doesn't affect any of the CMake settings for the current configuration. This may be a better topic for the CMake list. I'll check with some people today to see about what could be done with it.
Andy
On Wed, Sep 11, 2013 at 9:35 AM, Hong Yi <hongyi at renci.org<mailto:hongyi at renci.org>> wrote:
Hi Mark,
Yes, I discovered the same thing yesterday. The reason is that CMake picks up /usr/bin/c++ and /usr/bin/cc automatically which are symlinked to g++-4.3 and gcc-4.3 on Titan. I tried to change CMAKE_C++_COMPILER and CMAKE_C_COMPILER manually through ccmake, however, the changes did not get populated down to subdirectories such as Catalyst sub-directory for some reason. After I manually corrected them over all CMakeCache.txt files down in every subdirectories, FortranCInterface can build successfully. I am currently building cross stage also. Hopefully this is it.
Thanks,
Hong
From: Vanmoer, Mark W [mailto:mvanmoer at illinois.edu<mailto:mvanmoer at illinois.edu>]
Sent: Tuesday, September 10, 2013 6:43 PM
To: Hong Yi; Vanmoer, Mark W; David E DeMarle
Cc: paraview at paraview.org<mailto:paraview at paraview.org>
Subject: RE: [Paraview] Building on Titan using ParaViewSuperbuild
Hi Hong and David,
I was able to get FortranCInterface to build in the tools directory. Even though we were doing module load gcc, CMake was picking up $CC and $CXX as gcc 4.3.4, instead of gcc 4.7.2 like it should have. The fix is to do as in configcross.sh and export CC and CXX,
So my configtools.sh is now
# from David DeMarle
# system CMake is too old
export PATH=/ccs/home/vanmoer/builds/byhand/CMake/2.8.11.2/bin:$PATH<http://2.8.11.2/bin:$PATH>
#switch compiler to compile for front end
module unload PrgEnv-pgi
module load gcc
export CC=/opt/gcc/4.7.2/bin/gcc
export CXX=/opt/gcc/4.7.2/bin/g++
#configure settings to build compile tools only
cmake \
-DCROSS_BUILD_STAGE:STRING=TOOLS -Dcross_target:STRING=xk7_gnu \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DBUILD_TESTING:BOOL=FALSE \
-DParaView_FROM_GIT:BOOL=OFF \
-DENABLE_paraview:BOOL=TRUE \
-DENABLE_boost:BOOL=TRUE \
-DENABLE_python:BOOL=TRUE \
-DENABLE_portfwd:BOOL=FALSE \
../ParaViewSuperbuild
I just started a cross compile based on that and will report back when that finishes.
Mark
From: Hong Yi [mailto:hongyi at renci.org]
Sent: Tuesday, September 10, 2013 4:11 PM
To: Vanmoer, Mark W; David E DeMarle
Cc: paraview at paraview.org<mailto:paraview at paraview.org>
Subject: RE: [Paraview] Building on Titan using ParaViewSuperbuild
Thanks, Mark. It is good to know it is not only me having this problem. I found if I remove "-L/usr/lib64/gcc/x86_64-suse-linux/4.3 -L/usr/x86_64-suse-linux/lib" from the build line, I can successfully build FortranCInterface. So the question now becomes how I can remove those two lib paths within CMake so that it can build FortranCInterface and set corresponding flags correctly. Let me know if anybody has some pointers on how to do that within CMake.
Thanks,
Hong
From: Vanmoer, Mark W [mailto:mvanmoer at illinois.edu]
Sent: Tuesday, September 10, 2013 2:47 PM
To: Hong Yi; David E DeMarle; Vanmoer, Mark W
Cc: paraview at paraview.org<mailto:paraview at paraview.org>
Subject: RE: [Paraview] Building on Titan using ParaViewSuperbuild
I have the same errors in my CMakeError.log, if I understand what's going on right, those symbols are defined in libgcc_s.so in the same directory, and so that lib isn't being linked?
Mark
From: Hong Yi [mailto:hongyi at renci.org]
Sent: Tuesday, September 10, 2013 1:21 PM
To: David E DeMarle; Vanmoer, Mark W
Cc: paraview at paraview.org<mailto:paraview at paraview.org>
Subject: RE: [Paraview] Building on Titan using ParaViewSuperbuild
Hi David,
I found FortranCInterface was not built even in the first TOOLS pass. Here are the errors I am getting from CMakeError.log:
-----------------
/opt/gcc/4.7.2/bin/gfortran CMakeFiles/FortranCInterface.dir/main.F.o CMakeFiles/FortranCInterface.dir/call_sub.f.o CMakeFiles/FortranCInterface.dir/call_mod.f90.o -o FortranCInterface -L/usr/lib64/gcc/x86_64-suse-linux/4.3 -L/usr/x86_64-suse-linux/lib -rdynamic libsymbols.a libmyfort.a
/opt/gcc/4.7.2/snos/lib/gcc/x86_64-suse-linux/4.7.2/../../../../lib64/libgfortran.so: undefined reference to `__gttf2 at GCC_4.3.0'
/opt/gcc/4.7.2/snos/lib/gcc/x86_64-suse-linux/4.7.2/../../../../lib64/libgfortran.so: undefined reference to `__netf2 at GCC_4.3.0'
/opt/gcc/4.7.2/snos/lib/gcc/x86_64-suse-linux/4.7.2/../../../../lib64/libgfortran.so: undefined reference to `__lttf2 at GCC_4.3.0'
/usr/bin/ld: link errors found, deleting executable `FortranCInterface'
-----------------
Could you confirm whether you are getting this error also for your superbuild on Titan? If you are not seeing these errors, could you confirm whether you are using the default gcc version 4.7.2 or some newer version?
Superbuild is able to build other libraries successfully for me on Titan except for this FortranCInterface problems, so I am hoping to confirm with you to see whether this is a specific problem on my part.
Thanks for all your help!
Hong
________________________________
From: paraview-bounces at paraview.org<mailto:paraview-bounces at paraview.org> [paraview-bounces at paraview.org<mailto:paraview-bounces at paraview.org>] on behalf of David E DeMarle [dave.demarle at kitware.com<mailto:dave.demarle at kitware.com>]
Sent: Thursday, August 29, 2013 1:21 PM
To: Vanmoer, Mark W
Cc: paraview at paraview.org<mailto:paraview at paraview.org>
Subject: Re: [Paraview] Building on Titan using ParaViewSuperbuild
Your tools build is pointing to the compiler wrapper that you normally would use to make code for the back end.
The tools build should just use plain old local gcc since we only build things at that point that run on the login node.
Try these setup scripts:
I source configtools.sh to set up my environment before I build the compile tools, and configcross.sh before before I cross compile ParaView.
configtools.sh
#use my own cmake, system one is too old
setenv PATH /autofs/na4_proj/csc035/demarle/pvdev/titan/cmake-build/bin:${PATH}
#switch compiler to compile code for front end
module unload PrgEnv-pgi
module load gcc
#configure settings for to build compile tools only
cmake \
-DCROSS_BUILD_STAGE:STRING=TOOLS -Dcross_target:STRING=xk7_gnu \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DBUILD_TESTING:BOOL=FALSE \
-DParaView_FROM_GIT:BOOL=OFF \
-DENABLE_paraview:BOOL=TRUE \
-DENABLE_boost:BOOL=TRUE \
-DENABLE_python:BOOL=TRUE \
-DENABLE_portfwd:BOOL=FALSE \
../../ParaViewSuperbuild
then make
configcross.sh
#use my own cmake, system one is too old
setenv PATH /autofs/na4_proj/csc035/demarle/pvdev/titan/cmake-build/bin:${PATH}
#switch compiler to compile code for back end
module unload PrgEnv-pgi
module unload gcc
module load PrgEnv-gnu
#not sure why module load wasn't sufficient, but ended up needing to force
#cmake to choose the right compiler
setenv CC /opt/cray/xt-asyncpe/5.17/bin/cc
setenv CXX /opt/cray/xt-asyncpe/5.17/bin/CC
#configure settings to cross compile python, (mesa - implied), and paraview
cmake \
-DCROSS_BUILD_STAGE:STRING=CROSS -Dcross_target:STRING=xk7_gnu \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DBUILD_TESTING:BOOL=TRUE \
-DParaView_FROM_GIT:BOOL=OFF \
-DENABLE_paraview:BOOL=TRUE \
-DENABLE_python:BOOL=TRUE \
../../ParaViewSuperbuild
then make again
David E DeMarle
Kitware, Inc.
R&D Engineer
21 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4909<tel:518-881-4909>
On Tue, Aug 27, 2013 at 4:26 PM, Vanmoer, Mark W <mvanmoer at illinois.edu<mailto:mvanmoer at illinois.edu>> wrote:
Hi, I'm trying to follow the advice on building ParaView on Titan using the ParaViewSuperbuild method from an earlier discussion in June.
When I run make in the "TOOLS" directory I get the following error:
[ 66%] Building CXX object Utilities/ProcessXML/CMakeFiles/kwProcessXML.dir/ProcessXML.cxx.o
Linking CXX executable ../../bin/vtkkwProcessXML-pv4.0
/usr/bin/ld: attempted static link of dynamic object `../../lib/libvtkCommonCore-pv4.0.so.1'
collect2: error: ld returned 1 exit status
make[6]: *** [bin/vtkkwProcessXML-pv4.0] Error 1
make[5]: *** [Utilities/ProcessXML/CMakeFiles/kwProcessXML.dir/all] Error 2
make[4]: *** [CMakeFiles/pvCompileTools.dir/rule] Error 2
make[3]: *** [pvCompileTools] Error 2
CMake Error at /ccs/home/vanmoer/builds/superbuild/tools-build/pv-paraview-build.cmake:26 (message):
Failed!!!
make[2]: *** [paraview/src/paraview-stamp/paraview-build] Error 1
I don't see a BUILD_SHARED that I can toggle. All of the CMAKE_SHARED_LINKER_FLAGS* vars are empty, if those are related.
Any suggestions?
Thanks,
Mark
_______________________________________________
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<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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20130911/048dc330/attachment-0001.htm>
More information about the ParaView
mailing list