[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Problems building Octave on Solaris 2.9 with gcc-3.4.2 and f2c
From: |
Mulley, Nikhil |
Subject: |
RE: Problems building Octave on Solaris 2.9 with gcc-3.4.2 and f2c |
Date: |
Wed, 2 Aug 2006 21:54:47 +0530 |
I
suggest to use the combination of Sun studio provided fortran and the gcc, I
guess that should address your concern.
Regards,
Nikhil
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 :
[622] | 17736|
292|FUNC |GLOB |0 |7
|main
[25]
| 0| 0|FILE |LOCL |0
|ABS |main.c
[24] | 0|
0|FILE |LOCL |0 |ABS |main.xxx
[858] |
0| 0|NOTY |GLOB |0
|UNDEF |MAIN__
[672]
| 0|
0|NOTY |GLOB |0 |UNDEF |malloc
[774] |
0| 0|NOTY |GLOB |0 |UNDEF
|memcpy
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.