Neil Hopcroft

A digital misfit

Adding project of-sparsersb

The sparsersb package has no dependencies on other octave packages but does have a build dependency upon librsb. It contains a src/ directory which has an autogen.sh script.
Its build fails:

In file included from sparsersb.cc:77:0:
/usr/local/include/octave-4.1.0+/octave/../octave/oct-alloc.h:30:34: error: expected unqualified-id before numeric constant
#define DECLARE_OCTAVE_ALLOCATOR 1
^
sparsersb.cc:1242:3: note: in expansion of macro ‘DECLARE_OCTAVE_ALLOCATOR’
DECLARE_OCTAVE_ALLOCATOR
^

…earlier in the log is a warning “the octave_allocator class has been deprecated and will be removed in a future release of Octave”.
Looking at this a bit more, I found a bit of discussion on the mailing list which suggests that the custom allocator was removed because it added complexity without giving the speed improvement it was hoped for. It also says that the allocator declaration and definition can be removed from Octave Forge packages at any time.
Removing the allocator declaration allows the build to continue but the installation fails with

/usr/share/tomcat7/octave/sparsersb-1.0.0/x86_64-unknown-linux-gnu-api-v50+/sparsersb.oct: failed to load: /usr/share/tomcat7/octave/sparsersb-1.0.0/x86_64-unknown-linux-gnu-api-v50+/sparsersb.oct: undefined symbol: _ZNK17octave_base_value11all_stringsEb
error: unhandled execution exception — eval failed

The missing symbol demangles to octave_base_value::all_strings(bool) const
This error has resolved itself, which I don’t really understand but it could be something to do with the allocator change.
Fixed in build #18.


Adding project of-secs

This project consists of three packages, secs1d, secs2d and secs3d. secs1d depends upon bim, secs2d has no dependencies and secs3d depends upon bim and fpl. Each of the packages has its own subdirectory.
secs1d and secs3d have no src/ directory and can both be installed directly.
secs2d has a src/ directory containing a makefile.
The build fails during the make stage of secs2d:

Uscharfettergummel.cc:39:30: error: ‘Octave_map’ does not name a type
int Uscharfettergummel(const Octave_map &mesh,
^

This happens because Octave_map was renamed octave_map in version 4.0.0, renaming all instances in the source files should allow the compilation to complete.
Fixed in build #16.


of-nan build break – build #9

Build #9 of of-nan broke with this error:

/usr/include/c++/4.8.3/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

Which seems a little strange. There were no changes in build #9 itself, so the changes must have occurred either in the octave build between #915 and #941 or in the environment. The error gives a suggestion for what to do about the problem, though. Adding “CFLAGS=-std=c++11” to the environment before running make fixes this build problem.
Fixed in build #11.