flatmax / gtkiostream

Trivialised Threading, GTK GUIs, Signal Processing, Neural Networks, Audio Processing, Octave interfacing ... and more !
13 stars 7 forks source link

1.7.0 incompatible with Octave >= 5.0.0 #4

Closed dvzrv closed 4 years ago

dvzrv commented 4 years ago

The current latest stable release (1.7.0) is incompatible with the current Octave version (5.1.0).

flatmax commented 4 years ago

Any ideas what has changed ?

HinTak commented 4 years ago

@flatmax - argh, there are piles and piles of warnings against 5.1.0, but the only important message is buried in the middle:

$ make 2>&1 | grep error
Octave.C:46:21: error: default argument given for parameter 2 of ‘octave_value get_global_value(const string&, bool)’ [-fpermissive]

The important message is right at the beginning:

Octave.C:46:21: error: default argument given for parameter 2 of ‘octave_value get_global_value(const string&, bool)’ [-fpermissive]
   46 | extern octave_value get_global_value (const string& nm, bool silent = false);
      |                     ^~~~~~~~~~~~~~~~
In file included from /usr/include/octave-5.1.0/octave/../octave/hook-fcn.h:33,
                 from /usr/include/octave-5.1.0/octave/../octave/input.h:34,
                 from /usr/include/octave-5.1.0/octave/../octave/lex.h:34,
                 from /usr/include/octave-5.1.0/octave/../octave/parse.h:36,
                 from Octave.C:18:
/usr/include/octave-5.1.0/octave/../octave/variables.h:144:1: note: previous specification in ‘octave_value get_global_value(const string&, bool)’ here
  144 | get_global_value (const std::string& nm, bool silent = false);
      | ^~~~~~~~~~~~~~~~
HinTak commented 4 years ago

Since the function prototype is declared in octave's header, there is really no need to have that "extern" line. Just deleting it works.

HinTak commented 4 years ago

In the middle of the configure, there is also a message:

warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
checking for /usr/include/octave-5.1.0/octave/../octave/octave.h... yes

Anyway, I was able to get past octave related errors, by doing two things:

LDFLAGS=-L`octave-config -p OCTLIBDIR` ./configure

I am having a lot of other problems finding the other libraries though, but octave related errors are gone.

HinTak commented 4 years ago

It appears I am just one step away from finishing:

libtool: link: g++  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-redhat-linux/9/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/9/crtbeginS.o  .libs/libgtkIOStream_la-WSOLA.o .libs/libgtkIOStream_la-BitStream.o .libs/libgtkIOStream_la-Octave.o .libs/libgtkIOStream_la-JackPortMonitorGui.o .libs/libgtkIOStream_la-JackPortMonitor.o   -L/usr/lib64 /usr/lib64/octave/5.1.0/liboctinterp.so -L/usr/lib64/octave/5.1.0 -lhdf5 -lGraphicsMagick++ -lGraphicsMagick -lz -lGL -lGLU -lfontconfig -lfreetype -lX11 -lgl2ps /usr/lib64/octave/5.1.0/liboctave.so -lcurl -lcholmod -lumfpack -lamd -lcamd -lcolamd -lccolamd -lcxsparse -lsuitesparseconfig -larpack -lqrupdate -lfftw3_threads -lfftw3 -lfftw3f_threads -lfftw3f -lreadline -lncurses -lpcre -ldl -lopenblas -L/usr/lib/gcc/x86_64-redhat-linux/9 -L/usr/lib/gcc/x86_64-redhat-linux/9/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/9/../../.. -lgfortran -lquadmath -lutil -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -ljack -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-redhat-linux/9/crtendS.o /usr/lib/gcc/x86_64-redhat-linux/9/../../../../lib64/crtn.o  -g -O2   -pthread -fopenmp -Wl,-soname -Wl,libgtkIOStream-1.7.0.so.1 -o .libs/libgtkIOStream-1.7.0.so.1.0.7
/usr/bin/ld: cannot find -lgl2ps
/usr/bin/ld: cannot find -lcholmod
/usr/bin/ld: cannot find -lumfpack
/usr/bin/ld: cannot find -lamd
/usr/bin/ld: cannot find -lcamd
/usr/bin/ld: cannot find -lcolamd
/usr/bin/ld: cannot find -lccolamd
/usr/bin/ld: cannot find -lcxsparse
/usr/bin/ld: cannot find -lsuitesparseconfig
/usr/bin/ld: cannot find -larpack
/usr/bin/ld: cannot find -lqrupdate
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:608: libgtkIOStream.la] Error 1
make[2]: Leaving directory '/home/Hin-Tak/my-git/pi-notes/repos/gtkiostream/src'
make[1]: *** [Makefile:514: all-recursive] Error 1
make[1]: Leaving directory '/home/Hin-Tak/my-git/pi-notes/repos/gtkiostream'
make: *** [Makefile:421: all] Error 2
HinTak commented 4 years ago

The linking seems to be the order of the command line arguments, you need to have -L before all the -l's .

HinTak commented 4 years ago

Argh, I have fixed the library issue - your autoconf script is a bit screwy. Anyway, the octave issue is as above.