help-octave
[Top][All Lists]
Advanced

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

Re: issues compiling 2.1.69 on FreeBSD 5.4


From: John W. Eaton
Subject: Re: issues compiling 2.1.69 on FreeBSD 5.4
Date: Thu, 21 Apr 2005 15:29:26 -0400

On 21-Apr-2005, Joan Picanyol i Puig <address@hidden> wrote:

| * John W. Eaton <address@hidden> [20050421 18:10]:
| > Octave should only need standard and relatively basic functionality.
| > I think the real problem was an oops in configure.in (see below for a
| > patch).  I'm not sure how that ended up in the sources that were
| > distributed.
| 
| No luck, I still get the following:
| 
| g++ -I/usr/include -I/usr/local/include -I. -I.. -I../liboctave -I../src 
-I../libcruft/misc  -I../glob -I../glob -DHAVE_CONFIG_H -mieee-fp -Wall -W 
-Wshadow -g -O2  \
| -L..  -fPIC -L/usr/lib -L/usr/local/lib -o octave \
| main.o  balance.o  besselj.o  betainc.o  chol.o  colloc.o  daspk.o  dasrt.o  
dassl.o  det.o  eig.o  expm.o  fft.o  fft2.o  fftn.o  fftw_wisdom.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  lpsolve.o  lsode.o  lu.o  minmax.o  pinv.o  
qr.o  quad.o  qz.o  rand.o  schur.o  sort.o  sqrtm.o  svd.o  syl.o  time.o \
| -L../liboctave -L../libcruft -L../src  \
| ../src/liboctinterp.a ../liboctave/liboctave.a  ../libcruft/libcruft.a  
../glob/glob.o ../glob/fnmatch.o  \
|  -lcblas -lf77blas -latlas -lfftw3 -lreadline  -lncurses -lm  -L/usr/lib 
-L/usr/local/lib -lg2c -lm
| ../liboctave/liboctave.a(file-ops.o)(.text+0x23b): In function 
`file_ops::tempnam(std::string const&, std::string const&, std::string&)':
| /fs/scratch/mount/scratch/build/octave-2.1.69/liboctave/file-ops.cc:419: 
warning: warning: tempnam() possibly used unsafely; consider using mkstemp()
| ../liboctave/liboctave.a(glob-match.o)(.text+0x124): In function 
`glob_match::match(std::string const&)':
| /usr/include/c++/3.4/bits/basic_string.h:368: undefined reference to 
`fnmatch(char const*, char const*, int)'
| gmake[2]: *** [octave] Error 1
| gmake[2]: Leaving directory 
`/fs/scratch/mount/scratch/build/octave-2.1.69/src'
| gmake[1]: *** [src] Error 2
| gmake[1]: Leaving directory `/fs/scratch/mount/scratch/build/octave-2.1.69'
| gmake: *** [all] Error 2
| 582,p3,2$                                      
| 
| The symbols is in the glob/ libraries:
| 
| 583,p3,1$ nm glob/fnmatch.o | grep fnmatch
| 00000e68 T fnmatch
| 00000000 t internal_fnmatch
| 584,p3,0$ nm glob/glob.o | grep fnmatch
|          U fnmatch
| 
| but the error shows the system include file. FWIW, adding -lc to the
| command line does not solve the issue either.

Can you look in config.log and find why the tests fail to find the
system versions of fnmatch and glob?

What is the output from

  nm liboctave/glob-match.o | grep fnmatch

?  I expect that the version of fnmatch that it is expecting will have
a mangled name.

Also, can you determine precisely which fnmatch.h file is being
included?  Does it include lines like

  #ifdef        __cplusplus
  extern "C" {
  #endif

  #ifdef        __cplusplus
  }
  #endif

around the contents of the file?  If not, does changing the line

  #include <fnmatch.h>

in liboctave/glob-match.h to be

  extern "C" {
  #include <fnmatch.h>
  }

help?

jwe



-------------------------------------------------------------
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
-------------------------------------------------------------



reply via email to

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