octave-maintainers
[Top][All Lists]
Advanced

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

Re: gnulib and automake


From: Benjamin Lindner
Subject: Re: gnulib and automake
Date: Sat, 31 Oct 2009 17:15:53 +0100
User-agent: Thunderbird 2.0.0.22 (Windows/20090605)

Benjamin Lindner wrote:
Benjamin Lindner wrote:

From what I saw until now, if I patch libtool as above and we get the dependency libraries for libcruft (possibly also for liboctave and liboctinterp?) right, then it should work.
I'm curious how the .oct creation will behave.


An update:

Using the following patch for the generated libtool

--- .build_mingw32_octave-tip-automake-ref-4_gcc-4.4.0-dw2/libtool 2009-10-31 11:08:08 +0100 +++ .build_mingw32_octave-tip-automake-4_gcc-4.4.0-dw2/libtool 2009-10-31 11:39:24 +0100
@@ -7744,7 +7744,7 @@
     if test "$allow_undefined" = yes; then
       if test "$allow_undefined_flag" = unsupported; then
func_warning "undefined symbols not allowed in $host shared libraries"
-        build_libtool_libs=no
+        build_libtool_libs=yes
         build_old_libs=yes
       fi
     else


and the following change on octave's makefile sources

diff -r 5382a2ab87e7 libcruft/Makefile.am
--- a/libcruft/Makefile.am    Fri Oct 30 11:10:14 2009 -0400
+++ b/libcruft/Makefile.am    Sat Oct 31 14:08:00 2009 +0100
@@ -31,6 +31,8 @@

 libcruft_la_LDFLAGS = -release $(version)

+libcruft_la_LIBADD = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
+
 octinclude_HEADERS =

 EXTRA_DIST = ChangeLog STOP.patch mkf77def.in
diff -r 5382a2ab87e7 liboctave/Makefile.am
--- a/liboctave/Makefile.am    Fri Oct 30 11:10:14 2009 -0400
+++ b/liboctave/Makefile.am    Sat Oct 31 14:08:00 2009 +0100
@@ -494,10 +494,10 @@
 LINK_DEPS = \
   $(RLD_FLAG) \
   ../libcruft/libcruft.la \
-  $(SPARSE_LDFLAGS) $(SPARSE_LIBS) \
+  $(SPARSE_LDFLAGS) $(SPARSE_XLIBS) \
   $(ARPACK_LIBS) \
   $(QRUPDATE_LIBS) \
-  $(FFTW_LDFLAGS) $(FFTW_LIBS) \
+  $(FFTW_LDFLAGS) $(FFTW_XLIBS) \
   $(LAPACK_LIBS) $(BLAS_LIBS) \
   $(READLINE_LIBS) $(TERM_LIBS) \
   $(LIBGLOB) $(REGEX_LIBS) $(DL_LIBS) \

I get both cruft.dll and octave.dll

However, building liboctinterp still fails. No shared library is created and building .oct file fails with a lot of "undefined reference" errors.
I need to debug further.


If I additionally patch libtool as
--- .build_mingw32_octave-tip-automake-ref-4_gcc-4.4.0-dw2/libtool 2009-10-31 11:08:08 +0100 +++ .build_mingw32_octave-tip-automake-4_gcc-4.4.0-dw2/libtool 2009-10-31 16:44:30 +0100
@@ -345,7 +345,7 @@
 with_gnu_ld="yes"

 # Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag="unsupported"
+allow_undefined_flag="-Wl,--allow-shlib-undefined"

 # Flag that enforces no undefined symbols.
 no_undefined_flag=""


Then it at last gracefully tried to build a shared liboctinterp, however it fails with

/bin/sh ../libtool --tag=CXX --verbose --mode=link mingw32-g++-4.4.0-dw2 -shared-libgcc -march=i686 -mtune=generic -O3 -Wall -DHAVE_CONFIG_H -mieee-fp -Wall -W -Wshadow -Wold-style-cast -Wformat -march=i686 -mtune=generic -O3 -Wall -march=i686 -mtune=generic -O3 -Wall -release 3.3.50+ -shared-libgcc -Wl,--allow-multiple-definition -o liboctinterp.la -rpath /usr/local/octmgw32_gcc-4.4.0-dw2/octave/tip-automake-4/lib/octave-3.3.50+ Cell.lo bitfcns.lo c-file-ptr-stream.lo comment-list.lo cutils.lo data.lo debug.lo defaults.lo defun.lo dirfns.lo display.lo dynamic-ld.lo error.lo file-io.lo gl-render.lo graphics.lo gripes.lo help.lo input.lo lex.lo load-path.lo load-save.lo ls-ascii-helper.lo ls-hdf5.lo ls-mat-ascii.lo ls-mat4.lo ls-mat5.lo ls-oct-ascii.lo ls-oct-binary.lo ls-utils.lo mappers.lo matherr.lo mex.lo oct-fstrm.lo oct-hist.lo oct-iostrm.lo oct-lvalue.lo oct-map.lo oct-obj.lo oct-parse.lo oct-prcstrm.lo oct-procbuf.lo oct-stream.lo oct-strstrm.lo octave.lo pager.lo pr-output.lo procstream.lo sighandlers.lo siglist.lo sparse-xdiv.lo sparse-xpow.lo strfns.lo symtab.lo syscalls.lo sysdep.lo token.lo toplev.lo txt-eng-ft.lo unwind-prot.lo utils.lo variables.lo xdiv.lo xnorm.lo xpow.lo zfstream.lo ov-base.lo ov-bool-mat.lo ov-bool.lo ov-builtin.lo ov-cell.lo ov-ch-mat.lo ov-class.lo ov-colon.lo ov-complex.lo ov-cs-list.lo ov-cx-diag.lo ov-cx-mat.lo ov-dld-fcn.lo ov-fcn-handle.lo ov-fcn-inline.lo ov-fcn.lo ov-float.lo ov-flt-complex.lo ov-flt-cx-diag.lo ov-flt-cx-mat.lo ov-flt-re-diag.lo ov-flt-re-mat.lo ov-list.lo ov-mex-fcn.lo ov-null-mat.lo ov-perm.lo ov-range.lo ov-re-diag.lo ov-re-mat.lo ov-scalar.lo ov-str-mat.lo ov-struct.lo ov-typeinfo.lo ov-usr-fcn.lo ov.lo ov-int16.lo ov-int32.lo ov-int64.lo ov-int8.lo ov-uint16.lo ov-uint32.lo ov-uint64.lo ov-uint8.lo ov-base-sparse.lo ov-bool-sparse.lo ov-cx-sparse.lo ov-re-sparse.lo pt-arg-list.lo pt-assign.lo pt-binop.lo pt-bp.lo pt-cbinop.lo pt-cell.lo pt-check.lo pt-cmd.lo pt-colon.lo pt-const.lo pt-decl.lo pt-eval.lo pt-except.lo pt-exp.lo pt-fcn-handle.lo pt-id.lo pt-idx.lo pt-jump.lo pt-loop.lo pt-mat.lo pt-misc.lo pt-pr-code.lo pt-select.lo pt-stmt.lo pt-unop.lo pt.lo OPERATORS/op-b-b.lo OPERATORS/op-b-bm.lo OPERATORS/op-b-sbm.lo OPERATORS/op-bm-b.lo OPERATORS/op-bm-bm.lo OPERATORS/op-bm-sbm.lo OPERATORS/op-cdm-cdm.lo OPERATORS/op-cdm-cm.lo OPERATORS/op-cdm-cs.lo OPERATORS/op-cdm-dm.lo OPERATORS/op-cdm-m.lo OPERATORS/op-cdm-s.lo OPERATORS/op-cell.lo OPERATORS/op-chm.lo OPERATORS/op-class.lo OPERATORS/op-cm-cdm.lo OPERATORS/op-cm-cm.lo OPERATORS/op-cm-cs.lo OPERATORS/op-cm-dm.lo OPERATORS/op-cm-m.lo OPERATORS/op-cm-pm.lo OPERATORS/op-cm-s.lo OPERATORS/op-cm-scm.lo OPERATORS/op-cm-sm.lo OPERATORS/op-cs-cm.lo OPERATORS/op-cs-cs.lo OPERATORS/op-cs-m.lo OPERATORS/op-cs-s.lo OPERATORS/op-cs-scm.lo OPERATORS/op-cs-sm.lo OPERATORS/op-dm-cdm.lo OPERATORS/op-dm-cm.lo OPERATORS/op-dm-cs.lo OPERATORS/op-dm-dm.lo OPERATORS/op-dm-m.lo OPERATORS/op-dm-s.lo OPERATORS/op-dm-scm.lo OPERATORS/op-dm-sm.lo OPERATORS/op-double-conv.lo OPERATORS/op-fcdm-fcdm.lo OPERATORS/op-fcdm-fcm.lo OPERATORS/op-fcdm-fcs.lo OPERATORS/op-fcdm-fdm.lo OPERATORS/op-fcdm-fm.lo OPERATORS/op-fcdm-fs.lo OPERATORS/op-fcm-fcdm.lo OPERATORS/op-fcm-fcm.lo OPERATORS/op-fcm-fcs.lo OPERATORS/op-fcm-fdm.lo OPERATORS/op-fcm-fm.lo OPERATORS/op-fcm-fs.lo OPERATORS/op-fcm-pm.lo OPERATORS/op-fcs-fcm.lo OPERATORS/op-fcs-fcs.lo OPERATORS/op-fcs-fm.lo OPERATORS/op-fcs-fs.lo OPERATORS/op-fdm-fcdm.lo OPERATORS/op-fdm-fcm.lo OPERATORS/op-fdm-fcs.lo OPERATORS/op-fdm-fdm.lo OPERATORS/op-fdm-fm.lo OPERATORS/op-fdm-fs.lo OPERATORS/op-float-conv.lo OPERATORS/op-fm-fcdm.lo OPERATORS/op-fm-fcm.lo OPERATORS/op-fm-fcs.lo OPERATORS/op-fm-fdm.lo OPERATORS/op-fm-fm.lo OPERATORS/op-fm-fs.lo OPERATORS/op-fm-pm.lo OPERATORS/op-fs-fcm.lo OPERATORS/op-fs-fcs.lo OPERATORS/op-fs-fm.lo OPERATORS/op-fs-fs.lo OPERATORS/op-i16-i16.lo OPERATORS/op-i32-i32.lo OPERATORS/op-i64-i64.lo OPERATORS/op-i8-i8.lo OPERATORS/op-int-concat.lo OPERATORS/op-int-conv.lo OPERATORS/op-list.lo OPERATORS/op-m-cdm.lo OPERATORS/op-m-cm.lo OPERATORS/op-m-cs.lo OPERATORS/op-m-dm.lo OPERATORS/op-m-m.lo OPERATORS/op-m-pm.lo OPERATORS/op-m-s.lo OPERATORS/op-m-scm.lo OPERATORS/op-m-sm.lo OPERATORS/op-pm-cm.lo OPERATORS/op-pm-fcm.lo OPERATORS/op-pm-fm.lo OPERATORS/op-pm-m.lo OPERATORS/op-pm-pm.lo OPERATORS/op-pm-scm.lo OPERATORS/op-pm-sm.lo OPERATORS/op-range.lo OPERATORS/op-s-cm.lo OPERATORS/op-s-cs.lo OPERATORS/op-s-m.lo OPERATORS/op-s-s.lo OPERATORS/op-s-scm.lo OPERATORS/op-s-sm.lo OPERATORS/op-sbm-b.lo OPERATORS/op-sbm-bm.lo OPERATORS/op-sbm-sbm.lo OPERATORS/op-scm-cm.lo OPERATORS/op-scm-cs.lo OPERATORS/op-scm-m.lo OPERATORS/op-scm-s.lo OPERATORS/op-scm-scm.lo OPERATORS/op-scm-sm.lo OPERATORS/op-sm-cm.lo OPERATORS/op-sm-cs.lo OPERATORS/op-sm-m.lo OPERATORS/op-sm-s.lo OPERATORS/op-sm-scm.lo OPERATORS/op-sm-sm.lo OPERATORS/op-str-m.lo OPERATORS/op-str-s.lo OPERATORS/op-str-str.lo OPERATORS/op-struct.lo OPERATORS/op-ui16-ui16.lo OPERATORS/op-ui32-ui32.lo OPERATORS/op-ui64-ui64.lo OPERATORS/op-ui8-ui8.lo TEMPLATE-INST/Array-os.lo TEMPLATE-INST/Array-tc.lo builtins.lo oct-errno.lo ops.lo DASPK-opts.lo DASRT-opts.lo DASSL-opts.lo LSODE-opts.lo Quad-opts.lo ../liboctave/liboctave.la ../libcruft/libcruft.la -lfftw3 -lfftw3f -lhdf5 -lz -lfontconfig -lftgl -lfreetype -lz -lopengl32 -lglu32 -lreadline -lncurses -lglob -llapack -lblas -liberty -lm -lgdi32 -lws2_32 -luser32 -lkernel32 -lgfortran -liberty -lm -lgdi32 -lws2_32 -luser32 -lkernel32 libtool: link: warning: undefined symbols not allowed in i686-pc-mingw32 shared libraries
libtool: link: rm -fr  .libs/liboctinterp.dll.a

*** Warning: linker path does not have real file for library -liberty.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libiberty and none of the candidates passed a file format test
*** using a file magic. Last file checked: /mingw/lib/libiberty.a
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.
libtool: link: mingw32-g++-4.4.0-dw2 -shared-libgcc -shared -nostdlib d:/build/octave32/tip_gcc-4.4.0/gcc-mingw-4.4.0/bin/../lib/gcc/mingw32/4.4.0/../../../dllcrt2.o d:/build/octave32/tip_gcc-4.4.0/gcc-mingw-4.4.0/bin/../lib/gcc/mingw32/4.4.0/crtbegin.o .libs/Cell.o .libs/bitfcns.o .libs/c-file-ptr-stream.o .libs/comment-list.o .libs/cutils.o .libs/data.o .libs/debug.o .libs/defaults.o .libs/defun.o .libs/dirfns.o .libs/display.o .libs/dynamic-ld.o .libs/error.o .libs/file-io.o .libs/gl-render.o .libs/graphics.o .libs/gripes.o .libs/help.o .libs/input.o .libs/lex.o .libs/load-path.o .libs/load-save.o .libs/ls-ascii-helper.o .libs/ls-hdf5.o .libs/ls-mat-ascii.o .libs/ls-mat4.o .libs/ls-mat5.o .libs/ls-oct-ascii.o .libs/ls-oct-binary.o .libs/ls-utils.o .libs/mappers.o .libs/matherr.o .libs/mex.o .libs/oct-fstrm.o .libs/oct-hist.o .libs/oct-iostrm.o .libs/oct-lvalue.o .libs/oct-map.o .libs/oct-obj.o .libs/oct-parse.o .libs/oct-prcstrm.o .libs/oct-procbuf.o .libs/oct-stream.o .libs/oct-strstrm.o .libs/octave.o .libs/pager.o .libs/pr-output.o .libs/procstream.o .libs/sighandlers.o .libs/siglist.o .libs/sparse-xdiv.o .libs/sparse-xpow.o .libs/strfns.o .libs/symtab.o .libs/syscalls.o .libs/sysdep.o .libs/token.o .libs/toplev.o .libs/txt-eng-ft.o .libs/unwind-prot.o .libs/utils.o .libs/variables.o .libs/xdiv.o .libs/xnorm.o .libs/xpow.o .libs/zfstream.o .libs/ov-base.o .libs/ov-bool-mat.o .libs/ov-bool.o .libs/ov-builtin.o .libs/ov-cell.o .libs/ov-ch-mat.o .libs/ov-class.o .libs/ov-colon.o .libs/ov-complex.o .libs/ov-cs-list.o .libs/ov-cx-diag.o .libs/ov-cx-mat.o .libs/ov-dld-fcn.o .libs/ov-fcn-handle.o .libs/ov-fcn-inline.o .libs/ov-fcn.o .libs/ov-float.o .libs/ov-flt-complex.o .libs/ov-flt-cx-diag.o .libs/ov-flt-cx-mat.o .libs/ov-flt-re-diag.o .libs/ov-flt-re-mat.o .libs/ov-list.o .libs/ov-mex-fcn.o .libs/ov-null-mat.o .libs/ov-perm.o .libs/ov-range.o .libs/ov-re-diag.o .libs/ov-re-mat.o .libs/ov-scalar.o .libs/ov-str-mat.o .libs/ov-struct.o .libs/ov-typeinfo.o .libs/ov-usr-fcn.o .libs/ov.o .libs/ov-int16.o .libs/ov-int32.o .libs/ov-int64.o .libs/ov-int8.o .libs/ov-uint16.o .libs/ov-uint32.o .libs/ov-uint64.o .libs/ov-uint8.o .libs/ov-base-sparse.o .libs/ov-bool-sparse.o .libs/ov-cx-sparse.o .libs/ov-re-sparse.o .libs/pt-arg-list.o .libs/pt-assign.o .libs/pt-binop.o .libs/pt-bp.o .libs/pt-cbinop.o .libs/pt-cell.o .libs/pt-check.o .libs/pt-cmd.o .libs/pt-colon.o .libs/pt-const.o .libs/pt-decl.o .libs/pt-eval.o .libs/pt-except.o .libs/pt-exp.o .libs/pt-fcn-handle.o .libs/pt-id.o .libs/pt-idx.o .libs/pt-jump.o .libs/pt-loop.o .libs/pt-mat.o .libs/pt-misc.o .libs/pt-pr-code.o .libs/pt-select.o .libs/pt-stmt.o .libs/pt-unop.o .libs/pt.o OPERATORS/.libs/op-b-b.o OPERATORS/.libs/op-b-bm.o OPERATORS/.libs/op-b-sbm.o OPERATORS/.libs/op-bm-b.o OPERATORS/.libs/op-bm-bm.o OPERATORS/.libs/op-bm-sbm.o OPERATORS/.libs/op-cdm-cdm.o OPERATORS/.libs/op-cdm-cm.o OPERATORS/.libs/op-cdm-cs.o OPERATORS/.libs/op-cdm-dm.o OPERATORS/.libs/op-cdm-m.o OPERATORS/.libs/op-cdm-s.o OPERATORS/.libs/op-cell.o OPERATORS/.libs/op-chm.o OPERATORS/.libs/op-class.o OPERATORS/.libs/op-cm-cdm.o OPERATORS/.libs/op-cm-cm.o OPERATORS/.libs/op-cm-cs.o OPERATORS/.libs/op-cm-dm.o OPERATORS/.libs/op-cm-m.o OPERATORS/.libs/op-cm-pm.o OPERATORS/.libs/op-cm-s.o OPERATORS/.libs/op-cm-scm.o OPERATORS/.libs/op-cm-sm.o OPERATORS/.libs/op-cs-cm.o OPERATORS/.libs/op-cs-cs.o OPERATORS/.libs/op-cs-m.o OPERATORS/.libs/op-cs-s.o OPERATORS/.libs/op-cs-scm.o OPERATORS/.libs/op-cs-sm.o OPERATORS/.libs/op-dm-cdm.o OPERATORS/.libs/op-dm-cm.o OPERATORS/.libs/op-dm-cs.o OPERATORS/.libs/op-dm-dm.o OPERATORS/.libs/op-dm-m.o OPERATORS/.libs/op-dm-s.o OPERATORS/.libs/op-dm-scm.o OPERATORS/.libs/op-dm-sm.o OPERATORS/.libs/op-double-conv.o OPERATORS/.libs/op-fcdm-fcdm.o OPERATORS/.libs/op-fcdm-fcm.o OPERATORS/.libs/op-fcdm-fcs.o OPERATORS/.libs/op-fcdm-fdm.o OPERATORS/.libs/op-fcdm-fm.o OPERATORS/.libs/op-fcdm-fs.o OPERATORS/.libs/op-fcm-fcdm.o OPERATORS/.libs/op-fcm-fcm.o OPERATORS/.libs/op-fcm-fcs.o OPERATORS/.libs/op-fcm-fdm.o OPERATORS/.libs/op-fcm-fm.o OPERATORS/.libs/op-fcm-fs.o OPERATORS/.libs/op-fcm-pm.o OPERATORS/.libs/op-fcs-fcm.o OPERATORS/.libs/op-fcs-fcs.o OPERATORS/.libs/op-fcs-fm.o OPERATORS/.libs/op-fcs-fs.o OPERATORS/.libs/op-fdm-fcdm.o OPERATORS/.libs/op-fdm-fcm.o OPERATORS/.libs/op-fdm-fcs.o OPERATORS/.libs/op-fdm-fdm.o OPERATORS/.libs/op-fdm-fm.o OPERATORS/.libs/op-fdm-fs.o OPERATORS/.libs/op-float-conv.o OPERATORS/.libs/op-fm-fcdm.o OPERATORS/.libs/op-fm-fcm.o OPERATORS/.libs/op-fm-fcs.o OPERATORS/.libs/op-fm-fdm.o OPERATORS/.libs/op-fm-fm.o OPERATORS/.libs/op-fm-fs.o OPERATORS/.libs/op-fm-pm.o OPERATORS/.libs/op-fs-fcm.o OPERATORS/.libs/op-fs-fcs.o OPERATORS/.libs/op-fs-fm.o OPERATORS/.libs/op-fs-fs.o OPERATORS/.libs/op-i16-i16.o OPERATORS/.libs/op-i32-i32.o OPERATORS/.libs/op-i64-i64.o OPERATORS/.libs/op-i8-i8.o OPERATORS/.libs/op-int-concat.o OPERATORS/.libs/op-int-conv.o OPERATORS/.libs/op-list.o OPERATORS/.libs/op-m-cdm.o OPERATORS/.libs/op-m-cm.o OPERATORS/.libs/op-m-cs.o OPERATORS/.libs/op-m-dm.o OPERATORS/.libs/op-m-m.o OPERATORS/.libs/op-m-pm.o OPERATORS/.libs/op-m-s.o OPERATORS/.libs/op-m-scm.o OPERATORS/.libs/op-m-sm.o OPERATORS/.libs/op-pm-cm.o OPERATORS/.libs/op-pm-fcm.o OPERATORS/.libs/op-pm-fm.o OPERATORS/.libs/op-pm-m.o OPERATORS/.libs/op-pm-pm.o OPERATORS/.libs/op-pm-scm.o OPERATORS/.libs/op-pm-sm.o OPERATORS/.libs/op-range.o OPERATORS/.libs/op-s-cm.o OPERATORS/.libs/op-s-cs.o OPERATORS/.libs/op-s-m.o OPERATORS/.libs/op-s-s.o OPERATORS/.libs/op-s-scm.o OPERATORS/.libs/op-s-sm.o OPERATORS/.libs/op-sbm-b.o OPERATORS/.libs/op-sbm-bm.o OPERATORS/.libs/op-sbm-sbm.o OPERATORS/.libs/op-scm-cm.o OPERATORS/.libs/op-scm-cs.o OPERATORS/.libs/op-scm-m.o OPERATORS/.libs/op-scm-s.o OPERATORS/.libs/op-scm-scm.o OPERATORS/.libs/op-scm-sm.o OPERATORS/.libs/op-sm-cm.o OPERATORS/.libs/op-sm-cs.o OPERATORS/.libs/op-sm-m.o OPERATORS/.libs/op-sm-s.o OPERATORS/.libs/op-sm-scm.o OPERATORS/.libs/op-sm-sm.o OPERATORS/.libs/op-str-m.o OPERATORS/.libs/op-str-s.o OPERATORS/.libs/op-str-str.o OPERATORS/.libs/op-struct.o OPERATORS/.libs/op-ui16-ui16.o OPERATORS/.libs/op-ui32-ui32.o OPERATORS/.libs/op-ui64-ui64.o OPERATORS/.libs/op-ui8-ui8.o TEMPLATE-INST/.libs/Array-os.o TEMPLATE-INST/.libs/Array-tc.o .libs/builtins.o .libs/oct-errno.o .libs/ops.o .libs/DASPK-opts.o .libs/DASRT-opts.o .libs/DASSL-opts.o .libs/LSODE-opts.o .libs/Quad-opts.o -L/octmgw32/octave/.build_mingw32_octave-tip-automake-4_gcc-4.4.0-dw2/libcruft/.libs ../liboctave/.libs/liboctave.dll.a -L/usr/local/octmgw32_gcc-4.4.0-dw2/lib /octmgw32/octave/.build_mingw32_octave-tip-automake-4_gcc-4.4.0-dw2/libcruft/.libs/libcruft.dll.a -lcholmod -lumfpack -lamd -lcamd -lcolamd -lccolamd -lcxsparse -larpack -lqrupdate -lregex -lpcre -lpthread ../libcruft/.libs/libcruft.dll.a -lfftw3 -lfftw3f -lhdf5 -lfontconfig -lftgl -lfreetype -lz -lopengl32 -lglu32 -lreadline -lncurses -lglob -llapack -lblas -luser32 -lkernel32 -lgfortran -lgdi32 -lws2_32 -luser32 -lkernel32 -Ld:/build/octave32/tip_gcc-4.4.0/gcc-mingw-4.4.0/bin/../lib/gcc/mingw32/4.4.0 -Ld:/build/octave32/tip_gcc-4.4.0/gcc-mingw-4.4.0/bin/../lib/gcc -LD:/build/octave32/tip_gcc-4.4.0/msys-1.0.11/local/octmgw32_gcc-4.4.0-dw2/lib -Ld:/build/octave32/tip_gcc-4.4.0/gcc-mingw-4.4.0/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/lib -Ld:/build/octave32/tip_gcc-4.4.0/gcc-mingw-4.4.0/bin/../lib/gcc/mingw32/4.4.0/../../.. -lstdc++ -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt d:/build/octave32/tip_gcc-4.4.0/gcc-mingw-4.4.0/bin/../lib/gcc/mingw32/4.4.0/crtend.o -march=i686 -mtune=generic -mieee-fp -march=i686 -mtune=generic -march=i686 -mtune=generic -Wl,--allow-multiple-definition -o .libs/octinterp.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/liboctinterp.dll.a Info: resolving vtable for idx_vector::idx_vector_rep by linking to __imp___ZTVN10idx_vector14idx_vector_repE (auto-import) Info: resolving idx_vector::idx_range_rep::allocator by linking to __imp___ZN10idx_vector13idx_range_rep9allocatorE (auto-import) Info: resolving idx_vector::idx_colon_rep::allocator by linking to __imp___ZN10idx_vector13idx_colon_rep9allocatorE (auto-import) Info: resolving _octave_signal_caught by linking to __imp__octave_signal_caught (auto-import)
Info: resolving _octave_Inf by linking to __imp__octave_Inf (auto-import)
Info: resolving dir_path::static_members::instance by linking to __imp___ZN8dir_path14static_members8instanceE (auto-import) Info: resolving file_ops::static_members::instance by linking to __imp___ZN8file_ops14static_members8instanceE (auto-import)
Info: resolving _octave_NaN by linking to __imp__octave_NaN (auto-import)
Info: resolving _current_liboctave_error_handler by linking to __imp__current_liboctave_error_handler (auto-import) Info: resolving _octave_interrupt_immediately by linking to __imp__octave_interrupt_immediately (auto-import) Info: resolving _octave_exception_state by linking to __imp__octave_exception_state (auto-import) Info: resolving _H5T_NATIVE_UCHAR_g by linking to __imp__H5T_NATIVE_UCHAR_g (auto-import) Info: resolving _H5T_NATIVE_INT_g by linking to __imp__H5T_NATIVE_INT_g (auto-import)
Info: resolving _H5T_C_S1_g by linking to __imp__H5T_C_S1_g (auto-import)
Info: resolving _H5T_NATIVE_DOUBLE_g by linking to __imp__H5T_NATIVE_DOUBLE_g (auto-import)
Info: resolving _octave_NA by linking to __imp__octave_NA (auto-import)
Info: resolving _octave_signal_hook by linking to __imp__octave_signal_hook (auto-import) Info: resolving _octave_interrupt_hook by linking to __imp__octave_interrupt_hook (auto-import) Info: resolving _octave_bad_alloc_hook by linking to __imp__octave_bad_alloc_hook (auto-import) Info: resolving idx_vector::idx_scalar_rep::allocator by linking to __imp___ZN10idx_vector14idx_scalar_rep9allocatorE (auto-import) Info: resolving _octave_interrupt_state by linking to __imp__octave_interrupt_state (auto-import) Info: resolving _current_context by linking to __imp__current_context (auto-import) Info: resolving idx_vector::idx_vector_rep::allocator by linking to __imp___ZN10idx_vector14idx_vector_rep9allocatorE (auto-import) Info: resolving _H5T_NATIVE_HBOOL_g by linking to __imp__H5T_NATIVE_HBOOL_g (auto-import) Info: resolving _H5T_NATIVE_FLOAT_g by linking to __imp__H5T_NATIVE_FLOAT_g (auto-import) Info: resolving _H5T_NATIVE_SCHAR_g by linking to __imp__H5T_NATIVE_SCHAR_g (auto-import) Info: resolving _octave_Float_Inf by linking to __imp__octave_Float_Inf (auto-import) Info: resolving _H5T_NATIVE_INT16_g by linking to __imp__H5T_NATIVE_INT16_g (auto-import) Info: resolving _H5T_NATIVE_INT32_g by linking to __imp__H5T_NATIVE_INT32_g (auto-import) Info: resolving _H5T_NATIVE_INT64_g by linking to __imp__H5T_NATIVE_INT64_g (auto-import) Info: resolving _H5T_NATIVE_INT8_g by linking to __imp__H5T_NATIVE_INT8_g (auto-import) Info: resolving _H5T_NATIVE_UINT16_g by linking to __imp__H5T_NATIVE_UINT16_g (auto-import) Info: resolving _H5T_NATIVE_UINT32_g by linking to __imp__H5T_NATIVE_UINT32_g (auto-import) Info: resolving _H5T_NATIVE_UINT64_g by linking to __imp__H5T_NATIVE_UINT64_g (auto-import) Info: resolving _H5T_NATIVE_UINT8_g by linking to __imp__H5T_NATIVE_UINT8_g (auto-import) Info: resolving idx_vector::colon by linking to __imp___ZN10idx_vector5colonE (auto-import) Creating library file: .libs/liboctinterp.dll.ad:/build/octave32/tip_gcc-4.4.0/gcc-mingw-4.4.0/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line. This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
.libs/file-io.o:file-io.cc:(.text+0x7eb0): undefined reference to `mkstemps
'
collect2: ld returned 1 exit status
make[3]: *** [liboctinterp.la] Error 1
make[3]: Leaving directory `/octmgw32/octave/.build_mingw32_octave-tip-automake-4_gcc-4.4.0-dw2/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/octmgw32/octave/.build_mingw32_octave-tip-automake-4_gcc-4.4.0-dw2/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/octmgw32/octave/.build_mingw32_octave-tip-automake-4_gcc-4.4.0-dw2'
make: *** [all] Error 2


And this is the point libtool is getting me really annoyed, because it simply totally screws up. Compare the libtool command executed from the makefile with the --verbose output of the actual link command libtool executes. You'll notice that -liberty is correctly listed among the libraries in the first command, since the makefile reads

LIBS = -liberty -lm  -lgdi32 -lws2_32 -luser32 -lkernel32

however, the actual link command libtool spawns does not contain -liberty and - hello! - the link command fails with an undefined reference to a function defined in -liberty. What the?

That's exactly what libtool is all about. Thinking to know better than the user and by that messing it up.

Are you really sure that octave must use libtool? It simply doesn't work for windows.

It'll end up that one patches the makefiles and adds explicit link commands to create the shared libraries - like for all dependency libs where libtool messes around. Great.

benjamin


reply via email to

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