From help-octave-request at bevo dot che dot wisc dot edu Mon Feb 2 12:54:45 2004 Subject: Compile error with octave and mpi (patched octave 2.1.31 source) From: Peter Nealy To: octave mailing list Date: Mon, 02 Feb 2004 06:54:11 -0600 I know this is an mpi question but I'm wondering if I could get some help here. I'm trying to compile octave-mpi, the source of which I obtained from hpc.sourceforge.net. It is an OSX site, but the source is just source from what I can tell. It is source with an mpi patch version run against octave-2.1.31. I keep getting hung with something to do with the stl libraries of gcc. Here is my gcc, make, and system info followed by my error output: root at helios octave-mpi # gcc --version gcc (GCC) 3.2.2 Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. root at helios octave-mpi # make --version GNU Make 3.80 Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. helios octave-mpi # uname -a Linux xxx.xxx.xxx.xxx 2.4.20-gentoo-r6 #8 Wed Jan 21 04:09:52 CST 2004 i686 Intel(R) Pentium(R) M processor 1300MHz GenuineIntel GNU/Linux ERROR OUTPUT c++ -c -I. -I.. -I../liboctave -I../src -I../libcruft/misc -I../glob -I../glob -DHAVE_CONFIG_H -mieee-fp -fno-rtti -fno-exceptions -fno-implicit-templates -g -O2 -Wall CColVector.cc -o CColVector.o /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.2/include/g++-v3/bits/stl_algobase.h: In function `bool std::equal(_InputIter1, _InputIter1, _InputIter2) [with _InputIter1 = const Complex*, _InputIter2 = int]': CColVector.cc:66: instantiated from here /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.2/include/g++-v3/bits/stl_algobase.h:681: invalid type argument of `unary *' make[2]: *** [CColVector.o] Error 1 make[2]: Leaving directory `/home/panealy/octave-mpi/liboctave' make[1]: *** [liboctave] Error 2 make[1]: Leaving directory `/home/panealy/octave-mpi' make: *** [all] Error 2 --------------- This is what I see in the function in CColVector.cc: 60:bool 61:ComplexColumnVector::operator == (const ComplexColumnVector& a) const 62:{ 63: int len = length (); 64: if (len != a.length ()) 65: return 0; 66: return equal (data (), a.data (), len); 67:} This is what I see stl_algobase.h 664: * This compares the elements of two ranges using at c == and returns true or 665: * false depending on whether all of the corresponding elements of the 666: * ranges are equal. 667: */ 668: template 669: inline bool 670: equal(_InputIter1 __first1, _InputIter1 __last1, 671: _InputIter2 __first2) 672: { 673: // concept requirements 674: __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>) 675: __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>) 676: __glibcpp_function_requires(_EqualOpConcept< 677: typename iterator_traits<_InputIter1>::value_type, 678: typename iterator_traits<_InputIter2>::value_type>) 679: 680: for ( ; __first1 != __last1; ++__first1, ++__first2) 681: if (!(*__first1 == *__first2)) 682: return false; 683: return true; 684: } I'm clueless as to how to fix that or what is wrong. Any suggestions? Thanks in advance! ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------