Bug in octave 3.2.x with custom atlas multithread
Jaroslav Hajek
highegg at gmail.com
Fri Jul 3 11:13:05 CDT 2009
On Fri, Jul 3, 2009 at 2:42 PM, Riccardo
Corradini<riccardocorradini at yahoo.it> wrote:
>
> 1)Here you have the first part of valgrind's output before running obench.m
>
> Octave was configured for "x86_64-unknown-linux-gnu".
>
> Additional information about Octave is available at http://www.octave.org.
>
> Please contribute if you find this software useful.
> For more information, visit http://www.octave.org/help-wanted.html
>
> Report bugs to <bug at octave.org> (but first, please read
> http://www.octave.org/bugs.html to learn how to write a helpful report).
>
> For information about changes from previous versions, type `news'.
>
> ==30466==
> ==30466== Invalid read of size 4
> ==30466== at 0x5569680: restore_interrupt_state(void*) (in
> /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x53A32E1: unwind_protect::run_frame(std::string const&) (in
> /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x54ACFCE: octave_user_function::do_multi_index_op(int,
> octave_value_list const&) (in
> /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x54ADD14: octave_user_function::subsref(std::string const&,
> std::list<octave_value_list, std::allocator<octave_value_list> > const&,
> int) (in /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x54AED77: octave_user_function::subsref(std::string const&,
> std::list<octave_value_list, std::allocator<octave_value_list> > const&) (in
> /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x545D813: octave_value::subsref(std::string const&,
> std::list<octave_value_list, std::allocator<octave_value_list> > const&,
> int) (in /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x5579C89: tree_index_expression::rvalue(int) (in
> /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x557761A: tree_index_expression::rvalue1(int) (in
> /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x555E136: tree_simple_assignment::rvalue1(int) (in
> /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x556B813: tree_evaluator::visit_statement(tree_statement&)
> (in /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x5569E02:
> tree_evaluator::visit_statement_list(tree_statement_list&) (in
> /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== by 0x556D5C8:
> tree_evaluator::visit_simple_for_command(tree_simple_for_command&) (in
> /home/corradin/d1/packaging/octave-3.2.1/src/liboctinterp.so)
> ==30466== Address 0x7feffb914 is just below the stack ptr. To suppress,
> use: --workaround-gcc296-bugs=yes
>
> 2) yes all the libraries are custom compiled
> for lapack3.2 ( from the usual lapack website http://www.netlib.org/lapack/)
> in make.inc
> # desired load options for your machine.
> #
> FORTRAN = gfortran -fomit-frame-pointer -mfpmath=387 -falign-loops=4 -fPIC
> -m64
> OPTS = -O2
> DRVOPTS = $(OPTS)
> NOOPT = -O0
> LOADER = gfortran
> LOADOPTS =
> for atlas8.3 (from the usual http://math-atlas.sourceforge.net/) I followed
> the tutorial and section 3.1 3.2 3.3 (in
> http://math-atlas.sourceforge.net/atlas_install/atlas_install.html#SECTION00041000000000000000)
> for suitesparse3.4 8 (from the usual
> http://www.cise.ufl.edu/research/sparse/SuiteSparse/)
> these are the relevant parts in Ufconfig/Ufconfig.mk
>
> # ranlib, and ar, for generating libraries
> RANLIB = ranlib
> AR = ar cr
> LIB = -lm -lgfortran -lpthread
> # delete and rename a file
> RM = rm -f
> MV = mv -f
> .....
> ...
>
> # Using default compilers:
> CC = gcc
> CPLUSPLUS = g++
> # 64bit:
> F77 = gfortran
> F77FLAGS = -O2 -fomit-frame-pointer -mfpmath=387 -falign-loops=4 -fPIC -m64
> CFLAGS = -Wall -W -Wshadow -Wformat -O2 -fPIC
>
>
> BLAS = -L/home/corradin/lib/atlas/lib/ -llapack
> -L/home/corradin/lib/atlas/lib/ -lptcblas -L/home/corradin/lib/atlas/lib/
> -lptf77blas -L/home/corradin/lib/atlas/lib/ -latlas
> LAPACK = -L/home/corradin/lib/atlas/lib -llapack
>
> for qrupdate in Makeconf
>
> FC=gfortran
> # requested flags
> # FFLAGS=-fimplicit-none -O3 -march=native -funroll-loops
> FFLAGS= -fomit-frame-pointer -mfpmath=387 -falign-loops=4 -m64
> # set if you need shared library
> FPICFLAGS=-fPIC
>
> for arpack96
>
> # %---------------------------------------------------%
> # | The name of the libraries to be created/linked to |
> # %---------------------------------------------------%
> #
> ARPACKLIB = $(HOME)/lib/arpack/libarpack.a
> LAPACKLIB = $(HOME)/lib/lapack/lapack.a
> BLASLIB = $(HOME)/lib/atlas/lib/liblapack.a
> $(HOME)/lib/atlas/lib/libptcblas.a $(HOME)/lib/atlas/lib/libptf77blas.a
> $(HOME)/lib/atlas/lib/libatlas.a
>
> #
> ALIBS = $(ARPACKLIB) $(LAPACKLIB) $(BLASLIB)
> FC = gfortran
> FFLAGS = -O2 -fomit-frame-pointer -mfpmath=387 -falign-loops=4 -fPIC
> -m64
>
> LDFLAGS = -lm -lgfortran -lgfortranbegin -lpthread $(ALIBS)
>
> for fftw-3.2.1 this is the relevant part in config.log
> ./configure -enable-single --enable-shared F77=gfortran FFLAGS=-O2
> -fomit-frame-pointer -mfpmath=387 -falign-loops=4 -fPIC -m64 CXXFLAGS=-O2
> -fPIC -m64 --prefix=/home/corradin/lib/fft/
>
> Thanks a lot for all your patience. Hope this gives further help
> Bests
> Riccardo Corradini
>
Surely does. As usual, the first piece is relevant. I only regret you
didn't post this a few hours earlier, because this means the 3.2.1
release I created several hours ago is completely useless :( Damn.
anyway, thanks
--
RNDr. Jaroslav Hajek
computing expert & GNU Octave developer
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz
More information about the Bug-octave
mailing list