Install Octave 2.0.1 on Sparc20 And MkLinux

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Install Octave 2.0.1 on Sparc20 And MkLinux

Jay J. Williams
Hi,

I've been trying to get Octave to compile on a sprac20 workstation and
my MkLinux system at home.  I'm using g++ version 2.7.2

On the Sparc20 I get the following error:


c++ -c  -I. -I.. -I../liboctave -I../src -I../glob -I../libcruft/misc
-DHAVE_CONFIG_H  -fno-implicit-templates  -g -O2 -Wall sighandlers.cc
sighandlers.cc: In function `void my_friendly_exit(const char *, int)':
sighandlers.cc:128: passing `void (*)()' as argument 2 of
`octave_set_signal_handler(int, int (*)(int))'
sighandlers.cc: In function `int (* octave_set_signal_handler(int, int
(*)(int)))(int)':
sighandlers.cc:168: assignment to `void (*)(...)' from `int (*)(int)'
sighandlers.cc:173: return to `int (*)(int)' from `void (*)(...)'
sighandlers.cc:177: warning: control reaches end of non-void function
`octave_set_signal_handler(int, int (*)(int))'
sighandlers.cc: In function `int generic_sig_handler(int)':
sighandlers.cc:184: warning: `return' with no value, in function returning
non-void
sighandlers.cc: In function `int sigchld_handler(int)':
sighandlers.cc:243: warning: `return' with no value, in function returning
non-void
sighandlers.cc: In function `int sigint_handler(int)':
sighandlers.cc:285: warning: `return' with no value, in function returning
non-void
sighandlers.cc:274: warning: unused parameter `int sig'
sighandlers.cc: In function `int sigpipe_handler(int)':
sighandlers.cc:303: warning: `return' with no value, in function returning
non-void
sighandlers.cc: In function `struct octave_interrupt_handler *
octave_ignore_interrupts()':
sighandlers.cc:327: passing `void (*)()' as argument 2 of
`octave_set_signal_handler(int, int (*)(int))'
sighandlers.cc: In function `void install_signal_handlers()':
sighandlers.cc:415: passing `void (*)()' as argument 2 of
`octave_set_signal_handler(int, int (*)(int))'
sighandlers.cc:455: passing `void (*)()' as argument 2 of
`octave_set_signal_handler(int, int (*)(int))'
make[2]: *** [sighandlers.o] Error 1
make[2]: Leaving directory `/files1/lip-image/develop/octave-2.0.1/src'
make[1]: *** [src] Error 2
make[1]: Leaving directory `/files1/lip-image/develop/octave-2.0.1'
make: *** [all] Error 2
jjw has logged on ttyr2 from :0.0.
{54}[/homes/jjw/lipreading/develop/octave-2.0.1]%cd src
{55}[/homes/jjw/lipreading/develop/octave-2.0.1/src]%emacs sighandlers.cc
&

======================


Under MkLinux I'm lost here:


 O  /
  \/                         C U T   H E R E
  /\  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 O  \



c++  -I. -I.. -I../liboctave -I../src -I../glob -I../libcruft/misc
-DHAVE_CONFI
G_H  -fno-implicit-templates  -g -O2 -Wall -L.. -u MAIN__   -fPIC -g -o
octave \
octave.o builtins.o  balance.o  chol.o  colloc.o  dassl.o  det.o  eig.o
expm.o
 fft.o  fft2.o  filter.o  find.o  fsolve.o  fsqp.o  getgrent.o  getpwent.o
getr
usage.o  givens.o  hess.o  ifft.o  ifft2.o  inv.o  log.o  lpsolve.o
lsode.o  lu
.o  minmax.o  npsol.o  pinv.o  qpsol.o  qr.o  quad.o  qzval.o  rand.o
schur.o
sort.o  svd.o  syl.o  time.o \
-L../liboctave -L../libcruft -L../readline -L../kpathsea -L../glob
-L../dlfcn -L
.  \
-loctinterp -loctave -ltinst -lcruft  -lreadline -lkpathsea -lglob  \
-lF77 -lI77  -lncurses -lm  -lg++
/usr/lib/libm.a(cabs.o): In function `z_abs':
cabs.o(.text+0x268): multiple definition of `z_abs'
/usr/lib/libF77.a(z_abs.o)(.text+0x4): first defined here
octave.o: In function `str_vec_compare(void const *, void const *)':
/home/beta/src/octave-2.0.1/src/../liboctave/str-vec.h:38: undefined
reference t
o `basic_string<char, string_char_traits<char>
>::compare(basic_string<char, str
ing_char_traits<char> > const &, unsigned long, unsigned long) const'
octave.o: In function `initialize_globals(basic_string<char,
string_char_traits<
char> > const &)':
/home/beta/src/octave-2.0.1/src/octave.cc:199: undefined reference to
`basic_str
ing<char, string_char_traits<char> >::rfind(char, unsigned long) const'
octave.o: In function `initialize_globals(basic_string<char,
string_char_traits<
char> > const &)':


I have the following configuration:

libg++-devel-2.7.1.4-4
libc-5.2.18-5g
libc-static-5.2.18-5g
libc-devel-5.2.18-5g
libc-include-5.2.18-5g


______________________________
\                             \          ___        ______ |
 \                             \        /   \___-=0`/|0`/__|
  \      Help....               \_______\          / | /    )
  /                             /        `/-==__ _/__|/__=-|
 /                             /         *             \ | |
/_____________________________/                        (o)




                                              )|(
                                             (o o)
------------------------------------------ooO-(_)-Ooo-------------------------
Jay J. Williams                       '||'                          \\|//
E-Mail: [hidden email]                    ||   ....   .... ...          - -
Northwestern University                ||  '' .||   '|.  |          (o o)
EECS Department                        ||  .|' ||    '|.|             J
2145 Sheridan Road                 || .|'  '|..'|'    '|              -
Evanston, IL 60208-3118             '''            .. |              \_/
Voice: (847) 467-1949                               ''        
FAX:   (847) 491-4455 URL ->  http://www.eecs.nwu.edu/~jjw
            ** This Message Was Printed On 100% Recycled Electronics **  
============ooO=(-)=Ooo==================ooO=======Ooo========================
               (o o)
                )|(




Reply | Threaded
Open this post in threaded view
|

Install Octave 2.0.1 on Sparc20 And MkLinux

John W. Eaton-6
On 17-Jan-1997, Jay J. Williams <[hidden email]> wrote:

: I've been trying to get Octave to compile on a sprac20 workstation and
: my MkLinux system at home.  I'm using g++ version 2.7.2
:
: On the Sparc20 I get the following error:
:
: c++ -c  -I. -I.. -I../liboctave -I../src -I../glob -I../libcruft/misc
: -DHAVE_CONFIG_H  -fno-implicit-templates  -g -O2 -Wall sighandlers.cc
: sighandlers.cc: In function `void my_friendly_exit(const char *, int)':
: sighandlers.cc:128: passing `void (*)()' as argument 2 of
: `octave_set_signal_handler(int, int (*)(int))'
: sighandlers.cc: In function `int (* octave_set_signal_handler(int, int
: (*)(int)))(int)':
: sighandlers.cc:168: assignment to `void (*)(...)' from `int (*)(int)'

This looks like the same problem with incorrect definitions of
SIG_IGN, SIG_DFL, or SIG_ERR in signal.h and maybe sys/signal.h.  My
current version of INSTALL.OCTAVE says:

   * If you encounter errors like

          passing `void (*)()' as argument 2 of
            `octave_set_signal_handler(int, void (*)(int))'

     or

          warning: ANSI C++ prohibits conversion from `(int)' to `(...)'

     while compiling `sighandlers.cc', you may need to edit some files
     in the gcc include subdirectory to add proper prototypes for
     functions there.  For example, Ultrix 4.2 needs proper
     declarations for the `signal()' and the `SIG_IGN' macro in the
     file `signal.h'.

     On some systems the `SIG_IGN' macro is defined to be something like
     this:

          #define  SIG_IGN  (void (*)())1

     when it should really be something like:

          #define  SIG_IGN  (void (*)(int))1

     to match the prototype declaration for `signal()'.  This change
     should also be made for the `SIG_DFL' and `SIG_ERR' symbols.  It
     may be necessary to change the definitions in `sys/signal.h' as
     well.

     The gcc fixincludes/fixproto script should probably fix these
     problems when gcc installs its modified set of header files, but I
     don't think that's been done yet.


: sighandlers.cc: In function `int sigchld_handler(int)':
: sighandlers.cc:243: warning: `return' with no value, in function returning
: non-void

But this looks like configure found that the return type for signal()
on your system is void, but it is declared to return int when
compiling starts.  You'll need to figure out why that is happening.
Do you have g++ and libg++ properly installed?


: Under MkLinux I'm lost here:

: /usr/lib/libm.a(cabs.o): In function `z_abs':
: cabs.o(.text+0x268): multiple definition of `z_abs'
: /usr/lib/libF77.a(z_abs.o)(.text+0x4): first defined here

Apparently libm and libF77 both define z_abs.  I don't know if they
are the same function or if they are even supposed to do the same
thing.  If they are compatible, it would probably be best to remove
the z_abs function from libF77 (you need libm to use that anyway, I
think).

: octave.o: In function `str_vec_compare(void const *, void const *)':
: /home/beta/src/octave-2.0.1/src/../liboctave/str-vec.h:38: undefined
: reference to `basic_string<char, string_char_traits<char>
: >::compare(basic_string<char, string_char_traits<char> > const &,
: unsigned long, unsigned long) const'
: octave.o: In function `initialize_globals(basic_string<char,
: string_char_traits<char> > const &)':
: /home/beta/src/octave-2.0.1/src/octave.cc:199: undefined reference to
: `basic_string<char, string_char_traits<char> >::rfind(char, unsigned
: long) const'
: octave.o: In function `initialize_globals(basic_string<char,
: string_char_traits<
: char> > const &)':

I don't know why

  string::compare (const string&, unsigned long, unsigned long) const
  string::rfind (char, unsigned long) const

would be missing from libstdc++ on your system.  What does

  nm /path/to/libstdc++.a | c++filt | grep compare

show?

jwe

Reply | Threaded
Open this post in threaded view
|

Re: Install Octave 2.0.1 on Sparc20 And MkLinux

Jay J. Williams
On Tue, 21 Jan 1997, John W. Eaton wrote:

> : Under MkLinux I'm lost here:
>
> : /usr/lib/libm.a(cabs.o): In function `z_abs':
> : cabs.o(.text+0x268): multiple definition of `z_abs'
> : /usr/lib/libF77.a(z_abs.o)(.text+0x4): first defined here
>
> Apparently libm and libF77 both define z_abs.  I don't know if they
> are the same function or if they are even supposed to do the same
> thing.  If they are compatible, it would probably be best to remove
> the z_abs function from libF77 (you need libm to use that anyway, I
> think).
>
> : octave.o: In function `str_vec_compare(void const *, void const *)':
> : /home/beta/src/octave-2.0.1/src/../liboctave/str-vec.h:38: undefined
> : reference to `basic_string<char, string_char_traits<char>
> : >::compare(basic_string<char, string_char_traits<char> > const &,
> : unsigned long, unsigned long) const'
> : octave.o: In function `initialize_globals(basic_string<char,
> : string_char_traits<char> > const &)':
> : /home/beta/src/octave-2.0.1/src/octave.cc:199: undefined reference to
> : `basic_string<char, string_char_traits<char> >::rfind(char, unsigned
> : long) const'
> : octave.o: In function `initialize_globals(basic_string<char,
> : string_char_traits<
> : char> > const &)':
>
> I don't know why
>
>   string::compare (const string&, unsigned long, unsigned long) const
>   string::rfind (char, unsigned long) const
>
> would be missing from libstdc++ on your system.  What does
>
>   nm /path/to/libstdc++.a | c++filt | grep compare
>
> show?
Hi John,

 nm /path/to/libstdc++.a | c++filt | grep compare

shows the following:

[jjw@oktoberfest lib]$ nm libstdc++.a | c++filt | grep compare
00001fb8 T basic_string<char, string_char_traits<char> >::compare(char
const *,
unsigned int) const
000011bc T basic_string<char, string_char_traits<char> >::compare(char
const *,
unsigned int, unsigned int) const
000010bc T basic_string<char, string_char_traits<char>
>::compare(basic_string<c
har, string_char_traits<char> > const &, unsigned int, unsigned int) const
000000c0 T string_char_traits<char>::compare(char const *, char const *,
unsigne
d int)
0000021c T __fast_compare(char const *, char const *)
000005b0 T __attr_type_info::__rtti_compare(type_info const &) const
00000704 T __ptmd_type_info::__rtti_compare(type_info const &) const
000002d8 T __user_type_info::__rtti_compare(type_info const &) const
000001a8 T __builtin_type_info::__rtti_compare(type_info const &) const
000004b4 T __pointer_type_info::__rtti_compare(type_info const &) const
0000002c T type_info::__rtti_compare(type_info const &) const


I haven't had time to look at the SPARC20 problems yet, but I'll report
back soon:)


Take care.



                                              )|(
                                             (o o)
------------------------------------------ooO-(_)-Ooo-------------------------
Jay J. Williams                       '||'                          \\|//
E-Mail: [hidden email]                    ||   ....   .... ...          - -
Northwestern University                ||  '' .||   '|.  |          (o o)
EECS Department                        ||  .|' ||    '|.|             J
2145 Sheridan Road                 || .|'  '|..'|'    '|              -
Evanston, IL 60208-3118             '''            .. |              \_/
Voice: (847) 467-1949                               ''        
FAX:   (847) 491-4455 URL ->  http://www.eecs.nwu.edu/~jjw
            ** This Message Was Printed On 100% Recycled Electronics **  
============ooO=(-)=Ooo==================ooO=======Ooo========================
               (o o)
                )|(