|
[Sponsors] |
OF141dev undefined reference to METIS symbols on SUSE Enterprise |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
August 28, 2008, 20:27 |
Hi all,
I checked out the l
|
#1 |
Member
Matthias Walter
Join Date: Mar 2009
Location: Rostock, Germany
Posts: 63
Rep Power: 17 |
Hi all,
I checked out the latest OF-1.4.1-dev version from svn repository. I can compile it on our Fedora systems without any problems but if I try to compile OF on a SUSE Enterprise System I'm getting always a linker error during the build of decomposePar and redistributeMeshPar . There is no error in the decomposition libs or METIS libs and also there is no build error during the compiler run of the binaries however linking the binaries doesn't work. g++ -m64 -Dlinux64 -DDP -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast -march=opteron -O3 -DNoRepository -ftemplate-depth-40 -I../decompositionMethods/lnInclude -I/home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/src/finiteVolume/lnInclude -I/home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/src/finiteArea/lnInclude -I/home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/src/lagrangian/basic/lnInclude -I/home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/src/tetDecompositionFiniteElement /lnInclude -DFACE_DECOMP -IlnInclude -I. -I/home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/src/OpenFOAM/lnInclude -fPIC Make/linux64GccDPOpt/decomposeMesh.o Make/linux64GccDPOpt/decomposePar.o Make/linux64GccDPOpt/domainDecomposition.o Make/linux64GccDPOpt/distributeCells.o Make/linux64GccDPOpt/faMeshDecomposition.o Make/linux64GccDPOpt/fvFieldDecomposer.o Make/linux64GccDPOpt/faFieldDecomposer.o Make/linux64GccDPOpt/pointFieldDecomposer.o Make/linux64GccDPOpt/tetPointFieldDecomposer.o Make/linux64GccDPOpt/lagrangianFieldDecomposer.o -L/home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/lib/linux64GccDPOpt \ -ldecompositionMethods -lfiniteVolume -lfiniteArea -llagrangian -lmeshTools -lfaceDecompFiniteElement -lfaceDecompositionMotionSolver -lOpenFOAM -liberty -ldl -lm -o /home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/applications/bin/linux64GccDPOpt/de composePar /home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/lib/linux64GccDPOpt/libdecompositio nMethods.so: undefined reference to `METIS_PartGraphKway(int*, int*, int*, int*, int*, int*, int*, int*, int*, int*, int*)' /home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/lib/linux64GccDPOpt/libdecompositio nMethods.so: undefined reference to `METIS_WPartGraphRecursive(int*, int*, int*, int*, int*, int*, int*, int*, float*, int*, int*, int*)' /home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/lib/linux64GccDPOpt/libdecompositio nMethods.so: undefined reference to `METIS_WPartGraphKway(int*, int*, int*, int*, int*, int*, int*, int*, float*, int*, int*, int*)' /home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/lib/linux64GccDPOpt/libdecompositio nMethods.so: undefined reference to `METIS_PartGraphRecursive(int*, int*, int*, int*, int*, int*, int*, int*, int*, int*, int*)' collect2: ld returned 1 exit status make: *** [/home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/applications/bin/linux64GccDPOpt/d ecomposePar] Error 1 I used the gcc 4.1.2, gcc-4.3.1 and gcc-4.4 for compilation with the same result! Furthermore I installed the latest binutils but also with no success. I used different flex versions and I changed the compilation, linking order of the decomposition lib (another order of the metis libs) but it didn't help! So any suggestions are welcome! Matthias |
|
August 28, 2008, 22:08 |
Hello Matthias,
What is the
|
#2 |
Senior Member
Martin Beaudoin
Join Date: Mar 2009
Posts: 332
Rep Power: 22 |
Hello Matthias,
What is the output of the 2 following commands on your system: ldd $FOAM_LIB/$WM_OPTIONS/libdecompositionMethods.so and nm -a $FOAM_LIB/$WM_OPTIONS/libmetis.so | grep METIS_ Martin |
|
August 29, 2008, 09:29 |
Hello Matthias,
The output
|
#3 |
Senior Member
Martin Beaudoin
Join Date: Mar 2009
Posts: 332
Rep Power: 22 |
Hello Matthias,
The output of your commands looks normal enough. The "undefined references" are indeed defined in libmetis.so, which itself is dragged along by the library libdecompositionMethods.so. So your linker should be able to finalize the compilation. Last questions because I don't have a clue for you: What version of SUSE Enterprise System are you using? Are you compiling on a real PC or on a virtual machine (VMWare, etc)? What is the output of: which ldd ldd --version which g++ g++ --version Martin |
|
August 29, 2008, 11:04 |
Hi Martin,
g++ --version:
|
#4 |
Member
Matthias Walter
Join Date: Mar 2009
Location: Rostock, Germany
Posts: 63
Rep Power: 17 |
Hi Martin,
g++ --version: g++ (GCC) 4.3.1 Copyright (C) 2008 Free Software Foundation, Inc. Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE. ldd --version : ldd (GNU libc) 2.4 Copyright © 2006 Free Software Foundation, Inc. Dies ist freie Software; in den Quellen befinden sich die Lizenzbedingungen. Es gibt KEINERLEI Garantie; nicht einmal für die TAUGLICHKEIT oder VERWENDBARKEIT FÜR EINEN ANGEGEBENEN ZWECK. Written by Roland McGrath and Ulrich Drepper. ld --version: GNU ld (GNU Binutils) 2.18 Copyright 2007 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty. uname -a : Linux 2.6.16.54-0.2.5.PTF.283002.0-smp #1 SMP Mon Jan 21 13:29:51 UTC 2008 x86_64 x86_64 x86_64 GNU/Linux Yes I use a real PC and no virtual machine! It is strange! Matthias |
|
August 29, 2008, 11:13 |
@Martin
Maybe this informat
|
#5 |
Member
Matthias Walter
Join Date: Mar 2009
Location: Rostock, Germany
Posts: 63
Rep Power: 17 |
@Martin
Maybe this information helps, it seems that the linker doesn't include libmetis and libparmetis: nm /home/b/mvimixer/OpenFOAM/OpenFOAM-1.4.1-dev/lib/linux64GccDPOpt/libdecompositio nMethods.so | grep METIS U ParMETIS_V3_PartGeomKway U _Z19METIS_PartGraphKwayPiS_S_S_S_S_S_S_S_S_S_ U _Z20METIS_WPartGraphKwayPiS_S_S_S_S_S_S_PfS_S_S_ U _Z24METIS_PartGraphRecursivePiS_S_S_S_S_S_S_S_S_S_ U _Z25METIS_WPartGraphRecursivePiS_S_S_S_S_S_S_PfS_S _S_ Matthias |
|
August 29, 2008, 11:55 |
@Matthias:
Your setup looks
|
#6 |
Senior Member
Martin Beaudoin
Join Date: Mar 2009
Posts: 332
Rep Power: 22 |
@Matthias:
Your setup looks fine. Your version of ld is newer than mine, but I am using openSuse 10.3, not SUSE Enterprise. As for the undefined symbols in libdecompositionMethods.so, this is quite normal, those symbols are defined in libmetis.so, and marked as required in libdecompositionMethods.so, but undefined in that library. The linker "ld" should find those missing symbols when dynamically loading libmetis.so because this library is required by libdecompositionMethods.so. Out of curiosity, have you tried to explicitely add the library libmetis and libparmetis in the options file for decomposePar? You said that you were able to complete the compilition on your Fedora systems; what version of ld do you have on those systems? Martin |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[OpenFOAM.com] Undefined reference to %60yyFlexLexeryywrapb | arjaan | OpenFOAM Installation | 13 | June 1, 2016 13:33 |
Undefined reference | mateusz_slowikowski | OpenFOAM Running, Solving & CFD | 7 | February 27, 2015 15:35 |
Undefined reference to %60yyFlexLexeryywrapb | zhoubinwx | OpenFOAM Bugs | 1 | May 28, 2008 06:57 |
Undefined reference | mateusz_slowikowski | OpenFOAM Running, Solving & CFD | 3 | March 11, 2008 13:19 |
MPICH : undefined reference to.. | Vincent | Siemens | 3 | March 24, 2005 13:30 |