bugGNU Octave - Bugs: bug #51805, error: ‘yylex’ was not...

 
 

bug #51805: error: ‘yylex’ was not declared in this scope

Submitted by:  David Laxer <dbl001>
Submitted on:  Sun 20 Aug 2017 06:51:47 PM UTC  
 
Category: Configuration and Build SystemSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Build Failure
Status: Works For MeAssigned to: None
Originator Name: dbl001Open/Closed: Closed
Release: 4.2.1Operating System: GNU/Linux

Add a New Comment(Rich Markup)
   

You are not logged in

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

 

(Jump to the original submission Jump to the original submission)

Sun 20 Aug 2017 10:43:36 PM UTC, comment #7:

Yes, please file a new bug report, and include the version of SUNDIALS that you are trying to build against. Note that this is a dev issue only, the 4.2 release of Octave doesn't use SUNDIALS.

Mike Miller <mtmiller>
Project Administrator
Sun 20 Aug 2017 10:01:49 PM UTC, comment #6:

checking for ida_klu.h... no
checking whether Sundials IDA is configured with IDAKLU enabled... no
configure: WARNING: Sundials IDA library not configured with IDAKLU, ode15i and ode15s will not support the sparse Jacobian feature

David Laxer <dbl001>
Sun 20 Aug 2017 09:28:12 PM UTC, comment #5:

SUNDIALS_IDA CPPFLAGS:
SUNDIALS_IDA LDFLAGS:
SUNDIALS_IDA libraries: -lsundials_ida
SUNDIALS_NVECSERIAL CPPFLAGS:
SUNDIALS_NVECSERIAL LDFLAGS:
SUNDIALS_NVECSERIAL libraries: -lsundials_nvecserial

David Laxer <dbl001>
Sun 20 Aug 2017 09:22:31 PM UTC, comment #4:

I removed bison2.7, removed Octave and re-cloned it from the repository. The yacc() issues are resolved.

However, I have a SUNDIALS issue:

if (havejac && IDADlsSetDenseJacFn (mem, IDA::jacdense) != 0)
^
In file included from /usr/local/include/ida/ida_dense.h:24:0,
from libinterp/dldfcn/__ode15__.cc:44:
/usr/local/include/ida/ida_direct.h:256:21: error: initializing argument 2 of ‘int IDADlsSetDenseJacFn(void*, IDADlsDenseJacFn)’ [-fpermissive]
SUNDIALS_EXPORT int IDADlsSetDenseJacFn(void *ida_mem, IDADlsDenseJacFn jac);
^
libinterp/dldfcn/__ode15__.cc: In member function ‘octave_value_list octave::IDA::integrate(int, const ColumnVector&, const ColumnVector&, const ColumnVector&, int, bool, bool, octave_function, bool, ColumnVector&, bool, octave_function)’:
libinterp/dldfcn/__ode15__.cc:605:45: error: ‘IDAGetDky’ was not declared in this scope
if (IDAGetDky (mem, tend, 0, dky) != 0)
^
libinterp/dldfcn/__ode15__.cc: In member function ‘bool octave::IDA::interpolate(int&, Matrix&, ColumnVector&, int, realtype, bool, bool, octave_function, ColumnVector&, bool, octave_function, ColumnVector&, Matrix&, ColumnVector&, ColumnVector&, ColumnVector&, ColumnVector&, int&, ColumnVector&)’:
libinterp/dldfcn/__ode15__.cc:775:49: error: ‘IDAGetDky’ was not declared in this scope
if (IDAGetDky (mem, tin + step*i, 0, dky) != 0)
^
libinterp/dldfcn/__ode15__.cc:778:50: error: ‘IDAGetDky’ was not declared in this scope
if (IDAGetDky (mem, tin + step*i, 1, dkyp) != 0)
^
make[2]: *** [libinterp/dldfcn/libinterp_dldfcn___ode15___la-__ode15__.lo] Error

Close bug #51805 and open a new incident?

David Laxer <dbl001>
Sun 20 Aug 2017 08:19:48 PM UTC, comment #3:

The output that you see in Makefile looks like Octave was configured for bison 3.0.x. It's possible that you ran configure when bison 3.0.2 was the default, then you installed bison 2.7, and did not re-run configure.

You shouldn't even need to install bison in the first place, Octave's source distribution includes the output of bison so that users shouldn't need it for the build to work.

Try starting from scratch and building from the original source tarball, with bison 2.7 removed from your system.

Mike Miller <mtmiller>
Project Administrator
Sun 20 Aug 2017 08:00:48 PM UTC, comment #2:

1. the —enable-64 flag is irrelevant.

2. ubuntu@ip-10-0-1-107:~/octave$ grep ^BISON_ Makefile
BISON_API_PREFIX_DECL_STYLE = api brace
BISON_PUSH_PULL_DECL_STYLE = dash

3. $ wget http://ftp.gnu.org/gnu/bison/bison-2.7.tar.gz

David Laxer <dbl001>
Sun 20 Aug 2017 07:39:51 PM UTC, comment #1:

Building Octave with bison 3.0.2 on Ubuntu 14.04 has been working fine for me.

The code where you are seeing this build error should not depend on whether Octave is built with or without support for 64-bit indexes. Do you only get this error when you build Octave with --enable-64 or is that irrelevant?

Where is bison 2.7 coming from?

What does "grep ^BISON_ Makefile" show?

Mike Miller <mtmiller>
Project Administrator
Sun 20 Aug 2017 06:51:47 PM UTC, original submission:

I'm trying to build Octave on Ubuntu 14.04LTS with support for
64bit indexes.

I tried with bison 3.0.2 as well as with bison 2.7

ubuntu@ip-10-0-1-107:~/octave$ bison --version
bison (GNU Bison) 2.7
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ubuntu@ip-10-0-1-107:~/octave$ yacc --version
bison (GNU Bison) 2.7
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ubuntu@ip-10-0-1-107:~/octave$ g++ --version
g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ubuntu@ip-10-0-1-107:~/octave$

I get the following errors:

ibinterp/parse-tree/oct-parse.cc: In function ‘int yyparse(octave::base_parser&)’:
libinterp/parse-tree/oct-parse.cc:3099:39: error: ‘yylex’ was not declared in this scope
yychar = yylex (&yylval, scanner);
^
libinterp/parse-tree/oct-parse.yy: In constructor ‘octave::base_parser::base_parser(octave::base_lexer&)’:
libinterp/parse-tree/oct-parse.yy:2148:37: error: ‘yypstate_new’ was not declared in this scope
m_parser_state (yypstate_new ())
^
libinterp/parse-tree/oct-parse.yy: In destructor ‘octave::base_parser::~base_parser()’:
libinterp/parse-tree/oct-parse.yy:2165:34: error: expected type-specifier before ‘yypstate’
yypstate_delete (static_cast<yypstate *> (m_parser_state));
^
libinterp/parse-tree/oct-parse.yy:2165:34: error: expected ‘>’ before ‘yypstate’
libinterp/parse-tree/oct-parse.yy:2165:34: error: expected ‘(’ before ‘yypstate’
libinterp/parse-tree/oct-parse.yy:2165:34: error: ‘yypstate’ was not declared in this scope
libinterp/parse-tree/oct-parse.yy:2165:44: error: expected primary-expression before ‘>’ token
yypstate_delete (static_cast<yypstate *> (m_parser_state));
^
libinterp/parse-tree/oct-parse.yy: In member function ‘void octave::base_parser::reset()’:
libinterp/parse-tree/oct-parse.yy:2191:34: error: expected type-specifier before ‘yypstate’
yypstate_delete (static_cast<yypstate *> (m_parser_state));
^
libinterp/parse-tree/oct-parse.yy:2191:34: error: expected ‘>’ before ‘yypstate’
libinterp/parse-tree/oct-parse.yy:2191:34: error: expected ‘(’ before ‘yypstate’
libinterp/parse-tree/oct-parse.yy:2191:34: error: ‘yypstate’ was not declared in this scope
libinterp/parse-tree/oct-parse.yy:2191:44: error: expected primary-expression before ‘>’ token
yypstate_delete (static_cast<yypstate *> (m_parser_state));
^
libinterp/parse-tree/oct-parse.yy:2192:36: error: ‘yypstate_new’ was not declared in this scope
m_parser_state = yypstate_new ();
^
libinterp/parse-tree/oct-parse.yy: In member function ‘int octave::parser::run()’:
libinterp/parse-tree/oct-parse.yy:4288:5: error: ‘yypstate’ was not declared in this scope
yypstate pstate = static_cast<yypstate > (m_parser_state);
^
libinterp/parse-tree/oct-parse.yy:4288:15: error: ‘pstate’ was not declared in this scope
yypstate pstate = static_cast<yypstate > (m_parser_state);
^
libinterp/parse-tree/oct-parse.yy:4288:36: error: expected type-specifier before ‘yypstate’
yypstate pstate = static_cast<yypstate > (m_parser_state);
^
libinterp/parse-tree/oct-parse.yy:4288:36: error: expected ‘>’ before ‘yypstate’
libinterp/parse-tree/oct-parse.yy:4288:36: error: expected ‘(’ before ‘yypstate’
libinterp/parse-tree/oct-parse.yy:4288:46: error: expected primary-expression before ‘>’ token
yypstate pstate = static_cast<yypstate > (m_parser_state);
^
libinterp/parse-tree/oct-parse.yy:4288:64: error: expected ‘)’ before ‘;’ token
yypstate pstate = static_cast<yypstate > (m_parser_state);
^
libinterp/parse-tree/oct-parse.yy:4292:50: error: ‘octave_pull_parse’ was not declared in this scope
status = octave_pull_parse (pstate, *this);
^
libinterp/parse-tree/oct-parse.yy: In member function ‘int octave::push_parser::run(const string&, bool)’:
libinterp/parse-tree/oct-parse.yy:4352:9: error: ‘yypstate’ was not declared in this scope
yypstate pstate = static_cast<yypstate > (m_parser_state);
^
libinterp/parse-tree/oct-parse.yy:4352:19: error: ‘pstate’ was not declared in this scope
yypstate pstate = static_cast<yypstate > (m_parser_state);
^
libinterp/parse-tree/oct-parse.yy:4352:40: error: expected type-specifier before ‘yypstate’
yypstate pstate = static_cast<yypstate > (m_parser_state);
^
libinterp/parse-tree/oct-parse.yy:4352:40: error: expected ‘>’ before ‘yypstate’
libinterp/parse-tree/oct-parse.yy:4352:40: error: expected ‘(’ before ‘yypstate’
libinterp/parse-tree/oct-parse.yy:4352:50: error: expected primary-expression before ‘>’ token
yypstate pstate = static_cast<yypstate > (m_parser_state);
^
libinterp/parse-tree/oct-parse.yy:4352:68: error: expected ‘)’ before ‘;’ token
yypstate pstate = static_cast<yypstate > (m_parser_state);
^
libinterp/parse-tree/oct-parse.yy:4356:68: error: ‘octave_push_parse’ was not declared in this scope
status = octave_push_parse (pstate, token, &lval, *this);
^
libinterp/parse-tree/oct-parse.yy:4385:22: error: ‘YYPUSH_MORE’ was not declared in this scope
while (status == YYPUSH_MORE);
^
make[2]: *** [libinterp/parse-tree/libinterp_parse_tree_libparse_tree_la-oct-parse.lo] Error 1
make[2]: Leaving directory `/home/ubuntu/octave'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ubuntu/octave'
make: *** [all] Error 2
ubuntu@ip-10-0-1-107:~/octave$

David Laxer <dbl001>

 

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

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by mtmiller (Posted a comment)
  • -unavailable- added by dbl001 (Submitted the item)
  • -unavailable- added by dbl001
  •  

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

    Only project members can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 4 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sun 20 Aug 2017 10:43:36 PM UTCmtmillerOpen/ClosedOpen=>Closed
    Sun 20 Aug 2017 08:19:48 PM UTCmtmillerStatusNeed Info=>Works For Me
    Sun 20 Aug 2017 07:39:51 PM UTCmtmillerStatusNone=>Need Info
    Sun 20 Aug 2017 06:51:47 PM UTCdbl001Carbon-Copy-=>Added dbl001

    Back to the top


    Powered by Savane 3.1-cleanup1