[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
octave 2.1.62 compile problem under Mac OS X 10.3.6
From: |
John W. Eaton |
Subject: |
octave 2.1.62 compile problem under Mac OS X 10.3.6 |
Date: |
Thu, 18 Nov 2004 22:26:38 -0500 |
On 18-Nov-2004, Marius Schamschula <address@hidden> wrote:
| Hi all,
|
| I've run into a problem compiling octave 2.1.62 under Mac OS X 10.3.6:
|
| I've configured using
|
| FLIBS='-L/usr/local/lib/ -lg2c' LIBS='-lsz' CPPFLAGS=-no-cpp-precomp
| ./configure --enable-dl --enable-shared --with-hdf5 --with-fftw
|
| which worked fine for compiles of 2.1.57 and 2.1.59. The build fails
| with:
|
| gawk -f ./mk-ops.awk prefix=mx make_inclusive_header=mx-ops.h ./mx-ops
| > mx-ops.h-t
| ../move-if-change mx-ops.h-t mx-ops.h
| mx-ops.h is unchanged
| rm -f liboctave.dylib
| g++ -dynamiclib -single_module -install_name
| /usr/local/lib/octave-2.1.62/liboctave.dylib -o liboctave.dylib \
| Bounds.o CollocWt.o DASPK.o DASRT.o DASSL.o FEGrid.o LinConst.o
| LPsolve.o LSODE.o NLEqn.o ODES.o ODESSA.o Quad.o Range.o data-conv.o
| dir-ops.o file-ops.o file-stat.o glob-match.o idx-vector.o lo-ieee.o
| lo-mappers.o lo-specfun.o lo-sysdep.o lo-utils.o mach-info.o
| oct-alloc.o oct-env.o oct-fftw.o oct-group.o oct-passwd.o oct-rand.o
| oct-shlib.o oct-syscalls.o oct-time.o prog-args.o so-array.o str-vec.o
| Array.o ArrayN.o DiagArray2.o MArray.o MArray2.o MArrayN.o
| MDiagArray2.o base-lu.o oct-sort.o Array-C.o Array-b.o Array-ch.o
| Array-i.o Array-d.o Array-s.o Array-so.o Array-str.o Array-idx-vec.o
| MArray-C.o MArray-ch.o MArray-i.o MArray-d.o MArray-s.o oct-inttypes.o
| Array-flags.o Array-util.o CColVector.o CDiagMatrix.o CMatrix.o
| CNDArray.o CRowVector.o CmplxAEPBAL.o CmplxCHOL.o CmplxDET.o
| CmplxHESS.o CmplxLU.o CmplxQR.o CmplxQRP.o CmplxSCHUR.o CmplxSVD.o
| EIG.o boolMatrix.o boolNDArray.o chMatrix.o chNDArray.o dColVector.o
| dDiagMatrix.o dMatrix.o dNDArray.o dRowVector.o dbleAEPBAL.o dbleCHOL.o
| dbleDET.o dbleHESS.o dbleLU.o dbleQR.o dbleQRP.o dbleSCHUR.o dbleSVD.o
| int8NDArray.o uint8NDArray.o int16NDArray.o uint16NDArray.o
| int32NDArray.o uint32NDArray.o int64NDArray.o uint64NDArray.o
| mx-cdm-dm.o mx-dm-cdm.o mx-cs-cdm.o mx-cs-dm.o mx-cs-m.o mx-cs-nda.o
| mx-cdm-cs.o mx-cdm-cm.o mx-cdm-m.o mx-cdm-s.o mx-cm-cdm.o mx-cm-dm.o
| mx-cm-m.o mx-cnda-nda.o mx-cm-s.o mx-cnda-s.o mx-dm-cs.o mx-dm-cm.o
| mx-m-cs.o mx-nda-cs.o mx-m-cdm.o mx-m-cm.o mx-nda-cnda.o mx-s-cdm.o
| mx-s-cm.o mx-s-cnda.o mx-dm-m.o mx-dm-s.o mx-m-dm.o mx-s-dm.o
| mx-s-i8nda.o mx-i8nda-s.o mx-s-ui8nda.o mx-ui8nda-s.o mx-s-i16nda.o
| mx-i16nda-s.o mx-s-ui16nda.o mx-ui16nda-s.o mx-s-i32nda.o mx-i32nda-s.o
| mx-s-ui32nda.o mx-ui32nda-s.o mx-s-i64nda.o mx-i64nda-s.o
| mx-s-ui64nda.o mx-ui64nda-s.o mx-nda-i8.o mx-i8-nda.o mx-nda-ui8.o
| mx-ui8-nda.o mx-nda-i16.o mx-i16-nda.o mx-nda-ui16.o mx-ui16-nda.o
| mx-nda-i32.o mx-i32-nda.o mx-nda-ui32.o mx-ui32-nda.o mx-nda-i64.o
| mx-i64-nda.o mx-nda-ui64.o mx-ui64-nda.o mx-nda-i8nda.o mx-i8nda-nda.o
| mx-nda-ui8nda.o mx-ui8nda-nda.o mx-nda-i16nda.o mx-i16nda-nda.o
| mx-nda-ui16nda.o mx-ui16nda-nda.o mx-nda-i32nda.o mx-i32nda-nda.o
| mx-nda-ui32nda.o mx-ui32nda-nda.o mx-nda-i64nda.o mx-i64nda-nda.o
| mx-nda-ui64nda.o mx-ui64nda-nda.o mx-i8nda-ui8.o mx-i8nda-i16.o
| mx-i8nda-ui16.o mx-i8nda-i32.o mx-i8nda-ui32.o mx-i8nda-i64.o
| mx-i8nda-ui64.o mx-i16nda-i8.o mx-i16nda-ui8.o mx-i16nda-ui16.o
| mx-i16nda-i32.o mx-i16nda-ui32.o mx-i16nda-i64.o mx-i16nda-ui64.o
| mx-i32nda-i8.o mx-i32nda-ui8.o mx-i32nda-i16.o mx-i32nda-ui16.o
| mx-i32nda-ui32.o mx-i32nda-i64.o mx-i32nda-ui64.o mx-i64nda-i8.o
| mx-i64nda-ui8.o mx-i64nda-i16.o mx-i64nda-ui16.o mx-i64nda-i32.o
| mx-i64nda-ui32.o mx-i64nda-ui64.o mx-ui8nda-i8.o mx-ui8nda-i16.o
| mx-ui8nda-ui16.o mx-ui8nda-i32.o mx-ui8nda-ui32.o mx-ui8nda-i64.o
| mx-ui8nda-ui64.o mx-ui16nda-i8.o mx-ui16nda-ui8.o mx-ui16nda-i16.o
| mx-ui16nda-i32.o mx-ui16nda-ui32.o mx-ui16nda-i64.o mx-ui16nda-ui64.o
| mx-ui32nda-i8.o mx-ui32nda-ui8.o mx-ui32nda-i16.o mx-ui32nda-ui16.o
| mx-ui32nda-i32.o mx-ui32nda-i64.o mx-ui32nda-ui64.o mx-ui64nda-i8.o
| mx-ui64nda-ui8.o mx-ui64nda-i16.o mx-ui64nda-ui16.o mx-ui64nda-i32.o
| mx-ui64nda-ui32.o mx-ui64nda-i64.o mx-i8-ui8nda.o mx-i8-i16nda.o
| mx-i8-ui16nda.o mx-i8-i32nda.o mx-i8-ui32nda.o mx-i8-i64nda.o
| mx-i8-ui64nda.o mx-i16-i8nda.o mx-i16-ui8nda.o mx-i16-ui16nda.o
| mx-i16-i32nda.o mx-i16-ui32nda.o mx-i16-i64nda.o mx-i16-ui64nda.o
| mx-i32-i8nda.o mx-i32-ui8nda.o mx-i32-i16nda.o mx-i32-ui16nda.o
| mx-i32-ui32nda.o mx-i32-i64nda.o mx-i32-ui64nda.o mx-i64-i8nda.o
| mx-i64-ui8nda.o mx-i64-i16nda.o mx-i64-ui16nda.o mx-i64-i32nda.o
| mx-i64-ui32nda.o mx-i64-ui64nda.o mx-ui8-i8nda.o mx-ui8-i16nda.o
| mx-ui8-ui16nda.o mx-ui8-i32nda.o mx-ui8-ui32nda.o mx-ui8-i64nda.o
| mx-ui8-ui64nda.o mx-ui16-i8nda.o mx-ui16-ui8nda.o mx-ui16-i16nda.o
| mx-ui16-i32nda.o mx-ui16-ui32nda.o mx-ui16-i64nda.o mx-ui16-ui64nda.o
| mx-ui32-i8nda.o mx-ui32-ui8nda.o mx-ui32-i16nda.o mx-ui32-ui16nda.o
| mx-ui32-i32nda.o mx-ui32-i64nda.o mx-ui32-ui64nda.o mx-ui64-i8nda.o
| mx-ui64-ui8nda.o mx-ui64-i16nda.o mx-ui64-ui16nda.o mx-ui64-i32nda.o
| mx-ui64-ui32nda.o mx-ui64-i64nda.o mx-i8nda-ui8nda.o mx-i8nda-i16nda.o
| mx-i8nda-ui16nda.o mx-i8nda-i32nda.o mx-i8nda-ui32nda.o
| mx-i8nda-i64nda.o mx-i8nda-ui64nda.o mx-i16nda-i8nda.o
| mx-i16nda-ui8nda.o mx-i16nda-ui16nda.o mx-i16nda-i32nda.o
| mx-i16nda-ui32nda.o mx-i16nda-i64nda.o mx-i16nda-ui64nda.o
| mx-i32nda-i8nda.o mx-i32nda-ui8nda.o mx-i32nda-i16nda.o
| mx-i32nda-ui16nda.o mx-i32nda-ui32nda.o mx-i32nda-i64nda.o
| mx-i32nda-ui64nda.o mx-i64nda-i8nda.o mx-i64nda-ui8nda.o
| mx-i64nda-i16nda.o mx-i64nda-ui16nda.o mx-i64nda-i32nda.o
| mx-i64nda-ui32nda.o mx-i64nda-ui64nda.o mx-ui8nda-i8nda.o
| mx-ui8nda-i16nda.o mx-ui8nda-ui16nda.o mx-ui8nda-i32nda.o
| mx-ui8nda-ui32nda.o mx-ui8nda-i64nda.o mx-ui8nda-ui64nda.o
| mx-ui16nda-i8nda.o mx-ui16nda-ui8nda.o mx-ui16nda-i16nda.o
| mx-ui16nda-i32nda.o mx-ui16nda-ui32nda.o mx-ui16nda-i64nda.o
| mx-ui16nda-ui64nda.o mx-ui32nda-i8nda.o mx-ui32nda-ui8nda.o
| mx-ui32nda-i16nda.o mx-ui32nda-ui16nda.o mx-ui32nda-i32nda.o
| mx-ui32nda-i64nda.o mx-ui32nda-ui64nda.o mx-ui64nda-i8nda.o
| mx-ui64nda-ui8nda.o mx-ui64nda-i16nda.o mx-ui64nda-ui16nda.o
| mx-ui64nda-i32nda.o mx-ui64nda-ui32nda.o mx-ui64nda-i64nda.o
| vx-ccv-cv.o vx-ccv-s.o vx-crv-rv.o vx-crv-s.o vx-cs-cv.o vx-cs-rv.o
| vx-cv-ccv.o vx-cv-cs.o vx-rv-crv.o vx-rv-cs.o vx-s-ccv.o vx-s-crv.o
| f2c-main.o filemode.o getopt.o getopt1.o lo-cieee.o lo-cutils.o mkdir.o
| oct-getopt.o rename.o rmdir.o strftime.o strptime.o tempname.o
| tempnam.o cmd-edit.o cmd-hist.o oct-rl-edit.o oct-rl-hist.o
| pathsearch.o kpse-xfns.o -L../libcruft -L../glob -L. -lcruft
| -framework vecLib -lfftw3 -lreadline -lglob -lreadline -lncurses
| -lhdf5 -lz -lm -lsz -L/usr/local/lib/ -lg2c
| ld: multiple definitions of symbol octave_int<signed char> pow<signed
| char>(octave_int<signed char> const&, octave_int<signed char> const&)
| oct-inttypes.o definition of octave_int<signed char> pow<signed
| char>(octave_int<signed char> const&, octave_int<signed char> const&)
| in section (__TEXT,__text)
| int8NDArray.o definition of octave_int<signed char> pow<signed
| char>(octave_int<signed char> const&, octave_int<signed char> const&)
| in section (__TEXT,__text)
| ld: multiple definitions of symbol octave_int<unsigned char>
| pow<unsigned char>(octave_int<unsigned char> const&,
| octave_int<unsigned char> const&)
| oct-inttypes.o definition of octave_int<unsigned char> pow<unsigned
| char>(octave_int<unsigned char> const&, octave_int<unsigned char>
| const&) in section (__TEXT,__text)
| uint8NDArray.o definition of octave_int<unsigned char> pow<unsigned
| char>(octave_int<unsigned char> const&, octave_int<unsigned char>
| const&) in section (__TEXT,__text)
| ld: multiple definitions of symbol octave_int<short>
| pow<short>(octave_int<short> const&, octave_int<short> const&)
| oct-inttypes.o definition of octave_int<short>
| pow<short>(octave_int<short> const&, octave_int<short> const&) in
| section (__TEXT,__text)
| int16NDArray.o definition of octave_int<short>
| pow<short>(octave_int<short> const&, octave_int<short> const&) in
| section (__TEXT,__text)
| ld: multiple definitions of symbol octave_int<unsigned short>
| pow<unsigned short>(octave_int<unsigned short> const&,
| octave_int<unsigned short> const&)
| oct-inttypes.o definition of octave_int<unsigned short> pow<unsigned
| short>(octave_int<unsigned short> const&, octave_int<unsigned short>
| const&) in section (__TEXT,__text)
| uint16NDArray.o definition of octave_int<unsigned short> pow<unsigned
| short>(octave_int<unsigned short> const&, octave_int<unsigned short>
| const&) in section (__TEXT,__text)
| ld: multiple definitions of symbol octave_int<int>
| pow<int>(octave_int<int> const&, octave_int<int> const&)
| oct-inttypes.o definition of octave_int<int> pow<int>(octave_int<int>
| const&, octave_int<int> const&) in section (__TEXT,__text)
| int32NDArray.o definition of octave_int<int> pow<int>(octave_int<int>
| const&, octave_int<int> const&) in section (__TEXT,__text)
| ld: multiple definitions of symbol octave_int<unsigned>
| pow<unsigned>(octave_int<unsigned> const&, octave_int<unsigned> const&)
| oct-inttypes.o definition of octave_int<unsigned>
| pow<unsigned>(octave_int<unsigned> const&, octave_int<unsigned> const&)
| in section (__TEXT,__text)
| uint32NDArray.o definition of octave_int<unsigned>
| pow<unsigned>(octave_int<unsigned> const&, octave_int<unsigned> const&)
| in section (__TEXT,__text)
| ld: warning multiple definitions of symbol _BC
| /usr/local/lib//libreadline.dylib(terminal.so) definition of _BC
| /usr/lib/libncurses.dylib(lib_termcap.o) definition of _BC
| ld: warning multiple definitions of symbol _UP
| /usr/local/lib//libreadline.dylib(terminal.so) definition of _UP
| /usr/lib/libncurses.dylib(lib_termcap.o) definition of _UP
| ld: warning multiple definitions of symbol _PC
| /usr/local/lib//libreadline.dylib(terminal.so) definition of _PC
| /usr/lib/libncurses.dylib(lib_tputs.o) definition of _PC
| /usr/bin/libtool: internal link edit command failed
| make[2]: *** [liboctave.dylib] Error 1
| make[1]: *** [liboctave] Error 2
| make: *** [all] Error 2
|
| Any ideas?
Please try the following patch. I think it should fix the problem
with multiple definitions of pow for integer types.
I'm not sure what is causing the other problem with multiple
definitions of _BC, _UP, and _PC, but it looks like that's not really
an Octave bug since the multiple definitions occur inside the readline
and ncurses libraries.
jwe
liboctave/ChangeLog:
2004-11-18 John W. Eaton <address@hidden>
* int32NDArray.cc (pow): Delete instantiation.
* int16NDArray.cc (pow): Likewise.
* int8NDArray.cc (pow): Likewise.
* uint32NDArray.cc (pow): Likewise.
* uint16NDArray.cc (pow): Likewise.
* uint8NDArray.cc (pow): Likewise.
Index: liboctave/int16NDArray.cc
===================================================================
RCS file: /usr/local/cvsroot/octave/liboctave/int16NDArray.cc,v
retrieving revision 1.4
diff -u -r1.4 int16NDArray.cc
--- liboctave/int16NDArray.cc 9 Nov 2004 18:31:25 -0000 1.4
+++ liboctave/int16NDArray.cc 19 Nov 2004 03:24:33 -0000
@@ -35,8 +35,6 @@
template class intNDArray<octave_int16>;
-template octave_int16 pow (const octave_int16& a, const octave_int16& b);
-
template
std::ostream&
operator << (std::ostream& os, const intNDArray<octave_int16>& a);
Index: liboctave/int32NDArray.cc
===================================================================
RCS file: /usr/local/cvsroot/octave/liboctave/int32NDArray.cc,v
retrieving revision 1.4
diff -u -r1.4 int32NDArray.cc
--- liboctave/int32NDArray.cc 9 Nov 2004 18:31:26 -0000 1.4
+++ liboctave/int32NDArray.cc 19 Nov 2004 03:24:33 -0000
@@ -35,8 +35,6 @@
template class intNDArray<octave_int32>;
-template octave_int32 pow (const octave_int32& a, const octave_int32& b);
-
template
std::ostream&
operator << (std::ostream& os, const intNDArray<octave_int32>& a);
Index: liboctave/int8NDArray.cc
===================================================================
RCS file: /usr/local/cvsroot/octave/liboctave/int8NDArray.cc,v
retrieving revision 1.4
diff -u -r1.4 int8NDArray.cc
--- liboctave/int8NDArray.cc 9 Nov 2004 18:31:26 -0000 1.4
+++ liboctave/int8NDArray.cc 19 Nov 2004 03:24:33 -0000
@@ -35,8 +35,6 @@
template class intNDArray<octave_int8>;
-template octave_int8 pow (const octave_int8& a, const octave_int8& b);
-
template
std::ostream&
operator << (std::ostream& os, const intNDArray<octave_int8>& a);
Index: liboctave/uint16NDArray.cc
===================================================================
RCS file: /usr/local/cvsroot/octave/liboctave/uint16NDArray.cc,v
retrieving revision 1.4
diff -u -r1.4 uint16NDArray.cc
--- liboctave/uint16NDArray.cc 9 Nov 2004 18:31:26 -0000 1.4
+++ liboctave/uint16NDArray.cc 19 Nov 2004 03:24:33 -0000
@@ -35,8 +35,6 @@
template class intNDArray<octave_uint16>;
-template octave_uint16 pow (const octave_uint16& a, const octave_uint16& b);
-
template
std::ostream&
operator << (std::ostream& os, const intNDArray<octave_uint16>& a);
Index: liboctave/uint32NDArray.cc
===================================================================
RCS file: /usr/local/cvsroot/octave/liboctave/uint32NDArray.cc,v
retrieving revision 1.4
diff -u -r1.4 uint32NDArray.cc
--- liboctave/uint32NDArray.cc 9 Nov 2004 18:31:26 -0000 1.4
+++ liboctave/uint32NDArray.cc 19 Nov 2004 03:24:33 -0000
@@ -35,8 +35,6 @@
template class intNDArray<octave_uint32>;
-template octave_uint32 pow (const octave_uint32& a, const octave_uint32& b);
-
template
std::ostream&
operator << (std::ostream& os, const intNDArray<octave_uint32>& a);
Index: liboctave/uint8NDArray.cc
===================================================================
RCS file: /usr/local/cvsroot/octave/liboctave/uint8NDArray.cc,v
retrieving revision 1.4
diff -u -r1.4 uint8NDArray.cc
--- liboctave/uint8NDArray.cc 9 Nov 2004 18:31:26 -0000 1.4
+++ liboctave/uint8NDArray.cc 19 Nov 2004 03:24:33 -0000
@@ -35,8 +35,6 @@
template class intNDArray<octave_uint8>;
-template octave_uint8 pow (const octave_uint8& a, const octave_uint8& b);
-
template
std::ostream&
operator << (std::ostream& os, const intNDArray<octave_uint8>& a);
-------------------------------------------------------------
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
-------------------------------------------------------------