|
From: Andrew C <cou...@gm...> - 2021-02-14 09:44:11
|
Hi all,
Seems whenever I install a new Linux OS every few years and go to recompile
Linuxsampler, make errors get thrown my way!
The error seems to be something to do with missing UUID generation and
looking at the code, it's some kind of Apple thing? Haven't touched an
Apple product in my life! :P
Anyway, I'm getting the following on libgig revision 3857 using GCC 9.3.0:
Any and all help would be appreciated, thanks!
Andrew.
/bin/bash ../libtool --tag=CXX --mode=compile g++ -std=gnu++11
-DHAVE_CONFIG_H -I. -I.. -pedantic -Wreturn-type -g -O2 -MT DLS.lo -MD
-MP -MF .deps/DLS.Tpo -c -o DLS.lo DLS.cpp
libtool: compile: g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I.. -pedantic
-Wreturn-type -g -O2 -MT DLS.lo -MD -MP -MF .deps/DLS.Tpo -c DLS.cpp -fPIC
-DPIC -o .libs/DLS.o
DLS.cpp:591:3: error: #error "Missing support for uuid generation"
591 | # error "Missing support for uuid generation"
| ^~~~~
In file included from DLS.cpp:36:
helper.h: In function ‘std::string strPrint(const char*, ...)’:
helper.h:68:14: warning: ignoring return value of ‘int vasprintf(char**,
const char*, __va_list_tag*)’, declared with attribute warn_unused_result
[-Wunused-result]
68 | vasprintf(&buf, fmt, args);
| ~~~~~~~~~^~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:535: DLS.lo] Error 1
make[3]: Leaving directory '/home/andrew/Downloads/libgig/src'
make[2]: *** [Makefile:596: all-recursive] Error 1
make[2]: Leaving directory '/home/andrew/Downloads/libgig/src'
make[1]: *** [Makefile:486: all-recursive] Error 1
make[1]: Leaving directory '/home/andrew/Downloads/libgig'
make: *** [Makefile:389: all] Error 2
gcc version is:
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
9.3.0-17ubuntu1~20.04'
--with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs
--enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2
--prefix=/usr --with-gcc-major-version-only --program-suffix=-9
--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-vtable-verify --enable-plugin --enable-default-pie
--with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto
--enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--enable-offload-targets=nvptx-none=/build/gcc-9-HskZEa/gcc-9-9.3.0/debian/tmp-nvptx/usr,hsa
--without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)
|
|
From: Christian S. <sch...@li...> - 2021-02-14 14:57:07
|
On Sonntag, 14. Februar 2021 10:43:41 CET Andrew C wrote: > Hi all, > > Seems whenever I install a new Linux OS every few years and go to recompile > Linuxsampler, make errors get thrown my way! Well, that happens with every project that new compiler errors pop up with new versions. In most cases they are trivial and hence changes are rather small and quickly fixed. > The error seems to be something to do with missing UUID generation and > looking at the code, it's some kind of Apple thing? Haven't touched an > Apple product in my life! :P No, that doesn't have to do anything with Apple code at all. And you actually have two different issues here ... > Anyway, I'm getting the following on libgig revision 3857 using GCC 9.3.0: > Any and all help would be appreciated, thanks! > > Andrew. > > /bin/bash ../libtool --tag=CXX --mode=compile g++ -std=gnu++11 > -DHAVE_CONFIG_H -I. -I.. -pedantic -Wreturn-type -g -O2 -MT DLS.lo -MD > -MP -MF .deps/DLS.Tpo -c -o DLS.lo DLS.cpp > libtool: compile: g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I.. -pedantic > -Wreturn-type -g -O2 -MT DLS.lo -MD -MP -MF .deps/DLS.Tpo -c DLS.cpp -fPIC > -DPIC -o .libs/DLS.o > DLS.cpp:591:3: error: #error "Missing support for uuid generation" > 591 | # error "Missing support for uuid generation" > > | ^~~~~ ... you don't have libuuid-dev installed and therefore you should have got a warning by the configure script as well: No UUID generate function found. *** libgig will not be able to create DLSIDs in DLS and gig files. *** Install libuuid from e2fsprogs to solve this. Package might be called *** uuid-dev, libext2fs2-devel or e2fsprogs-devel. I just changed that to a hard error and instead of just a soft configure warning message that could be overseen. But of course you still need to install the library as told by the configure error to resolve this issue on your side. Background: At the beginning of libgig the presence of an UUID generating function was just an optional feature, because having no UUIDs when modifying or creating new .gig files just prevented those .gig files from being accepted by Tascam's GSt. However nowadays you even would get misbehaviours when you stay entirely in the Linux eco space, hence I decided to make that a hard dependency for libgig. > In file included from DLS.cpp:36: > helper.h: In function ‘std::string strPrint(const char*, ...)’: > helper.h:68:14: warning: ignoring return value of ‘int vasprintf(char**, > const char*, __va_list_tag*)’, declared with attribute warn_unused_result > [-Wunused-result] > 68 | vasprintf(&buf, fmt, args); > > | ~~~~~~~~~^~~~~~~~~~~~~~~~~ That's indeed because of new compilers becoming more picky. I just fixed that as well now. CU Christian |
|
From: Andrew C <cou...@gm...> - 2021-02-16 17:01:37
|
Hi Christian,
Thanks for the timely response and resolution. I did indeed miss that
configure script warning about uuid, so thanks for putting a hard exit when
missing the dependency for it.
Got another make error, this time for gigedit:
In file included from builtinpix.cpp:2:
../compat.h: In member function ‘void
MultiLineLabel::get_preferred_height_for_width_vfunc(int, int&, int&)
const’:
../compat.h:465:21: error: ‘get_preferred_height_for_width_vfunc’ is not a
member of ‘Gtk::Label’
465 | Gtk::Label::get_preferred_height_for_width_vfunc(width,
minimum_height, natural_height);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compat.h:474:14: error: ‘get_margin_top’ was not declared in this scope
474 | h += get_margin_top() + get_margin_bottom();
| ^~~~~~~~~~~~~~
../compat.h:474:33: error: ‘get_margin_bottom’ was not declared in this
scope
474 | h += get_margin_top() + get_margin_bottom();
| ^~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:498: builtinpix.lo] Error 1
Got some deprecated warnings too, but not sure how relevant they are.
make[4]: Entering directory '/home/andrew/Downloads/gigedit/src/gigedit/gfx'
CXX builtinpix.lo
In file included from /usr/include/gtk-2.0/gtk/gtkobject.h:37,
from /usr/include/gtk-2.0/gtk/gtkwidget.h:36,
from /usr/include/gtk-2.0/gtk/gtkcontainer.h:35,
from /usr/include/gtk-2.0/gtk/gtkbin.h:35,
from /usr/include/gtk-2.0/gtk/gtkwindow.h:36,
from /usr/include/gtk-2.0/gtk/gtkdialog.h:35,
from /usr/include/gtk-2.0/gtk/gtkaboutdialog.h:32,
from /usr/include/gtk-2.0/gtk/gtk.h:33,
from ../compat.h:26,
from builtinpix.cpp:2:
/usr/include/gtk-2.0/gtk/gtktypeutils.h:236:64: warning: ‘GTypeDebugFlags’
is deprecated [-Wdeprecated-declarations]
236 | void gtk_type_init (GTypeDebugFlags debug_flags);
| ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:24,
from /usr/include/glib-2.0/gobject/gbinding.h:29,
from /usr/include/glib-2.0/glib-object.h:22,
from /usr/include/glibmm-2.4/glibmm/class.h:24,
from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
from /usr/include/glibmm-2.4/glibmm/object.h:29,
from /usr/include/pangomm-1.4/pangomm/font.h:31,
from /usr/include/gdkmm-2.4/gdkmm/drawable.h:29,
from /usr/include/gdkmm-2.4/gdkmm/pixbuf.h:33,
from builtinpix.h:4,
from builtinpix.cpp:1:
/usr/include/glib-2.0/gobject/gtype.h:685:3: note: declared here
685 | } GTypeDebugFlags GLIB_DEPRECATED_TYPE_IN_2_36;
| ^~~~~~~~~~~~~~~
In file included from /usr/include/gtk-2.0/gtk/gtktoolitem.h:31,
from /usr/include/gtk-2.0/gtk/gtktoolbutton.h:30,
from /usr/include/gtk-2.0/gtk/gtkmenutoolbutton.h:30,
from /usr/include/gtk-2.0/gtk/gtk.h:126,
from ../compat.h:26,
from builtinpix.cpp:2:
/usr/include/gtk-2.0/gtk/gtktooltips.h:73:12: warning: ‘GTimeVal’ is
deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
73 | GTimeVal last_popdown;
| ^~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
from /usr/include/glib-2.0/glib.h:30,
from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
from /usr/include/gdkmm-2.4/gdkmm/pixbuf.h:9,
from builtinpix.h:4,
from builtinpix.cpp:1:
/usr/include/glib-2.0/glib/gtypes.h:545:26: note: declared here
545 | typedef struct _GTimeVal GTimeVal
GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
| ^~~~~~~~
Thanks,
Andrew.
On Sun, Feb 14, 2021 at 2:41 PM Christian Schoenebeck <
sch...@li...> wrote:
> On Sonntag, 14. Februar 2021 10:43:41 CET Andrew C wrote:
> > Hi all,
> >
> > Seems whenever I install a new Linux OS every few years and go to
> recompile
> > Linuxsampler, make errors get thrown my way!
>
> Well, that happens with every project that new compiler errors pop up with
> new
> versions. In most cases they are trivial and hence changes are rather
> small
> and quickly fixed.
>
> > The error seems to be something to do with missing UUID generation and
> > looking at the code, it's some kind of Apple thing? Haven't touched an
> > Apple product in my life! :P
>
> No, that doesn't have to do anything with Apple code at all. And you
> actually
> have two different issues here ...
>
> > Anyway, I'm getting the following on libgig revision 3857 using GCC
> 9.3.0:
> > Any and all help would be appreciated, thanks!
> >
> > Andrew.
> >
> > /bin/bash ../libtool --tag=CXX --mode=compile g++ -std=gnu++11
> > -DHAVE_CONFIG_H -I. -I.. -pedantic -Wreturn-type -g -O2 -MT DLS.lo -MD
> > -MP -MF .deps/DLS.Tpo -c -o DLS.lo DLS.cpp
> > libtool: compile: g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I.. -pedantic
> > -Wreturn-type -g -O2 -MT DLS.lo -MD -MP -MF .deps/DLS.Tpo -c DLS.cpp
> -fPIC
> > -DPIC -o .libs/DLS.o
> > DLS.cpp:591:3: error: #error "Missing support for uuid generation"
> > 591 | # error "Missing support for uuid generation"
> >
> > | ^~~~~
>
> ... you don't have libuuid-dev installed and therefore you should have got
> a
> warning by the configure script as well:
>
> No UUID generate function found.
> *** libgig will not be able to create DLSIDs in DLS and gig files.
> *** Install libuuid from e2fsprogs to solve this. Package might be
> called
> *** uuid-dev, libext2fs2-devel or e2fsprogs-devel.
>
> I just changed that to a hard error and instead of just a soft configure
> warning message that could be overseen. But of course you still need to
> install the library as told by the configure error to resolve this issue
> on
> your side.
>
> Background: At the beginning of libgig the presence of an UUID generating
> function was just an optional feature, because having no UUIDs when
> modifying
> or creating new .gig files just prevented those .gig files from being
> accepted
> by Tascam's GSt. However nowadays you even would get misbehaviours when
> you
> stay entirely in the Linux eco space, hence I decided to make that a hard
> dependency for libgig.
>
> > In file included from DLS.cpp:36:
> > helper.h: In function ‘std::string strPrint(const char*, ...)’:
> > helper.h:68:14: warning: ignoring return value of ‘int vasprintf(char**,
> > const char*, __va_list_tag*)’, declared with attribute warn_unused_result
> > [-Wunused-result]
> > 68 | vasprintf(&buf, fmt, args);
> >
> > | ~~~~~~~~~^~~~~~~~~~~~~~~~~
>
> That's indeed because of new compilers becoming more picky. I just fixed
> that
> as well now.
>
> CU
> Christian
>
>
>
|
|
From: Christian S. <sch...@li...> - 2021-02-21 14:47:01
|
On Dienstag, 16. Februar 2021 18:01:06 CET Andrew C wrote: > Hi Christian, > > Thanks for the timely response and resolution. I did indeed miss that > configure script warning about uuid, so thanks for putting a hard exit when > missing the dependency for it. > > Got another make error, this time for gigedit: > > In file included from builtinpix.cpp:2: > ../compat.h: In member function ‘void > MultiLineLabel::get_preferred_height_for_width_vfunc(int, int&, int&) > const’: > ../compat.h:465:21: error: ‘get_preferred_height_for_width_vfunc’ is not a > member of ‘Gtk::Label’ > 465 | Gtk::Label::get_preferred_height_for_width_vfunc(width, > minimum_height, natural_height); > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > ../compat.h:474:14: error: ‘get_margin_top’ was not declared in this scope > 474 | h += get_margin_top() + get_margin_bottom(); > > | ^~~~~~~~~~~~~~ > > ../compat.h:474:33: error: ‘get_margin_bottom’ was not declared in this > scope > 474 | h += get_margin_top() + get_margin_bottom(); > > | ^~~~~~~~~~~~~~~~~ Yeah, I just realized get_margin_top() and get_margin_bottom() were introduced with Gtk 3.0 and are not documented as such in the gtkmm docs. You are using Gtk 2 it seems. That code in question fixes a problem with Gtk(3?) that causes long multi-line text to take more vertical space than actually required. I just commented this code out for Gtk 2 and older for now, as I don't see an obvious way to fix this more adequately for Gtk 2. The only drawback is maybe that you get some graphical glitches on the relatively new "Script" tab on the very top right hand side of Gigedit's main window with Gtk 2. I currently don't have Gtk 2 installed anywhere, so I can't test this. > make[4]: *** [Makefile:498: builtinpix.lo] Error 1 > > Got some deprecated warnings too, but not sure how relevant they are. > > make[4]: Entering directory '/home/andrew/Downloads/gigedit/src/gigedit/gfx' > CXX builtinpix.lo > In file included from /usr/include/gtk-2.0/gtk/gtkobject.h:37, > from /usr/include/gtk-2.0/gtk/gtkwidget.h:36, > from /usr/include/gtk-2.0/gtk/gtkcontainer.h:35, > from /usr/include/gtk-2.0/gtk/gtkbin.h:35, > from /usr/include/gtk-2.0/gtk/gtkwindow.h:36, > from /usr/include/gtk-2.0/gtk/gtkdialog.h:35, > from /usr/include/gtk-2.0/gtk/gtkaboutdialog.h:32, > from /usr/include/gtk-2.0/gtk/gtk.h:33, > from ../compat.h:26, > from builtinpix.cpp:2: > /usr/include/gtk-2.0/gtk/gtktypeutils.h:236:64: warning: ‘GTypeDebugFlags’ > is deprecated [-Wdeprecated-declarations] > 236 | void gtk_type_init (GTypeDebugFlags debug_flags); > > | ^ > > In file included from /usr/include/glib-2.0/gobject/gobject.h:24, > from /usr/include/glib-2.0/gobject/gbinding.h:29, > from /usr/include/glib-2.0/glib-object.h:22, > from /usr/include/glibmm-2.4/glibmm/class.h:24, > from /usr/include/glibmm-2.4/glibmm/objectbase.h:21, > from /usr/include/glibmm-2.4/glibmm/object.h:29, > from /usr/include/pangomm-1.4/pangomm/font.h:31, > from /usr/include/gdkmm-2.4/gdkmm/drawable.h:29, > from /usr/include/gdkmm-2.4/gdkmm/pixbuf.h:33, > from builtinpix.h:4, > from builtinpix.cpp:1: > /usr/include/glib-2.0/gobject/gtype.h:685:3: note: declared here > 685 | } GTypeDebugFlags GLIB_DEPRECATED_TYPE_IN_2_36; > > | ^~~~~~~~~~~~~~~ > > In file included from /usr/include/gtk-2.0/gtk/gtktoolitem.h:31, > from /usr/include/gtk-2.0/gtk/gtktoolbutton.h:30, > from /usr/include/gtk-2.0/gtk/gtkmenutoolbutton.h:30, > from /usr/include/gtk-2.0/gtk/gtk.h:126, > from ../compat.h:26, > from builtinpix.cpp:2: > /usr/include/gtk-2.0/gtk/gtktooltips.h:73:12: warning: ‘GTimeVal’ is > deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations] > 73 | GTimeVal last_popdown; > > | ^~~~~~~~~~~~ > > In file included from /usr/include/glib-2.0/glib/galloca.h:32, > from /usr/include/glib-2.0/glib.h:30, > from /usr/include/glibmm-2.4/glibmm/unicode.h:23, > from /usr/include/glibmm-2.4/glibmm/ustring.h:21, > from /usr/include/gdkmm-2.4/gdkmm/pixbuf.h:9, > from builtinpix.h:4, > from builtinpix.cpp:1: > /usr/include/glib-2.0/glib/gtypes.h:545:26: note: declared here > 545 | typedef struct _GTimeVal GTimeVal > GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime); > > | ^~~~~~~~ These warnings are not our business. Basically they just say that your Gtk 2 version uses things from Glib that were deprecated in Glib long ago. This is not something in Gigedit's code, but rather in Gtk 2's code, hence I can't fix them. You might report them to Gtk or to your distro, but I am not sure whether Gtk 2 is still maintained at all. Now don't get me wrong: I am not saying you should upgrade to Gtk 3, because Gtk 2 is still much faster than Gtk 3 and the visual appearance will be completely different. CU Christian |