help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

octave-forge compiles, but...


From: Tom G. Smith (Smitty)
Subject: octave-forge compiles, but...
Date: Wed, 9 Jun 2004 16:54:14 -0500 (CDT)

I've gotten octave-forge to compile and install on octave 2.1.57,
but I'm not at all sure I have anything more than compiled garbage.
I had to make numerous source code changes, some of which were
correcting simple typographical errors, so I know this code has never
been successfully compiled and tested.  As previously indicated the
make of the latest CVS of octave-forge first failed with these messages:

make[2]: Entering directory `/contrib/octave/octave-forge/main/fixed'
Compiling fixedCNDArray.o
g++ -c -fPIC -I/usr/local/include/octave-2.1.57
-I/usr/local/include/octave-2.1.57/octave -I/usr/local/include -mieee-fp -g
-O2 -DHAVE_OCTAVE_21 -DOCTAVE_FORGE -DHAVE_ND_ARRAYS -DTYPEID_HAS_CLASS
-DCLASS_HAS_LOAD_SAVE fixedCNDArray.cc -o fixedCNDArray.o
fixedCNDArray.cc: In member function `FixedComplexNDArray
   FixedComplexNDArray::sumsq(int) const':
fixedCNDArray.cc:638: operands to ?: have different types
make[2]: *** [fixedCNDArray.o] Error 1
make[2]: Leaving directory `/contrib/octave/octave-forge/main/fixed'
make[1]: *** [fixed/] Error 2
make[1]: Leaving directory `/contrib/octave/octave-forge/main'
make: *** [main/] Error 2

Guessing the type was intended to be double, since conj and imag
are declared in /usr/local/include/octave-2.1.57/octave/lo-mappers.h
as -

        extern double conj (double x);
        extern double imag (double x);

I got the make to run further, by changing fixedCNDArray.cc as follows:

        cd /contrib/octave/octave-forge/main/fixed
        bash-2.05b$ diff fixedCNDArray.cc fixedCNDArray.cc.d040609.t150924.root
635,636c635,636
<   MX_ND_REDUCTION (acc += (imag (elem (iter_idx)) > 0) ? real (elem
(iter_idx) *
<                  conj (elem (iter_idx))) : pow (elem (iter_idx), 2),
---
>   MX_ND_REDUCTION (acc += (imag (elem (iter_idx)) > 0) ? elem (iter_idx) *
>                  conj (elem (iter_idx)) : pow (elem (iter_idx), 2),

The make then died with these messages:

make[3]: Entering directory `/contrib/octave/octave-forge/main/fixed/examples'
Depending ffft.cc
rm -f ffft.d
g++ -M -I/usr/local/include/octave-2.1.57
-I/usr/local/include/octave-2.1.57/octave -I/usr/local/include -mieee-fp -g
-O2 -I../ -DHAVE_OCTAVE_21 -DHAVE_RESIZE_AND_FILL ffft.cc | /bin/sed -e
's,^[^:]*/\(.*\.o\):,\1:,' -e 's,ffft\.o,pic/& & ffft.d,g' > ffft.d-t && mv
ffft.d-t ffft.d
In file included from ffft.h:34,
                 from ffft.cc:29:
../fixed.h:42:27: fixedCNDArary.h: No such file or directory
Depending fixed_inc.cc
rm -f fixed_inc.d
g++ -M -I/usr/local/include/octave-2.1.57
-I/usr/local/include/octave-2.1.57/octave -I/usr/local/include -mieee-fp -g
-O2 -I../ -DHAVE_OCTAVE_21 -DHAVE_RESIZE_AND_FILL fixed_inc.cc | /bin/sed -e
's,^[^:]*/\(.*\.o\):,\1:,' -e 's,fixed_inc\.o,pic/& & fixed_inc.d,g' >
fixed_inc.d-t && mv fixed_inc.d-t fixed_inc.d
In file included from fixed_inc.cc:28:
../fixed.h:42:27: fixedCNDArary.h: No such file or directory
Compiling ffft.o
g++ -c -fPIC -I/usr/local/include/octave-2.1.57
-I/usr/local/include/octave-2.1.57/octave -I/usr/local/include -mieee-fp -g
-O2 -I../ -DHAVE_OCTAVE_21 -DHAVE_RESIZE_AND_FILL ffft.cc -o ffft.o
In file included from ffft.h:34,
                 from ffft.cc:29:
../fixed.h:42:27: fixedCNDArary.h: No such file or directory
make[3]: *** [ffft.o] Error 1
make[3]: Leaving directory `/contrib/octave/octave-forge/main/fixed/examples'
make[2]: *** [examples] Error 2
make[2]: Leaving directory `/contrib/octave/octave-forge/main/fixed'
make[1]: *** [fixed/] Error 2
make[1]: Leaving directory `/contrib/octave/octave-forge/main'
make: *** [main/] Error 2

Guessing the author had simply made a typographical error, I got the
make to continue by changing fixed.h as follows:

bash-2.05b$ cd /contrib/octave/octave-forge/main/fixed/
bash-2.05b$ diff fixed.h fixed.h.d040609.t153847.root
42c42
< #include "fixedCNDArray.h"
---
> #include "fixedCNDArary.h"

The make then died with these errors:

make[2]: Entering directory `/contrib/octave/octave-forge/main/gsl'
/bin/sh buildgsl_sf.sh
mkoctfile -DHAVE_OCTAVE_21 -v legendre_sphPlm_array.cc
g++ -c -fPIC -I/usr/local/include/octave-2.1.57
-I/usr/local/include/octave-2.1.57/octave -I/usr/local/include -mieee-fp -g
-O2 -DHAVE_OCTAVE_21 legendre_sphPlm_array.cc -o legendre_sphPlm_array.o
g++ -shared -o legendre_sphPlm_array.oct legendre_sphPlm_array.o
-L/usr/local/lib/octave-2.1.57 -loctinterp -loctave -lcruft -llapack -lblas
-lreadline -lncurses -lm -L/usr/lib/gcc-lib/i386-redhat-linux/3.2.2
-L/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../.. -lfrtbegin -lg2c -lm
-lgcc_s
mkoctfile -DHAVE_OCTAVE_21 -v -lgsl gsl_sf.cc
g++ -c -fPIC -I/usr/local/include/octave-2.1.57
-I/usr/local/include/octave-2.1.57/octave -I/usr/local/include -mieee-fp -g
-O2 -DHAVE_OCTAVE_21 gsl_sf.cc -o gsl_sf.o
gsl_sf.cc: In function `octave_value_list Fhazard(const octave_value_list&,
   int)':
gsl_sf.cc:638: `gsl_sf_hazard' undeclared (first use this function)
gsl_sf.cc:638: (Each undeclared identifier is reported only once for each
   function it appears in.)
gsl_sf.cc:646: `gsl_sf_hazard_e' undeclared (first use this function)
gsl_sf.cc: In function `octave_value_list Fgamma_inc(const octave_value_list&,
   int)':
gsl_sf.cc:5831: `gsl_sf_gamma_inc' undeclared (first use this function)
gsl_sf.cc:5840: `gsl_sf_gamma_inc_e' undeclared (first use this function)
make[2]: *** [gsl_sf.oct] Error 1
make[2]: Leaving directory `/contrib/octave/octave-forge/main/gsl'
make[1]: *** [gsl/] Error 2
make[1]: Leaving directory `/contrib/octave/octave-forge/main'
make: *** [main/] Error 2

To continue I changed gsl_sf.cc as follows:

bash-2.05b$ diff gsl_sf.cc gsl_sf.cc.d040609.t155818.root
23,26d22
< double gsl_sf_hazard (double x );
< int gsl_sf_hazard_e (double x , gsl_sf_result * result );
< double gsl_sf_gamma_inc (double a , double x );
< int gsl_sf_gamma_inc_e (double a , double x , gsl_sf_result * result );

The make then died with these errors:

mkoctfile -DHAVE_OCTAVE_21 -v struct.cc
g++ -c -fPIC -I/usr/local/include/octave-2.1.57
-I/usr/local/include/octave-2.1.57/octave -I/usr/local/include -mieee-fp -g
-O2 -DHAVE_OCTAVE_21 struct.cc -o struct.o
g++ -shared -o struct.oct struct.o -L/usr/local/lib/octave-2.1.57 -loctinterp
-loctave -lcruft -llapack -lblas -lreadline -lncurses -lm
-L/usr/lib/gcc-lib/i386-redhat-linux/3.2.2
-L/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../.. -lfrtbegin -lg2c -lm
-lgcc_s
/usr/local/lib/octave-2.1.57/liboctinterp.a(ov-struct.o)(.text+0x3518): In
function `Fstruct(octave_value_list const&, int)':
/contrib/octave/octave-2.1.57/src/ov-struct.cc:514: multiple definition of
`Fstruct(octave_value_list const&, int)'
struct.o(.text+0x20c):/contrib/octave/octave-forge/main/struct/struct.cc:40:
first defined here
/usr/bin/ld: Warning: size of symbol `Fstruct(octave_value_list const&, int)'
changed from 7379 to 4307 in
/usr/local/lib/octave-2.1.57/liboctinterp.a(ov-struct.o)
collect2: ld returned 1 exit status
make[2]: *** [struct.oct] Error 1
make[2]: Leaving directory `/contrib/octave/octave-forge/main/struct'
make[1]: *** [struct/] Error 2
make[1]: Leaving directory `/contrib/octave/octave-forge/main'
make: *** [main/] Error 2

To continue I changed struct.cc as follows:

bash-2.05b$ diff struct.cc struct.cc.d040609.t162418.root
31d30
< #if 0
139d137
< #endif

The make then completed, but I strongly suspect all I have is garbage
(GIGO).


------------------------------------------------------------------------------
This e-mail is intended for the use of the addressee(s) only and may contain
privileged, confidential, or proprietary information that is exempt from
disclosure under law.  If you have received this message in error, please
inform us promptly by reply e-mail, then delete the e-mail and destroy any
printed copy.   Thank you.
==============================================================================



-------------------------------------------------------------
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
-------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]