octave-bug-tracker
[Top][All Lists]
Advanced

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

[Octave-bug-tracker] [bug #59475] Exceptions Running Octave with 64-bit


From: anonymous
Subject: [Octave-bug-tracker] [bug #59475] Exceptions Running Octave with 64-bit Indexes
Date: Tue, 17 Nov 2020 10:48:00 -0500 (EST)
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:78.0) Gecko/20100101 Firefox/78.0

URL:
  <https://savannah.gnu.org/bugs/?59475>

                 Summary: Exceptions Running Octave with 64-bit Indexes
                 Project: GNU Octave
            Submitted by: None
            Submitted on: Tue 17 Nov 2020 03:47:58 PM UTC
                Category: Configuration and Build System
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Segfault, Bus Error, etc.
                  Status: None
             Assigned to: None
         Originator Name: David Laxer
        Originator Email: davidl@softintel.com
             Open/Closed: Open
                 Release: dev
         Discussion Lock: Any
        Operating System: GNU/Linux

    _______________________________________________________

Details:

Initially, 64-bit BLAS array dims and indexing:  was 'NO'.


{{{
./../configure --prefix=$HOME/my_octave CPPFLAGS="-I/usr/include/suitesparse"
--with-blas="-lopenblas" -with-lapack=-llapack --enable-64
}}}

So, in 'configure' I had to manually set

ax_blas_integer_size=8

'configure' output:
{{{

64-bit BLAS array dims and indexing:  yes


Octave is now configured for x86_64-pc-linux-gnu

  Source directory:              ./..
  Installation prefix:           /home/ubuntu/my_octave
  C compiler:                    gcc  -pthread -fopenmp  -Wall -W -Wshadow
-Wformat -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes
-Wwrite-strings -Wcast-align -Wcast-qual -g -O2
  C++ compiler:                  g++  -pthread -fopenmp  -Wall -W -Wshadow
-Woverloaded-virtual -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings
-Wcast-align -Wcast-qual -g -O2
  Fortran compiler:              gfortran -g -O2 -std=legacy
  Fortran libraries:              -L/usr/lib/gcc/x86_64-linux-gnu/9
-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu
-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu
-L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib
-L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. -lgfortran -lm -lquadmath
  Lex libraries:                 
  LIBS:                          -lutil  -lm 
  LDFLAGS:                       
  Extra LDFLAGS:                 

  AMD CPPFLAGS:                  
  AMD LDFLAGS:                   
  AMD libraries:                 -lamd
  ARPACK CPPFLAGS:               -I/usr/include/arpack
  ARPACK LDFLAGS:                
  ARPACK libraries:              -larpack
  BLAS libraries:                -lopenblas
  BZ2 CPPFLAGS:                  
  BZ2 LDFLAGS:                   
  BZ2 libraries:                 -lbz2
  CAMD CPPFLAGS:                 
  CAMD LDFLAGS:                  
  CAMD libraries:                -lcamd
  CARBON libraries:              
  CCOLAMD CPPFLAGS:              
  CCOLAMD LDFLAGS:               
  CCOLAMD libraries:             -lccolamd
  CHOLMOD CPPFLAGS:              
  CHOLMOD LDFLAGS:               
  CHOLMOD libraries:             -lcholmod
  COLAMD CPPFLAGS:               
  COLAMD LDFLAGS:                
  COLAMD libraries:              -lcolamd
  CURL CPPFLAGS:                 
  CURL LDFLAGS:                  
  CURL libraries:                -lcurl
  CXSPARSE CPPFLAGS:             
  CXSPARSE LDFLAGS:              
  CXSPARSE libraries:            -lcxsparse
  DL libraries:                  -ldl
  FFTW3 CPPFLAGS:                
  FFTW3 LDFLAGS:                 
  FFTW3 libraries:               -lfftw3_threads -lfftw3
  FFTW3F CPPFLAGS:               
  FFTW3F LDFLAGS:                
  FFTW3F libraries:              -lfftw3f_threads -lfftw3f
  FLTK CPPFLAGS:                 -I/usr/include/cairo -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1
-I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16
-I/usr/include/freetype2 -I/usr/include/libpng16
  FLTK LDFLAGS:                  
  FLTK libraries:                -lfltk_gl -lfltk -lX11
  fontconfig CPPFLAGS:           -I/usr/include/uuid -I/usr/include/freetype2
-I/usr/include/libpng16
  fontconfig libraries:          -lfontconfig -lfreetype
  FreeType2 CPPFLAGS:            -I/usr/include/freetype2
-I/usr/include/libpng16
  FreeType2 libraries:           -lfreetype
  GLPK CPPFLAGS:                 
  GLPK LDFLAGS:                  
  GLPK libraries:                -lglpk
  HDF5 CPPFLAGS:                 -I/usr/include/hdf5/serial
  HDF5 LDFLAGS:                  -L/usr/lib/x86_64-linux-gnu/hdf5/serial
  HDF5 libraries:                -lhdf5
  Java home:                     /usr/lib/jvm/java-8-oracle
  Java JVM path:                
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server
  Java CPPFLAGS:                 -I/usr/lib/jvm/java-8-oracle/include
-I/usr/lib/jvm/java-8-oracle/include/linux
  Java libraries:                
  KLU CPPFLAGS:                  
  KLU LDFLAGS:                   
  KLU libraries:                 -lklu
  LAPACK libraries:              -llapack
  LLVM CPPFLAGS:                 
  LLVM LDFLAGS:                  
  LLVM libraries:                
  Magick++ CPPFLAGS:             -I/usr/include/GraphicsMagick
  Magick++ LDFLAGS:              
  Magick++ libraries:            -lGraphicsMagick++ -lGraphicsMagick
  OpenGL libraries:              -lGL -lGLU
  PCRE CPPFLAGS:                 
  PCRE LDFLAGS:                  
  PCRE libraries:                -lpcre
  PortAudio CPPFLAGS:            
  PortAudio LDFLAGS:             
  PortAudio libraries:           -lportaudio -lasound -lm -lpthread
  PTHREAD flags:                 -pthread
  PTHREAD libraries:             
  QHULL CPPFLAGS:                
  QHULL LDFLAGS:                 
  QHULL libraries:               -lqhull
  QRUPDATE CPPFLAGS:             
  QRUPDATE LDFLAGS:              
  QRUPDATE libraries:            -lqrupdate
  Qt CPPFLAGS:                   -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork
-I/usr/include/x86_64-linux-gnu/qt5
-I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport
-I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtHelp
-I/usr/include/x86_64-linux-gnu/qt5
-I/usr/include/x86_64-linux-gnu/qt5/QtWidgets
-I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui
-I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtSql
-I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtXml
-I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtCore
-I/usr/include/x86_64-linux-gnu/qt5
  Qt LDFLAGS:                    
  Qt GUI libraries:              -lQt5Network -lQt5PrintSupport -lQt5Help
-lQt5Widgets -lQt5Gui -lQt5Sql -lQt5Xml -lQt5Core -lqscintilla2_qt5
  Qt OpenGL libraries:           -lQt5OpenGL -lQt5Widgets -lQt5Gui -lQt5Core
  Qt moc:                        moc -qt5
  Qt uic:                        uic -qt5
  Qt rcc:                        rcc -qt5
  Qt lrelease:                   lrelease -qt5
  Qt qcollectiongenerator:       qcollectiongenerator -qt5
  Qt qhelpgenerator:             qhelpgenerator -qt5
  READLINE libraries:            -lreadline
  Sndfile CPPFLAGS:              
  Sndfile LDFLAGS:               
  Sndfile libraries:             -lsndfile
  SuiteSparse config libraries:  -lsuitesparseconfig
  SUNDIALS IDA CPPFLAGS:         
  SUNDIALS IDA LDFLAGS:          
  SUNDIALS IDA libraries:        -lsundials_ida
  SUNDIALS NVECTOR CPPFLAGS:     
  SUNDIALS NVECTOR LDFLAGS:      
  SUNDIALS NVECTOR libraries:    -lsundials_nvecserial
  SUNLINSOL KLU CPPFLAGS:        
  SUNLINSOL KLU LDFLAGS:         
  SUNLINSOL KLU libraries:       -lsundials_sunlinsolklu
  TERM libraries:                -lncurses
  UMFPACK CPPFLAGS:              
  UMFPACK LDFLAGS:               
  UMFPACK libraries:             -lumfpack
  X11 include flags:             
  X11 libraries:                 -lX11
  Z CPPFLAGS:                    
  Z LDFLAGS:                     
  Z libraries:                   -lz

  Default pager:                 less
  gnuplot:                       gnuplot

  Build Octave Qt GUI:                  yes (version: 5)
  JIT compiler for loops:               no
  Build Java interface:                 yes
  Build static libraries:               no
  Build shared libraries:               yes
  Dynamic Linking API:                  dlopen
  Include support for GNU readline:     yes
  Use push parser in command line REPL: yes
  64-bit array dims and indexing:       yes
  64-bit BLAS array dims and indexing:  yes
  OpenMP SMP multithreading:            yes
  Truncate intermediate FP results:     yes
  Build cross tools:                    no
  Build docs:                           yes


}}}

I'm not sure why configure was
Initially, 64-bit BLAS array dims and indexing:  was 'NO'.

I ran this test program which exited normally with no errors:

{{{
$ gfortran -o conftest -g -O2   conftest.f  -lopenblas
```
conftest.f:

      program main

      integer*8 two, n
      integer*4 n2(2)
      double precision d, a(1), b(1), ddot
      equivalence (n, n2)

      a(1) = 1.0
      b(1) = 1.0

c Generate 2**32 + 1 in an 8-byte integer.  Whether we have a big
c endian or little endian system, both 4-byte words of this value
c should be 1.

      two = 2
      n = (two ** 32) + 1

c Check that our expectation about the type conversions are correct.

      if (n2(1) .ne. 1 .or. n2(2) .ne. 1) then
        print *, 'invalid assumption about integer type conversion'
        stop 2
      endif

*     print *, n, n2(1), n2(2)
*     print *, a(1), b(1)

c DDOT will either see 1 or a large value for N.  Since INCX and INCY
c are both 0, we will never increment the index, so A and B only need to
c have a single element.  If N is interpreted as 1 (BLAS compiled with 4
c byte integers) then the result will be 1.  If N is interpreted as a
c large value (BLAS compiled with 8 byte integers) then the result will
c be the summation a(1)*b(1) 2^32+1 times.  This will also take some
c time to compute, but at least for now it is the unusual case so we are
c much more likely to exit quickly after detecting that the BLAS library
c was compiled with 4-byte integers.

      d = ddot (n, a, 0, b, 0)

*     print *, a(1), b(1), d

c Success (0 exit status) means we detected BLAS compiled with
c 8-byte integers.

      if (d .eq. 1.0) then
        stop 1
      endif


      end

}}}

Finally, make failed running:  ./.build/doc/interpreter/splinefit4.eps
with index out of range' in ../liboctave/numeric/qr.cc, running 
{{{
./scripts/polynomial/splinefit.m
in __splinefit__ 

doing qr:
[Q,R,dummy] = qr(B2); %#ok
}}}





    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?59475>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

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