help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Failure to compile Octave 3.0.2 on AIX 5.3


From: John W. Eaton
Subject: Failure to compile Octave 3.0.2 on AIX 5.3
Date: Fri, 03 Oct 2008 09:52:31 -0400

On  3-Oct-2008, Alisdair Tullo wrote:

| I'm trying to compile Octave 3.0.2 on AIX 5.3.
| 
| I used the following configure options:
| 
| ./configure
| CC="xlc -q64"
| CFLAGS="-O -qstrict"
| CXX="xlC -q64"
| CXXFLAGS="-O -qrtti=all -qstrict"
| CPPFLAGS="-I/opt/fftw/fftw3_64/include
| -I/build/readline/include"
| LDFLAGS="-L/opt/fftw/fftw3_64/lib
| -L/build/readline/lib -L/usr/local/lib
| -L/build/octave-3.0.2/libcruft
| -L/build/octave-3.0.2/liboctave -lld -llapack"
| AR="ar -X64"
| --disable-shared --disable-dl
| --enable-static
| --enable-readline --prefix=/build/octave
| --with-blas=essl --with-lapack=essl
| --without-umfpack
| --without-colamd
| --without-ccolamd --without-cholmod
| --without-cxsparse
| 
| and on what is seemingly the final link step:
| 
| xlC -q64 -I/opt/fftw/fftw3_64/include
| -I/build/readline/include -I. -I.. -I../liboctave
| -I../src -I../libcruft/misc  -DHAVE_CONFIG_H   -O -qrtti=all -qstrict  \
| -L..   -L/opt/fftw/fftw3_64/lib
| -L/build/readline/lib -L/usr/local/lib
| -L/build/octave-3.0.2/libcruft
| -L/build/octave-3.0.2/liboctave -lld -llapack -o
| octave \
| main.o  balance.o  besselj.o  betainc.o  bsxfun.o  cellfun.o  chol.o
| ccolamd.o  colamd.o  colloc.o  conv2.o  convhulln.o  daspk.o  dasrt.o
| dassl.o  det.o  dispatch.o  eig.o  expm.o  fft.o  fft2.o  fftn.o  fftw.o
| filter.o  find.o  fsolve.o  gammainc.o  gcd.o  getgrent.o  getpwent.o
| getrusage.o  givens.o  hess.o  inv.o  kron.o  lsode.o  lu.o  luinc.o
| matrix_type.o  max.o  md5sum.o  pinv.o  qr.o  quad.o  qz.o  rand.o regexp.o
| schur.o  sort.o  sparse.o  spchol.o  spdet.o  spfind.o  spkron.o splu.o
| spparms.o  spqr.o  sqrtm.o  svd.o  syl.o  symrcm.o  time.o tsearch.o
| typecast.o  urlwrite.o  __contourc__.o  __delaunayn__.o __dsearchn__.o
| __gnuplot_raw__.o  __glpk__.o  __lin_interpn__.o __pchip_deriv__.o  __qp__.o
| __voronoi__.o \
| -L../liboctave -L../libcruft -L../src  \
| ../src/liboctinterp.a ../liboctave/liboctave.a     ../libcruft/libcruft.a \
|       \
|     -lessl -lessl \
| -lfftw3 -lreadline  -lcurses -lz -lm -L/opt/fftw/fftw3_64/lib
| -L/build/readline/lib -L/usr/local/lib
| -L/build/octave-3.0.2/libcruft
| -L/build/octave-3.0.2/liboctave -lld -llapack -lz -lm
| -lxlf90 -L/usr/lpp/xlf/lib -lxlopt -lxlf -lxlomp_ser
| 
| I get these link errors:
| 
| ld: 0711-317 ERROR: Undefined symbol: .mx_el_eq(const SparseBoolMatrix&,const 
double&)
| ld: 0711-317 ERROR: Undefined symbol: .mx_el_eq(const double&,const 
SparseBoolMatrix&)
| ld: 0711-317 ERROR: Undefined symbol: .mx_el_ne(const SparseBoolMatrix&,const 
double&)
| ld: 0711-317 ERROR: Undefined symbol: .mx_el_ne(const double&,const 
SparseBoolMatrix&)
| ld: 0711-317 ERROR: Undefined symbol: .mx_el_and(const 
SparseBoolMatrix&,const double&)
| ld: 0711-317 ERROR: Undefined symbol: .mx_el_and(const double&,const 
SparseBoolMatrix&)
| ld: 0711-317 ERROR: Undefined symbol: .mx_el_or(const SparseBoolMatrix&,const 
double&)
| ld: 0711-317 ERROR: Undefined symbol: .mx_el_or(const double&,const 
SparseBoolMatrix&)
| ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
| 
| -bnoquiet provides a little more info but nothing that looks useful to
| me -- output appended below.
| 
| I added the explicit -L/build/octave-3.0.2/libcruft
| -L/build/octave-3.0.2/liboctave in case this was some link problem
| with liboctave/libcruft, but it hasn't had any effect.
| 
| I've posted here first because I'm unsure if this is a problem of my making 
or a bug.
| 
| Thanks in advance for any help -- I realise AIX is not the most common of 
| platforms, but even general advice would be much appreciated.

I don't see where these symbols are declared.

What is the output from running

  nm boolSparse.o | grep mx_el_eq

on your system?  I'm just picking mx_el_eq as an example, since I
suspect the problem and solution is the same for all these symbols.
If that command produces C++ mangled names, then does AIX provide a
utility for demangling them, like c++filt?  If so, plesae use that to
demangle the names.

As far as I can tell, the only mx_el_eq symbols should be these

  mx_el_eq(SparseBoolMatrix const&, bool const&)
  mx_el_eq(SparseBoolMatrix const&, SparseBoolMatrix const&)
  mx_el_eq(bool const&, SparseBoolMatrix const&)

and they should be defined in boolSparse.o.  I don't see where the
versions with double scalar arguments are coming from.

jwe


reply via email to

[Prev in Thread] Current Thread [Next in Thread]