From: Yujie <rec...@gm...> - 2010-01-20 19:41:59
|
Dear Libmesh Developers, I download Libmesh via SVN and compile it. I get the following errors. The version of GCC is 3.2. Could you give me some help? Thanks a lot. Compiling C++ (in debug mode) src/mesh/xdr_io.C... In file included from /home/yujie/codes/codes/libmesh/include/base/reference_counted_object.h:29, from /home/yujie/codes/codes/libmesh/include/base/dof_object.h:31, from /home/yujie/codes/codes/libmesh/include/mesh/mesh_base.h:40, from /home/yujie/codes/codes/libmesh/include/mesh/mesh_input.h:32, from /home/yujie/codes/codes/libmesh/include/mesh/xdr_io.h:32, from src/mesh/xdr_io.C:30: /home/yujie/codes/codes/libmesh/include/base/reference_counter.h: In member function `void ReferenceCounter::increment_constructor_count(const std::string&)': /home/yujie/codes/codes/libmesh/include/base/reference_counter.h:151: warning: unused variable `Threads::spin_mutex::scoped_lock lock' /home/yujie/codes/codes/libmesh/include/base/reference_counter.h: In member function `void ReferenceCounter::increment_destructor_count(const std::string&)': /home/yujie/codes/codes/libmesh/include/base/reference_counter.h:169: warning: unused variable `Threads::spin_mutex::scoped_lock lock' src/mesh/xdr_io.C: In member function `virtual void XdrIO::write(const std::string&)': src/mesh/xdr_io.C:152: syntax error before `,' token src/mesh/xdr_io.C:154: confused by earlier errors, bailing out mpiCC: No such file or directory make: *** [src/mesh/xdr_io.i686-pc-linux-gnu.dbg.o] Error 1 Regards, Yujie |
From: Yujie <rec...@gm...> - 2010-01-20 20:00:35
|
I comment the corresponding codes. When I make it again, I get the following errors for complex number mode. Compiling C++ (in debug mode) src/numerics/dense_matrix.C... src/numerics/dense_matrix.C: In member function `void DenseMatrix<T>::_lu_decompose() [with T = Complex]': src/numerics/dense_matrix.C:754: instantiated from here src/numerics/dense_matrix.C:441: no match for `Complex& < Complex&' operator mpiCC: No such file or directory make: *** [src/numerics/dense_matrix.i686-pc-linux-gnu.dbg.o] Error 1 Thanks again. Regards, Yujie On Wed, Jan 20, 2010 at 1:41 PM, Yujie <rec...@gm...> wrote: > Dear Libmesh Developers, > > I download Libmesh via SVN and compile it. I get the following errors. The > version of GCC is 3.2. Could you give me some help? Thanks a lot. > > Compiling C++ (in debug mode) src/mesh/xdr_io.C... > In file included from > /home/yujie/codes/codes/libmesh/include/base/reference_counted_object.h:29, > from > /home/yujie/codes/codes/libmesh/include/base/dof_object.h:31, > from > /home/yujie/codes/codes/libmesh/include/mesh/mesh_base.h:40, > from > /home/yujie/codes/codes/libmesh/include/mesh/mesh_input.h:32, > from > /home/yujie/codes/codes/libmesh/include/mesh/xdr_io.h:32, > from src/mesh/xdr_io.C:30: > /home/yujie/codes/codes/libmesh/include/base/reference_counter.h: In member > function `void ReferenceCounter::increment_constructor_count(const > std::string&)': > /home/yujie/codes/codes/libmesh/include/base/reference_counter.h:151: > warning: unused > variable `Threads::spin_mutex::scoped_lock lock' > /home/yujie/codes/codes/libmesh/include/base/reference_counter.h: In member > function `void ReferenceCounter::increment_destructor_count(const > std::string&)': > /home/yujie/codes/codes/libmesh/include/base/reference_counter.h:169: > warning: unused > variable `Threads::spin_mutex::scoped_lock lock' > src/mesh/xdr_io.C: In member function `virtual void XdrIO::write(const > std::string&)': > src/mesh/xdr_io.C:152: syntax error before `,' token > src/mesh/xdr_io.C:154: confused by earlier errors, bailing out > mpiCC: No such file or directory > make: *** [src/mesh/xdr_io.i686-pc-linux-gnu.dbg.o] Error 1 > > > Regards, > Yujie > |
From: Derek G. <fri...@gm...> - 2010-01-20 20:21:52
|
Yujie... My guess is that libMesh no longer works with GCC 3.2. That compiler is from 8 years ago! Which makes it ancient by open source standards. Is there any chance of using a newer compiler? Derek On Jan 20, 2010, at 12:41 PM, Yujie wrote: > Dear Libmesh Developers, > > I download Libmesh via SVN and compile it. I get the following errors. The > version of GCC is 3.2. Could you give me some help? Thanks a lot. > > Compiling C++ (in debug mode) src/mesh/xdr_io.C... > In file included from > /home/yujie/codes/codes/libmesh/include/base/reference_counted_object.h:29, > from > /home/yujie/codes/codes/libmesh/include/base/dof_object.h:31, > from > /home/yujie/codes/codes/libmesh/include/mesh/mesh_base.h:40, > from > /home/yujie/codes/codes/libmesh/include/mesh/mesh_input.h:32, > from > /home/yujie/codes/codes/libmesh/include/mesh/xdr_io.h:32, > from src/mesh/xdr_io.C:30: > /home/yujie/codes/codes/libmesh/include/base/reference_counter.h: In member > function `void ReferenceCounter::increment_constructor_count(const > std::string&)': > /home/yujie/codes/codes/libmesh/include/base/reference_counter.h:151: > warning: unused > variable `Threads::spin_mutex::scoped_lock lock' > /home/yujie/codes/codes/libmesh/include/base/reference_counter.h: In member > function `void ReferenceCounter::increment_destructor_count(const > std::string&)': > /home/yujie/codes/codes/libmesh/include/base/reference_counter.h:169: > warning: unused > variable `Threads::spin_mutex::scoped_lock lock' > src/mesh/xdr_io.C: In member function `virtual void XdrIO::write(const > std::string&)': > src/mesh/xdr_io.C:152: syntax error before `,' token > src/mesh/xdr_io.C:154: confused by earlier errors, bailing out > mpiCC: No such file or directory > make: *** [src/mesh/xdr_io.i686-pc-linux-gnu.dbg.o] Error 1 > > > Regards, > Yujie > ------------------------------------------------------------------------------ > Throughout its 18-year history, RSA Conference consistently attracts the > world's best and brightest in the field, creating opportunities for Conference > attendees to learn about information security's most important issues through > interactions with peers, luminaries and emerging and established companies. > http://p.sf.net/sfu/rsaconf-dev2dev > _______________________________________________ > Libmesh-users mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmesh-users |
From: John P. <pet...@cf...> - 2010-01-20 20:25:10
|
On Wed, Jan 20, 2010 at 2:21 PM, Derek Gaston <fri...@gm...> wrote: > Yujie... > > My guess is that libMesh no longer works with GCC 3.2. That compiler is from 8 years ago! Which makes it ancient by open source standards. > > Is there any chance of using a newer compiler? I agree with Derek, if you are compiling with complex enabled (which it seems you are) and your compiler can't find a match for operator< between two objects of type std::complex src/numerics/dense_matrix.C:441: no match for `Complex& < Complex&' operator Then I don't think that compiler is ever gonna work for you. -- John |
From: Yujie <rec...@gm...> - 2010-01-20 20:30:17
|
Dear John and Derek, Thank you very much for your advice. I will try to upgrade my GCC. Thanks a lot. Regards, Yujie On Wed, Jan 20, 2010 at 2:25 PM, John Peterson < pet...@cf...> wrote: > On Wed, Jan 20, 2010 at 2:21 PM, Derek Gaston <fri...@gm...> wrote: > > Yujie... > > > > My guess is that libMesh no longer works with GCC 3.2. That compiler is > from 8 years ago! Which makes it ancient by open source standards. > > > > Is there any chance of using a newer compiler? > > I agree with Derek, if you are compiling with complex enabled (which > it seems you are) and your compiler can't find a match for operator< > between two objects of type std::complex > > src/numerics/dense_matrix.C:441: no match for `Complex& < Complex&' > operator > > Then I don't think that compiler is ever gonna work for you. > > -- > John > |
From: Roy S. <roy...@ic...> - 2010-01-20 20:32:25
|
On Wed, 20 Jan 2010, John Peterson wrote: > I agree with Derek, if you are compiling with complex enabled (which > it seems you are) and your compiler can't find a match for operator< > between two objects of type std::complex Is there an operator<(complex&,complex&)? I don't think it's standard, and it wouldn't make much since if it was. More likely we've yet-again added some code without testing that it works with --enable-complex. I'll take a look at it. On the bright side, they just finished putting together the new 128 Nehelem cluster here, and the old 24-core cluster is likely to finally end up devoted to regression testing soon. --- Roy |
From: John P. <pet...@cf...> - 2010-01-20 20:35:43
|
On Wed, Jan 20, 2010 at 2:32 PM, Roy Stogner <roy...@ic...> wrote: > > On Wed, 20 Jan 2010, John Peterson wrote: > >> I agree with Derek, if you are compiling with complex enabled (which >> it seems you are) and your compiler can't find a match for operator< >> between two objects of type std::complex > > Is there an operator<(complex&,complex&)? I don't think it's > standard, and it wouldn't make much since if it was. More likely > we've yet-again added some code without testing that it works with > --enable-complex. > > I'll take a look at it. You are right! Not sure what I was thinking. std::abs should always return a Real, that's my bad. Good find Yujie! > On the bright side, they just finished putting together the new 128 > Nehelem cluster here, and the old 24-core cluster is likely to finally > end up devoted to regression testing soon. Cool! -- John |
From: Roy S. <roy...@ic...> - 2010-01-20 20:58:21
|
On Wed, 20 Jan 2010, John Peterson wrote: > You are right! Not sure what I was thinking. std::abs should always > return a Real, that's my bad. Good find Yujie! This is an interesting problem, actually. The problem is that std::abs(Number) will always return a Real, but std::abs(T) *won't*. Need to think about this a bit, but meeting to go to right now. --- Roy |
From: Roy S. <roy...@ic...> - 2010-01-20 20:39:30
|
On Wed, 20 Jan 2010, Yujie wrote: > Thank you very much for your advice. I will try to upgrade my GCC. Thanks a > lot. Yeah, although there's an actual bug that we need to fix here, I'd still agree that using gcc 4 would be a good idea. We can fix the --enable-complex problem, but I've just tried reverting to gcc 3.4, and on my system there seems to be a linker problem that might be the compiler's fault, not ours. --- Roy |
From: Yujie <rec...@gm...> - 2010-01-20 21:06:16
|
Dear Roy, Thank you very much for your advice. I further comment the corresponding codes and compile it. I get the following errors: "----- Done Building Contributed Packages ----- ---------------------------------------------- make[1]: warning: Clock skew detected. Your build may be incomplete. make[1]: Leaving directory `/home/yujie/codes/codes/libmesh/contrib' Building bin/amr-dbg In file included from /home/yujie/codes/codes/libmesh/include/base/reference_counted_object.h:29, from /home/yujie/codes/codes/libmesh/include/base/dof_map.h:35, from src/apps/amr.cc:4: /home/yujie/codes/codes/libmesh/include/base/reference_counter.h: In member function `void ReferenceCounter::increment_constructor_count(const std::string&)': /home/yujie/codes/codes/libmesh/include/base/reference_counter.h:151: warning: unused variable `Threads::spin_mutex::scoped_lock lock' /home/yujie/codes/codes/libmesh/include/base/reference_counter.h: In member function `void ReferenceCounter::increment_destructor_count(const std::string&)': /home/yujie/codes/codes/libmesh/include/base/reference_counter.h:169: warning: unused variable `Threads::spin_mutex::scoped_lock lock' /home/yujie/codes/codes/libmesh/contrib/tecplot/lib/i686-pc-linux-gnu/tecio.a(tecxxx.o)(.text+0x1a7): In function `tecini': : the use of `mktemp' is dangerous, better use `mkstemp' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `VecCreateGhost(_comm*, int, int, int, int const*, _p_Vec**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `MatCreateShell(_comm*, int, int, int, int, void*, _p_Mat**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `VecCreateMPI(_comm*, int, int, _p_Vec**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `DenseMatrix<std::complex<double> >::_lu_back_substitute_lapack(DenseVector<std::complex<double> > const&, DenseVector<std::complex<double> >&)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `PETSC_VIEWER_STDOUT_(_comm*)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `KSPCreate(_comm*, _p_KSP**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `MatCreateSeqAIJ(_comm*, int, int, int, int const*, _p_Mat**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `ISCreateGeneral(_comm*, int, int const*, _p_IS**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `SNESCreate(_comm*, _p_SNES**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `PetscViewerCreate(_comm*, _p_PetscViewer**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `DenseMatrix<std::complex<double> >::_matvec_blas(std::complex<double>, std::complex<double>, DenseVector<std::complex<double> >&, DenseVector<std::complex<double> > const&) const' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `DenseMatrix<std::complex<double> >::_lu_decompose_lapack()' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `PetscViewerASCIIOpen(_comm*, char const*, _p_PetscViewer**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `DenseMatrix<std::complex<double> >::_multiply_blas(DenseMatrixBase<std::complex<double> > const&, DenseMatrix<std::complex<double> >::_BLAS_Multiply_Flag)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `PCCreate(_comm*, _p_PC**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `MatCreateMPIAIJ(_comm*, int, int, int, int, int, int const*, int, int const*, _p_Mat**)' /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `VecCreateSeq(_comm*, int, _p_Vec**)' collect2: ld returned 1 exit status mpiCC: No such file or directory make: *** [bin/amr-dbg] Error 1" I have included all the libs of PETSc. I also "make test" in PETSc. It works. I don't know why libmesh.so can't find the reference to the above functions. Your linker problem is the same with me? Whether can I avoid to compile amr-dbg? I don't think I will use it. Thanks a lot. Regards, Yujie On Wed, Jan 20, 2010 at 2:39 PM, Roy Stogner <roy...@ic...>wrote: > > On Wed, 20 Jan 2010, Yujie wrote: > > Thank you very much for your advice. I will try to upgrade my GCC. Thanks >> a >> lot. >> > > Yeah, although there's an actual bug that we need to fix here, I'd > still agree that using gcc 4 would be a good idea. We can fix the > --enable-complex problem, but I've just tried reverting to gcc 3.4, > and on my system there seems to be a linker problem that might be the > compiler's fault, not ours. > --- > Roy > |
From: Roy S. <roy...@ic...> - 2010-01-20 23:26:43
|
On Wed, 20 Jan 2010, Yujie wrote: > /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `PCCreate(_comm*, _p_PC**)' > /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `MatCreateMPIAIJ(_comm*, int, int, int, int, int, int > const*, int, int const*, _p_Mat**)' > /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: undefined reference to `VecCreateSeq(_comm*, int, _p_Vec**)' > collect2: ld returned 1 exit status > mpiCC: No such file or directory > make: *** [bin/amr-dbg] Error 1" > > I have included all the libs of PETSc. I also "make test" in PETSc. It works. I don't know why libmesh.so can't find the reference to the above > functions. Your linker problem is the same with me? Try "make -C contrib clean" and then recompiling. That fixed some cruft for me; not sure if it's the same underlying problem for you. > Whether can I avoid to compile amr-dbg? I don't think I will use it. Thanks a lot. If the problem is only with amr-dbg, you're fine. But while that's happened before (a bug in a third-party mpicxx script affected our tool linkage but not our example or application linkage) it's not likely. Can you compile the examples? --- Roy |
From: Yujie <rec...@gm...> - 2010-01-21 16:23:39
|
Dear Roy, I revise the compiler to g++ and gcc. it works. you are right. The problem is from mpicxx. Thanks a lot. Regards, Yujie On Wed, Jan 20, 2010 at 5:26 PM, Roy Stogner <roy...@ic...>wrote: > > On Wed, 20 Jan 2010, Yujie wrote: > > /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: >> undefined reference to `PCCreate(_comm*, _p_PC**)' >> /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: >> undefined reference to `MatCreateMPIAIJ(_comm*, int, int, int, int, int, int >> const*, int, int const*, _p_Mat**)' >> /home/yujie/codes/codes/libmesh/lib/i686-pc-linux-gnu_dbg/libmesh.so: >> undefined reference to `VecCreateSeq(_comm*, int, _p_Vec**)' >> collect2: ld returned 1 exit status >> mpiCC: No such file or directory >> make: *** [bin/amr-dbg] Error 1" >> >> I have included all the libs of PETSc. I also "make test" in PETSc. It >> works. I don't know why libmesh.so can't find the reference to the above >> functions. Your linker problem is the same with me? >> > > Try "make -C contrib clean" and then recompiling. That fixed some > cruft for me; not sure if it's the same underlying problem for you. > > > Whether can I avoid to compile amr-dbg? I don't think I will use it. >> Thanks a lot. >> > > If the problem is only with amr-dbg, you're fine. But while that's > happened before (a bug in a third-party mpicxx script affected our > tool linkage but not our example or application linkage) it's not > likely. Can you compile the examples? > --- > Roy > |
From: John P. <pet...@cf...> - 2010-01-21 16:25:25
|
On Thu, Jan 21, 2010 at 10:23 AM, Yujie <rec...@gm...> wrote: > Dear Roy, > > I revise the compiler to g++ and gcc. it works. you are right. The problem > is from mpicxx. Thanks a lot. Just to double-check: you are compiling in complex mode and there weren't any more compiler errors on our end? -- John |
From: Yujie <rec...@gm...> - 2010-01-21 16:27:57
|
Dear John, I met some errors I have mentioned. However, I take a look at the codes. They will not affect my codes. I comment them :). Thanks a lot. Regards, Yujie On Thu, Jan 21, 2010 at 10:25 AM, John Peterson < pet...@cf...> wrote: > On Thu, Jan 21, 2010 at 10:23 AM, Yujie <rec...@gm...> wrote: > > Dear Roy, > > > > I revise the compiler to g++ and gcc. it works. you are right. The > problem > > is from mpicxx. Thanks a lot. > > Just to double-check: you are compiling in complex mode and there > weren't any more compiler errors on our end? > > -- > John > |
From: Roy S. <roy...@ic...> - 2010-01-21 16:33:36
|
On Thu, 21 Jan 2010, John Peterson wrote: > On Thu, Jan 21, 2010 at 10:23 AM, Yujie <rec...@gm...> wrote: >> Dear Roy, >> >> I revise the compiler to g++ and gcc. it works. you are right. The problem >> is from mpicxx. Thanks a lot. > > Just to double-check: you are compiling in complex mode and there > weren't any more compiler errors on our end? I can't speak for Yujie, but --enable-complex links and runs the examples here now. The one remaining libMesh bug was trivial; the dense_matrix_blas_lapack.C stuff was instantiating for Real but also needed instantiations for Number. I'll try again after switching back to newer compiler versions and see if I can catch anything else. --- Roy |
From: Yujie <rec...@gm...> - 2010-01-21 16:38:26
|
Dear Roy, I met some problems in data communication between nodes of the cluster. My purpose running Libmesh with GCC3.2 is for this problem. I am using newer GCC. Thanks a lot. Regards, Yujie On Thu, Jan 21, 2010 at 10:33 AM, Roy Stogner <roy...@ic...>wrote: > > On Thu, 21 Jan 2010, John Peterson wrote: > > On Thu, Jan 21, 2010 at 10:23 AM, Yujie <rec...@gm...> wrote: >> >>> Dear Roy, >>> >>> I revise the compiler to g++ and gcc. it works. you are right. The >>> problem >>> is from mpicxx. Thanks a lot. >>> >> >> Just to double-check: you are compiling in complex mode and there >> weren't any more compiler errors on our end? >> > > I can't speak for Yujie, but --enable-complex links and runs the > examples here now. The one remaining libMesh bug was trivial; the > dense_matrix_blas_lapack.C stuff was instantiating for Real but also > needed instantiations for Number. > > I'll try again after switching back to newer compiler versions and > see if I can catch anything else. > --- > Roy > |