Octave Make failure

Labitt, Bruce labittb1 at tycoelectronics.com
Mon May 5 15:27:18 EDT 2008



-----Original Message-----
From: gnhlug-discuss-bounces at mail.gnhlug.org [mailto:gnhlug-discuss-bounces at mail.gnhlug.org] On Behalf Of Coleman Kane
Sent: Monday, May 05, 2008 3:12 PM
To: Jarod Wilson
Cc: gnhlug-discuss at mail.gnhlug.org
Subject: RE: Octave Make failure

On Mon, 2008-05-05 at 15:02 -0400, Jarod Wilson wrote:
> On Mon, 2008-05-05 at 14:33 -0400, Labitt, Bruce wrote:
> > On Mon, 2008-05-05 at 12:12 -0400, Labitt, Bruce wrote:
> > > I'm trying to compile octave on scientific linux 5.1 x86-64.  I have a
> > > make failure that I am trying to diagnose.  I saved the make log.  The
> > > failure seems to appear at line 2648 or so.
> > > 
> > > ../src/liboctinterp.so: undefined reference to
> > `__cxa_get_exception_ptr'
> > > ../src/liboctinterp.so: undefined reference to
> > `std::basic_istream<char,
> > > std::char_traits<char> >::ignore()'
> > > collect2: ld returned 1 exit status
> > > make[2]: *** [octave] Error 1
> > > make[2]: Leaving directory
> > > `/home/BDLabitt/octavesource/octave-3.0.1/src'
> > > make[1]: *** [src] Error 2
> > > make[1]: Leaving directory `/home/BDLabitt/octavesource/octave-3.0.1'
> > > make: *** [all] Error 2
> > > 
> > > Can anyone suggest what may be missing?  libxxx?  It looks like a very
> > > basic library - like a c++ lib or something.
> > 
> > Google suggests you're mixing compilers and libstdc++ from different
> > versions of gcc.
> > 
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20170
> [...]
> > [Labitt, Bruce]  It looks like I have libstdc++ and gcc and gcc-c++
> > at
> > the same level: 4.1.2-14.el5.  However, I do have both the i386 and
> > x86_64 compiler tools  installed.  Should I get rid of the 32 bit
> > ones?
> 
> Shouldn't hurt to have both installed. Although I suppose it could be
> that the wrong one gets used to build and the right one tries to get
> used at runtime, or vice-versa... If you want to make sure you're
> building a 64-bit binary, yeah, yank the 32-bit pieces and see what
> happens... (for me, 'yum remove \*.i386 \*.i686' is part of my usual
> post-install process on x86_64 boxes... :).

Bruce,

It would be helpful if you posted the linker line that produced this
error message as well. This is a common type of error you'll see when
the linker is not linking your C++ objects against libstdc++.so.

My guess would be that the linker is being called through gcc instead of
g++, the latter of which would add libstdc++ to the linker (ld) command
line.

-- 
Coleman Kane
[Labitt, Bruce] 

OK.  Here is the previous line(s) that cause grief.


gcc -c  -I. -I.. -I../liboctave -I../src -I../libcruft/misc  -DHAVE_CONFIG_H  -Wall -W -Wshadow -g -O2 main.c -o main.o

g++  -I. -I.. -I../liboctave -I../src -I../libcruft/misc  -DHAVE_CONFIG_H  -Wall -W -Wshadow -Wold-style-cast -g -O2 -rdynamic \
	-L..  -fPIC  -o octave \
	main.o  \
	-L../liboctave -L../libcruft -L../src -Wl,-rpath -Wl,/usr/local/lib/octave-3.0.1 \
	-loctinterp -loctave  -lcruft   \
	     \
	    \
	-lfftw3 -lreadline  -lncurses -ldl -lz -lm  -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../.. -L/lib/../lib64 -L/usr/lib/../lib64 -lz -lfrtbegin -lg2c -lm
../src/liboctinterp.so: undefined reference to `__cxa_get_exception_ptr'
../src/liboctinterp.so: undefined reference to `std::basic_istream<char, std::char_traits<char> >::ignore()'
collect2: ld returned 1 exit status
make[2]: *** [octave] Error 1
make[2]: Leaving directory `/home/BDLabitt/octavesource/octave-3.0.1/src'
make[1]: *** [src] Error 2
make[1]: Leaving directory `/home/BDLabitt/octavesource/octave-3.0.1'
make: *** [all] Error 2

Thanks for everyone's help so far...

Regards,
Bruce



More information about the gnhlug-discuss mailing list