[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: clues to statically building octave w/extensions?
From: |
A. Danial |
Subject: |
Re: clues to statically building octave w/extensions? |
Date: |
Fri, 15 Jun 2001 06:52:39 -0700 |
User-agent: |
Mutt/1.2.5i |
On Wed, Jun 13, 2001 at 01:24:34PM -0500, Bill Lash wrote:
> "A. Danial" wrote:
> > c++ -I. -I.. -I../liboctave -I../src -I../libcruft/misc -I../dlfcn
> > -I../dlfcn -I../glob -I../glob -DHAVE_CONFIG_H -mminimal-toc
> > -fno-implicit-templates -g -O2 -Wall -L.. -g -o octave octave.o
> > builtins.o ops.o ../libcruft/blas-xtra/xerbla.o balance.o
> > besselj.o betainc.o chol.o colloc.o dassl.o det.o eig.o expm.o
> > fft.o fft2.o filter.o find.o fsolve.o gammainc.o getgrent.o
> > getpwent.o getrusage.o givens.o hess.o ifft.o ifft2.o inv.o log.o
> > lpsolve.o lsode.o lu.o minmax.o pinv.o qr.o quad.o qz.o rand.o
> > schur.o sort.o svd.o syl.o time.o oregonator.o -L../liboctave
> > -L../libcruft -L../src ../src/liboctinterp.a
> > ../liboctave/liboctave.a ../libcruft/libcruft.a
> > ../readline/libreadline.a ../kpathsea/libkpathsea.a ../glob/glob.o
> > ../glob/fnmatch.o -L../dlfcn -ldlfcn -ll -lld -ll -lcurses -lm
> > -lg2c -lm
> > -L/usr/local/gcc/lib/gcc-lib/rs6000-ibm-aix4.3.2.0/2.95.2
> > -L/usr/local/gcc/lib -lm
> Interesting that this manages to link, but mkoctfile can't seem to
> link. Just out of curiosity, in the mkoctfile script what are SH_LD,
> SH_LDFLAGS, and ldflags set to.
They are
: ${SH_LD="c++"}
: ${SH_LDFLAGS="-shared"}
ldflags=
on both the linux boxes (where mkoctfile works) and RS/6k's (where
mkoctfile fails).
> I had a problem with dynamic linking that was due to having a broken
> installation of libstdc++.so. Basically, I had a libstdc++.so.2.9.0 in
> my library search path, but there was no file libstdc++.so linked to
> it. This caused the link stage to use libstdc++.a so it statically
> linked that library. Unfortunately this made it so that I couldn't
> create .oct files. It took me a long time to figure out what was going
> wrong, but once I figured it out, I came up with a work around. (I
> don't have root on the machine, and so far I haven't been able to
> persuade anyone who does that it is important).
This is revealing information; when I issue
find /usr/local/gcc/lib -name "lib*"
I see that every library file either ends with ".a" or "a.2.10.0".
There's not a single .so or .so.XX library! This must explain
why the shared objects never load. Time to go back and rebuild
gcc with a different setup (I think configure --enable-shared is
what gcc needs). -- Al
-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.
Octave's home on the web: http://www.octave.org
How to fund new projects: http://www.octave.org/funding.html
Subscription information: http://www.octave.org/archive.html
-------------------------------------------------------------