swiglal_octave compilation failure
I'm running into an issue recompiling lal
from source rpms. I'm in a rocky linux 8.5 container, and the error occurs with the default system compiler and with gcc10
from the redhat devtoolset.
Specifically I'm downloading the source rpm with:
# yumdownloader --source lal
# ls | grep lal
lal-7.1.6-1.el8.src.rpm
Then after installing dependencies and rpmbuild --rebuild lal-7.1.6-1.el8.src.rpm
the compilation fails with a couple of errors, in between warnings. Specifically:
swiglal_octave.cpp<lal>: In function 'octave_value_list Flal(const octave_value_list&, int)':
swiglal_octave.cpp<lal>:223176:3: error: 'octave_exit' was not declared in this scope; did you mean 'octave_quit'?
swiglal_octave.cpp<lal>:223204:33: warning: 'octave_value_list feval(const string&, const octave_value_list&, int)' is deprecated: [4.4]: use 'octave::feval' instead [-Wdeprecated-declarations]
In file included from swiglal_octave.cpp<lal>:246:
/usr/include/octave-5.2.0/octave/../octave/parse.h:658:1: note: declared here
658 | feval (const std::string& name,
| ^~~~~
swiglal_octave.cpp<lal>:223212:46: warning: 'octave_call_stack' is deprecated: [4.4]: use 'octave::call_stack' instead [-Wdeprecated-declarations]
In file included from /usr/include/octave-5.2.0/octave/../octave/pt-eval.h:34,
from /usr/include/octave-5.2.0/octave/../octave/interpreter.h:46,
from /usr/include/octave-5.2.0/octave/../octave/pt-bp.h:32,
from /usr/include/octave-5.2.0/octave/../octave/pt-cmd.h:32,
from /usr/include/octave-5.2.0/octave/../octave/pt-decl.h:33,
from /usr/include/octave-5.2.0/octave/../octave/pt-misc.h:29,
from /usr/include/octave-5.2.0/octave/../octave/parse.h:37,
from swiglal_octave.cpp<lal>:246:
/usr/include/octave-5.2.0/octave/../octave/call-stack.h:299:28: note: declared here
299 | typedef octave::call_stack octave_call_stack;
| ^~~~~~~~~~~~~~~~~
swiglal_octave.cpp<lal>:223212:54: error: cannot call member function 'octave_function* octave::call_stack::current() const' without object
I fully accept there could be some package incompatibility or something, but I'm not sure where to start looking.