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