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?
|
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.
|
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$
|