Octave Make failure

Coleman Kane cokane at cokane.org
Mon May 5 16:33:07 EDT 2008


On Mon, 2008-05-05 at 16:19 -0400, Jarod Wilson wrote:
> On Mon, 2008-05-05 at 16:01 -0400, Coleman Kane wrote:
> > > Could that be some "compatability" stuff that I have installed
> > > (recognizes old c/c++) ?
> > 
> > No such thing.
> 
> Yes and no. In addition to a gcc package, Red Hat ships a gcc34 package
> (and dependent bits). So it could be some sort of mixing. But this sorta
> thing generally doesn't happen. Was the system upgraded from an earlier
> release, by chance? Perhaps something didn't get completely updated...

The specific thing which I was pointing out was that his linker command
is being told to source in the GCC 3.4.6 library paths: 

"-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 ... " in the g++ command line.

This is likely the baddness. While it is true that Red Hat ships a gcc34
package, this is only so that you can use GCC 3.4 to compile and link
software that requires GCC 3.4. There is no "GCC 3.4 compatibility
library for GCC 4.x", especially none that is installed
at  /usr/lib/gcc/x86_64-redhat-linux/3.4.6, and mixing the two
*definitely* isn't sanctioned.

> 
> > Most likely your problem is that libstdc++.so from GCC 3.4.6 is being
> > preferred to the libstdc++.so from the compiler you are running (namely,
> > GCC 4.1.2). You are obviously not using the v3.4.6 headers (because
> > there is no -I argument to #include them), so you are trying to use the
> > GCC 4.1.2 C++ API with the GCC 3.4.6 C++ library, which is bad.
> 
> Yep, sounds like it. 'ldconfig -p | grep stdc++' might provide some
> further insight.

I doubt that this will really reveal the problem, as it is a link-time
problem, and ldd is only useful in this manner for tracking down
dependencies in already linked dynamic ELF images. For some reason,
octave wants to use GCC 3.4.6 at link-time, but it really should have
thought about that back when it was compiling too.... If octave uses
configure for configuring it's Makefiles, I'd recommend looking at the
config.log to see where it is getting the "link with
-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 option" instruction from.

Probably, if it depends upon other software, the configure script is
sourcing in the CFLAGS/LDFLAGS stuff from the dependency... you may have
a dependency that was built with GCC 3.4.

-- 
Coleman Kane



More information about the gnhlug-discuss mailing list