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

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

[Octave-bug-tracker] [bug #55937] building default with sundials 2.x fai


From: Mike Miller
Subject: [Octave-bug-tracker] [bug #55937] building default with sundials 2.x fails in make, configure should disable sundials
Date: Sat, 16 Mar 2019 16:23:40 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36

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

                 Summary: building default with sundials 2.x fails in make,
configure should disable sundials
                 Project: GNU Octave
            Submitted by: mtmiller
            Submitted on: Sat 16 Mar 2019 01:23:37 PM PDT
                Category: Configuration and Build System
                Severity: 4 - Important
                Priority: 5 - Normal
              Item Group: Build Failure
                  Status: None
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
                 Release: dev
        Operating System: GNU/Linux

    _______________________________________________________

Details:

The default branch only supports the new sundials API in version 3.x and
later.

Trying to build the default branch on a system with sundials 2.x now,
configure thinks that it found a suitable version of sundials, the feature
tests think that it is good enough, but make fails with an error. This should
be detected in configure and sundials disabled completely.

Here is what configure puts out with sundials 2.7.0


checking for nvector/nvector_serial.h... yes
checking for N_VNew_Serial in -lsundials_nvecserial... yes
checking for ida/ida.h... yes
checking for IDAInit in -lsundials_ida... yes
checking whether SUNDIALS IDA is configured with double precision realtype...
yes
checking for sunlinsol/sunlinsol_dense.h... no
checking whether SUNDIALS IDA includes the SUNLINSOL_DENSE linear solver...
yes
checking for sunlinsol/sunlinsol_klu.h... no
configure: WARNING: SUNDIALS IDA library not configured with SUNLINSOL_KLU or
sunlinksol_klu.h is not usable; ode15i and ode15s will not support the sparse
Jacobian feature
checking for IDASetJacFn... no
checking for IDASetLinearSolver... no
checking for SUNLinSol_Dense... no
checking for SUNLinSol_KLU... no
checking for ida/ida_direct.h... yes
checking for ida_direct.h... no
checking for IDADlsSetJacFn... no
checking for IDADlsSetLinearSolver... no
checking for SUNDenseLinearSolver... no
checking for SUNKLU... no


With all of those feature tests, and all of those "no"s, is there enough
information here already to disable sundials?
If not, it looks like it should be very easy to test for the SUNMatrix or
SUNLinearSolver typedefs and if they don't exist disable sundials.

Here are the compilation errors


  CXX      libinterp/dldfcn/__ode15___la-__ode15__.lo
../libinterp/dldfcn/__ode15__.cc:264:39: error: 'SUNMatrix' has not been
declared
               N_Vector yyp, N_Vector, SUNMatrix JJ, void *user_data,
                                       ^~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:274:49: error: 'SUNMatrix' has not been
declared
                    N_Vector& yy, N_Vector& yyp, SUNMatrix& JJ);
                                                 ^~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:353:5: error: 'SUNMatrix' does not name a
type; did you mean 'Matrix'?
     SUNMatrix sunJacMatrix;
     ^~~~~~~~~
     Matrix
../libinterp/dldfcn/__ode15__.cc:354:5: error: 'SUNLinearSolver' does not name
a type
     SUNLinearSolver sunLinearSolver;
     ^~~~~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc: In constructor 'octave::IDA::IDA()':
../libinterp/dldfcn/__ode15__.cc:169:9: error: class 'octave::IDA' does not
have any field named 'sunJacMatrix'
         sunJacMatrix (nullptr), sunLinearSolver (nullptr)
         ^~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:169:33: error: class 'octave::IDA' does not
have any field named 'sunLinearSolver'
         sunJacMatrix (nullptr), sunLinearSolver (nullptr)
                                 ^~~~~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc: In constructor 'octave::IDA::IDA(realtype,
ColumnVector, ColumnVector, const octave_value&,
octave::IDA::DAERHSFuncIDA)':
../libinterp/dldfcn/__ode15__.cc:180:9: error: class 'octave::IDA' does not
have any field named 'sunJacMatrix'
         sunJacMatrix (nullptr), sunLinearSolver (nullptr)
         ^~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:180:33: error: class 'octave::IDA' does not
have any field named 'sunLinearSolver'
         sunJacMatrix (nullptr), sunLinearSolver (nullptr)
                                 ^~~~~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc: In destructor 'octave::IDA::~IDA()':
../libinterp/dldfcn/__ode15__.cc:187:21: error: 'sunLinearSolver' was not
declared in this scope
       SUNLinSolFree(sunLinearSolver);
                     ^~~~~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:187:7: error: 'SUNLinSolFree' was not
declared in this scope
       SUNLinSolFree(sunLinearSolver);
       ^~~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:188:21: error: 'sunJacMatrix' was not
declared in this scope
       SUNMatDestroy(sunJacMatrix);
                     ^~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:188:21: note: suggested alternative:
'DiagMatrix'
       SUNMatDestroy(sunJacMatrix);
                     ^~~~~~~~~~~~
                     DiagMatrix
../libinterp/dldfcn/__ode15__.cc:188:7: error: 'SUNMatDestroy' was not
declared in this scope
       SUNMatDestroy(sunJacMatrix);
       ^~~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:188:7: note: suggested alternative:
'N_VDestroy'
       SUNMatDestroy(sunJacMatrix);
       ^~~~~~~~~~~~~
       N_VDestroy
../libinterp/dldfcn/__ode15__.cc: In member function 'void
octave::IDA::set_up(const ColumnVector&)':
../libinterp/dldfcn/__ode15__.cc:418:9: error: 'sunJacMatrix' was not declared
in this scope
         sunJacMatrix = SUNDenseMatrix (num, num);
         ^~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:418:9: note: suggested alternative:
'DiagMatrix'
         sunJacMatrix = SUNDenseMatrix (num, num);
         ^~~~~~~~~~~~
         DiagMatrix
../libinterp/dldfcn/__ode15__.cc:418:24: error: 'SUNDenseMatrix' was not
declared in this scope
         sunJacMatrix = SUNDenseMatrix (num, num);
                        ^~~~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:418:24: note: suggested alternative:
'SparseMatrix'
         sunJacMatrix = SUNDenseMatrix (num, num);
                        ^~~~~~~~~~~~~~
                        SparseMatrix
../libinterp/dldfcn/__ode15__.cc:422:9: error: 'sunLinearSolver' was not
declared in this scope
         sunLinearSolver = SUNLinSol_Dense (yy, sunJacMatrix);
         ^~~~~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:422:27: error: 'SUNLinSol_Dense' was not
declared in this scope
         sunLinearSolver = SUNLinSol_Dense (yy, sunJacMatrix);
                           ^~~~~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:426:13: error: 'IDASetLinearSolver' was not
declared in this scope
         if (IDASetLinearSolver (mem, sunLinearSolver, sunJacMatrix))
             ^~~~~~~~~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:426:13: note: suggested alternative:
'IDAGetLastOrder'
         if (IDASetLinearSolver (mem, sunLinearSolver, sunJacMatrix))
             ^~~~~~~~~~~~~~~~~~
             IDAGetLastOrder
../libinterp/dldfcn/__ode15__.cc:429:24: error: 'IDASetJacFn' was not declared
in this scope
         if (havejac && IDASetJacFn (mem, IDA::jacdense) != 0)
                        ^~~~~~~~~~~
../libinterp/dldfcn/__ode15__.cc:429:24: note: suggested alternative:
'IDASetId'
         if (havejac && IDASetJacFn (mem, IDA::jacdense) != 0)
                        ^~~~~~~~~~~
                        IDASetId
../libinterp/dldfcn/__ode15__.cc: At global scope:
../libinterp/dldfcn/__ode15__.cc:437:52: error: 'SUNMatrix' has not been
declared
                       N_Vector& yy, N_Vector& yyp, SUNMatrix& JJ)
                                                    ^~~~~~~~~
../libinterp/dldfcn/__ode15__.cc: In member function 'void
octave::IDA::jacdense_impl(realtype, realtype, _generic_N_Vector*&,
_generic_N_Vector*&, int&)':
../libinterp/dldfcn/__ode15__.cc:457:7: error: 'SUNDenseMatrix_Data' was not
declared in this scope
       SUNDenseMatrix_Data(JJ));
       ^~~~~~~~~~~~~~~~~~~





    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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