bugGNU Octave - Bugs: bug #59248, configure is still testing for a...

 
 

bug #59248: configure is still testing for a function (IDADense) which does not exists anymore in sundials

Submitted by:  None
Submitted on:  Sun 11 Oct 2020 07:39:14 PM UTC  
 
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  Ready For Test Assigned to:  None
Originator Name:  Wolfgang Walthes Originator Email:  -email is unavailable-
Open/Closed:  Open Release:  6.0.90
Operating System:  Any

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Thu 15 Oct 2020 01:18:09 PM UTC, comment #4: 

Hopefully fixed here:
https://hg.savannah.gnu.org/hgweb/octave/rev/8592190176a8

Marking as ready for test (again).

Markus Mützel <mmuetzel>
Project Member
Thu 15 Oct 2020 12:32:33 PM UTC, comment #3: 

That turns out to be more complicated than what I hoped it would be.
The configure output contains:

checking for SUNDenseLinearSolver... yes
checking whether SUNDIALS API provides the necessary functions... yes

Yet compilation fails with:

../src/libinterp/dldfcn/__ode15__.cc: In function ‘_generic_SUNLinearSolver* octave::SUNLinSol_Dense(N_Vector, SUNMatrix)’:
../src/libinterp/dldfcn/__ode15__.cc:103:12: error: ‘SUNDenseLinearSolver’ was not declared in this scope; did you mean ‘SUNLinearSolver’?
  103 |     return SUNDenseLinearSolver (y, A);
      |            ^~~~~~~~~~~~~~~~~~~~
      |            SUNLinearSolver
../src/libinterp/dldfcn/__ode15__.cc: In member function ‘void octave::IDA::set_up(const ColumnVector&)’:
../src/libinterp/dldfcn/__ode15__.cc:420:26: error: ‘SUNDenseMatrix’ was not declared in this scope; did you mean ‘SUNMatrix’?
  420 |         m_sunJacMatrix = SUNDenseMatrix (m_num, m_num);
      |                          ^~~~~~~~~~~~~~
      |                          SUNMatrix
../src/libinterp/dldfcn/__ode15__.cc: In member function ‘void octave::IDA::jacdense_impl(realtype, realtype, _generic_N_Vector*&, _generic_N_Vector*&, _generic_SUNMatrix*&)’:
../src/libinterp/dldfcn/__ode15__.cc:457:16: error: ‘SUNDenseMatrix_Data’ was not declared in this scope
  457 |                SUNDenseMatrix_Data (JJ));
      |                ^~~~~~~~~~~~~~~~~~~
make[2]: *** [Makefile:19642: libinterp/dldfcn/__ode15___la-__ode15__.lo] Error 1
make[2]: *** Waiting for unfinished jobs....

That's probably because I removed the test `AC_CHECK_HEADERS([sunlinsol/sunlinsol_dense.h])`. I am currently trying to find the best place to add that back in.

Markus Mützel <mmuetzel>
Project Member
Thu 15 Oct 2020 10:50:45 AM UTC, comment #2: 

I pushed a changeset that removes that configure check here:
https://hg.savannah.gnu.org/hgweb/octave/rev/34a83d34038e

Marking as ready for test.

Markus Mützel <mmuetzel>
Project Member
Mon 12 Oct 2020 11:41:04 AM UTC, comment #1: 

Confirmed.
Support for SUNDIALS versions older than 3.0 has been removed from Octave 6.
The configure test for IDADense is probably just a left-over and can be removed.
It looks like the corresponding macro HAVE_SUNDIALS_SUNLINSOL_DENSE is nowhere used any more.

Markus Mützel <mmuetzel>
Project Member
Sun 11 Oct 2020 07:39:14 PM UTC, original submission:  

Since sundials-3.0.0 the function IDADENSE is no more available in the package. (I am using sundials-5.4.0 on a linux and macos system)
This function was available until sundials-2.7.0. (at least to my knowledge)
In the configure file (until octave version 7.0.0) is still code testing the availability of DENSE in sundials:

example for octave 5.2

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether SUNDIALS IDA includes the IDADENSE linear solver" >&5
$as_echo_n "checking whether SUNDIALS IDA includes the IDADENSE linear solver... " >&6; }
if ${octave_cv_sundials_ida_dense+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

         #if defined (HAVE_IDA_IDA_DENSE_H)
         #include <ida/ida_dense.h>
         #else
         #include <ida_dense.h>
         #endif

#ifdef F77_DUMMY_MAIN

#  ifdef __cplusplus
     extern "C"
#  endif
   int F77_DUMMY_MAIN() { return 1; }

#endif
int
main ()
{

         void *mem = 0;
         long int num = 0;
         IDADense (mem, num);

  ;
  return 0;
}

as this test delivers always a negative feedback, the result is always:

warn_sundials_ida_dense="SUNDIALS IDA library does not include the IDADENSE linear solver, ode15i and ode15s will be disabled"

Please double check and in case you can confirm please use a valid function to test for DENSE.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by None (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2020-10-15 mmuetzel StatusIn Progress => Ready For Test
    2020-10-15 mmuetzel StatusReady For Test => In Progress
    2020-10-15 mmuetzel StatusConfirmed => Ready For Test
    2020-10-12 mmuetzel StatusNone => Confirmed
        Release5.2.0 => 6.0.90

    Back to the top


    Powered by Savane 3.5