Problems building Octave on Solaris 2.9 with gcc-3.4.2 and f2c
From:
richard . roger
Subject:
Problems building Octave on Solaris 2.9 with gcc-3.4.2 and f2c
Date:
Wed, 2 Aug 2006 09:26:42 +1000
Dear Octave Users
I am trying to build Octave-2.1.73 under Sun Solaris 9 using gcc-3.4.2 and f2c (as we don't have a Fortran compiler installed). I build the components as "shared" as I wish to use Octave-forge. The build fails due to causes related to f2c, generating this (edited) error message :
Undefined first referenced
symbol in file
MAIN__ <path-to>/local/lib/libf2c.so
ld: fatal: Symbol referencing errors. No output written to octave
collect2: ld returned 1 exit status
Despite specifying the path to the directory where libf2c.so resides, I had to edit the generated Makeconf file and add "-lf2c" to the LIBS variable. "f2c" itself is found OK. It seems the autoconfig process might need some tuning. For "configure", I use "--enable-shared --disable-static --with-f2c LDFLAGS="-L<path-to>/local/lib -R<path-to>/local/lib" . I do not have any old versions of Octave installed.
I have built "f2c" and "libf2c.a/libf2c.so". Here is some output of "nm <path-to>/local/lib/libf2c.so", just in case this means something to someone :
From stuff on the Web, I gather that the MAIN__ is something to do with building f2c as shared.
I have also tried building Octave-2.9.6 but that fails with
In file included from Quad.cc:32:
sun-utils.h: In function `double access_double(double*)':
sun-utils.h:40: warning: use of old-style cast
sun-utils.h: In function `void assign_double(double*, double)':
sun-utils.h:55: warning: use of old-style cast
sun-utils.h:56: warning: use of old-style cast
file-ops.cc: In static member function `static std::string file_ops::canonicalize_file_name(const std::string&, std::string&)':
file-ops.cc:453: warning: comparison between signed and unsigned integer expressions
sparse-dmsolve.cc:355: warning: 'void solve_singularity_warning(double)' defined but not used
CmplxDET.cc: In member function `bool ComplexDET::value_will_overflow() const':
CmplxDET.cc:40: error: `log2' undeclared (first use this function)
CmplxDET.cc:40: error: (Each undeclared identifier is reported only once for each function it appears in.)
CmplxDET.cc: In member function `bool ComplexDET::value_will_underflow() const':
CmplxDET.cc:48: error: `log2' undeclared (first use this function)
CmplxDET.cc: In member function `void ComplexDET::initialize10()':
CmplxDET.cc:57: error: `log2' undeclared (first use this function)
CmplxDET.cc:58: error: `round' undeclared (first use this function)
CmplxDET.cc: In member function `void ComplexDET::initialize2()':
CmplxDET.cc:70: error: `round' undeclared (first use this function)
CmplxDET.cc:72: error: `exp2' undeclared (first use this function)
CmplxDET.cc: In member function `Complex ComplexDET::value() const':
CmplxDET.cc:79: error: `exp2' undeclared (first use this function)
make[2]: *** [pic/CmplxDET.o] Error 1
I cannot find where "log2" and "exp2" are defined/declared.
Any hints on how to build Octave on Solaris 2.9 would be welcome. I want to use Octave and Octave-forge to do some Empirical Mode Decomposition (Intrinsic Mode Function) analysis using Rilling's "emd.m" .
Thanks,
Richard E. Roger
Dr. R. E. Roger NSW Department of
Primary Industries
Spatial Information Officer Systems 161 Kite St
Resource Information Unit Locked Bag 21
ORANGE NSW 2800
ph: (02) 6391 3697 fax: (02) 6391 3740
This message is intended for the addressee named and may contain confidential information. If you are not the intended recipient or received it in error, please delete the message and notify sender. Views expressed are those of the individual sender and are not necessarily the views of their organisation.