[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while
From: |
Markus Mützel |
Subject: |
[Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb" |
Date: |
Fri, 21 Oct 2022 12:44:46 -0400 (EDT) |
Follow-up Comment #38, bug #61393 (project octave):
That was a good hint. It looks like libtool didn't want to build a shared
library:
/bin/bash ./libtool --tag=CC --mode=link x86_64-w64-mingw32-gcc -g -O2
-D__USE_MINGW_ANSI_STDIO=1 -std=c99 -no-undefined -version-info 0:0:0
-L/home/osboxes/mxe-octave-stable/usr/x86_64-w64-mingw32/lib -o librsb.la
-rpath /home/osboxes/mxe-octave-stable/usr/x86_64-w64-mingw32/lib rsb.lo
librsb_nounroll.la librsb_base.la librsb_spblas.la
/home/osboxes/mxe-octave-stable/tmp-librsb/librsb-1.3.0.1/librsbpp/librsbpp.la
-lstdc++ -lm -lz -fopenmp
-L/home/osboxes/mxe-octave-stable/usr/x86_64-w64-mingw32/lib
-L/home/osboxes/mxe-octave-stable/usr/lib/gcc/x86_64-w64-mingw32/11.2.0
-L/home/osboxes/mxe-octave-stable/usr/lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib
-L/home/osboxes/mxe-octave-stable/usr/lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib
-lgfortran -lmingw32 -lmoldname -lmingwex -lmsvcrt -lkernel32 -lquadmath -lm
-lkernel32 -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -lkernel32
*** Warning: This system cannot link to static lib archive
/home/osboxes/mxe-octave-stable/usr/lib/gcc/x86_64-w64-mingw32/11.2.0/libstdc++fs.la.
*** 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.
*** Warning: linker path does not have real file for library -lmingw32.
*** 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 libmingw32 and none of the candidates passed a file format test
*** using a file magic. Last file checked:
/home/osboxes/mxe-octave-stable/usr/x86_64-w64-mingw32/lib/libmingw32.a
*** Warning: linker path does not have real file for library -lmoldname.
*** 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 libmoldname and none of the candidates passed a file format test
*** using a file magic. Last file checked:
/home/osboxes/mxe-octave-stable/usr/x86_64-w64-mingw32/lib/libmoldname.a
*** Warning: linker path does not have real file for library -lmingwex.
*** 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 libmingwex and none of the candidates passed a file format test
*** using a file magic. Last file checked:
/home/osboxes/mxe-octave-stable/usr/x86_64-w64-mingw32/lib/libmingwex.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.
*** Since this library must not contain undefined symbols,
*** because either the platform does not support them or
*** it was explicitly requested with -no-undefined,
*** libtool will only create a static version of it.
libtool: link: (cd .libs/librsb.lax/librsb_nounroll.a && x86_64-w64-mingw32-ar
x
"/home/osboxes/mxe-octave-stable/tmp-librsb/librsb-1.3.0.1/./.libs/librsb_nounroll.a")
libtool: link: (cd .libs/librsb.lax/librsb_base.a && x86_64-w64-mingw32-ar x
"/home/osboxes/mxe-octave-stable/tmp-librsb/librsb-1.3.0.1/./.libs/librsb_base.a")
libtool: link: (cd .libs/librsb.lax/librsb_spblas.a && x86_64-w64-mingw32-ar x
"/home/osboxes/mxe-octave-stable/tmp-librsb/librsb-1.3.0.1/./.libs/librsb_spblas.a")
libtool: link: (cd .libs/librsb.lax/librsbpp.a && x86_64-w64-mingw32-ar x
"/home/osboxes/mxe-octave-stable/tmp-librsb/librsb-1.3.0.1/librsbpp/.libs/librsbpp.a")
libtool: link: x86_64-w64-mingw32-ar cru .libs/librsb.a .libs/rsb.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_bench.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_krnl.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_krnl_bcoo_spmv_u.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_krnl_bcss.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_krnl_bcss_l.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_krnl_bcss_misc_u.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_krnl_bcss_spmv_u.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_krnl_bcss_spsv_u.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_krnl_bcss_u.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_krnl_lb.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_krnl_vb.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_merge.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_mergesort.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_ompio.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_permute.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_prec.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_spgemm_csr.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_spmv.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_spsum_misc.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_strmif.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_stropts.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_unroll.o
.libs/librsb.lax/librsb_nounroll.a/librsb_nounroll_la-rsb_util.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_asm.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_bio.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_blas_stuff.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_clone.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_coo.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_coo2rec.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_coo_check.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_coo_symm.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_cpmv.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_csr.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_csr2coo.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_do.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_dump.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_eps.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_err.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_fpb.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_garbage.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_gen.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_get.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_idx.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_init.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_internals.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_is.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_limiter.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_lock.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_mbw.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_mio.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_mmio.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_msort_up.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_op.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_partition.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_perf.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_rec.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_rec2coo.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_rec2csr.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_render.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_rsb.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_set.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_spgemm.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_spsum.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_spsv.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_src.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_srt.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_srtp.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_swt.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_sys.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_test_accuracy.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_tune.o
.libs/librsb.lax/librsb_base.a/librsb_base_la-rsb_user.o
.libs/librsb.lax/librsb_spblas.a/rsb_libspblas.o
.libs/librsb.lax/librsb_spblas.a/rsb_libspblas_handle.o
.libs/librsb.lax/librsbpp.a/rsbpp_coo.o
.libs/librsb.lax/librsbpp.a/rsbpp_csr.o
libtool: link: x86_64-w64-mingw32-ranlib .libs/librsb.a
libtool: link: rm -fr .libs/librsb.lax
libtool: link: ( cd ".libs" && rm -f "librsb.la" && ln -s "../librsb.la"
"librsb.la" )
The first library it complains about is "libstdc++fs". It looks like its
implementation in GCC is incomplete (especially for Windows), and there is no
shared library for it. [1]
I worked around that by adding `ac_cv_lib_stdcppfs_main=no
ac_cv_header_filesystem=no` to the configure flags.
The other libraries seem to come from the `AC_FC_LIBRARY_LDFLAGS` macro. By
the looks of it, its output is completely broken (at least for Windows). I
worked around that by setting `FCLIBS="-lgfortran"` for the configure script.
With those changes to the configure command, a shared library `librsb-0.dll`
is built.
With that in place, the sparsersb package builds without any issues.
I guess that means that your pre-released version builds successfully for
Windows (when working around some platform specific quirks). 👍
Please, let us know when you are ready to release it, and we'll update to that
version in MXE Octave.
[1]:
https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dynamic_or_shared.html
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?61393>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", (continued)
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", Markus Mützel, 2022/10/18
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", dezperado, 2022/10/18
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", dezperado, 2022/10/18
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", dezperado, 2022/10/18
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", dezperado, 2022/10/18
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", dezperado, 2022/10/18
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", dezperado, 2022/10/18
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", dezperado, 2022/10/18
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", Markus Mützel, 2022/10/19
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", dezperado, 2022/10/19
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb",
Markus Mützel <=
- [Octave-bug-tracker] [bug #61393] [octave forge] (sparsersb) Crash while "pkg test sparsersb", dezperado, 2022/10/21