Opened 8 years ago
Last modified 3 years ago
#52248 closed defect
inkscape fails to build due to glibmm inlining, regression caused by glib2 changes — at Version 5
Reported by: | jeremyhu (Jeremy Huddleston Sequoia) | Owned by: | devans@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | Cc: | ryandesign@… | |
Port: | glib2 glibmm inkscape inkscape-devel |
Description (last modified by jeremyhu (Jeremy Huddleston Sequoia))
Updating to glib2-2.48.2 caused inkscape (or any project that uses parts of glibmm) to fail to build because gthread.h now obfuscates struct _GThread.
/usr/bin/clang++ -DHAVE_CONFIG_H -I. -I.. -I../cxxtest -I./extension/dbus -I/opt/local/include -I/opt/local/include/freetype2 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/opt/local/include/ImageMagick-6 -I/opt/local/include/libwpg-0.3 -I/opt/local/include/libwpd-0.10 -I/opt/local/include/librevenge-0.0 -I/opt/local/include/libvisio-0.1 -I/opt/local/include -I/opt/local/include/libxml2 -I/opt/local/include -I/opt/local/include/librevenge-0.0 -I/opt/local/include/libcdr-0.1 -I/opt/local/include -I/opt/local/include/librevenge-0.0 -I/opt/local/include/dbus-1.0 -I/opt/local/lib/dbus-1.0/include -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/poppler -D_REENTRANT -I/opt/local/include/poppler/glib -I/opt/local/include/poppler -I/opt/local/include/cairo -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/pixman-1 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -I/opt/local/include -DPOTRACE=\"potrace\" -D_REENTRANT -I/opt/local/include/gtkspell-2.0 -I/opt/local/include/gtkmm-2.4 -I/opt/local/lib/gtkmm-2.4/include -I/opt/local/include/atkmm-1.6 -I/opt/local/include/gtk-unix-print-2.0 -I/opt/local/include/gtk-2.0 -I/opt/local/include/gdkmm-2.4 -I/opt/local/lib/gdkmm-2.4/include -I/opt/local/include/giomm-2.4 -I/opt/local/lib/giomm-2.4/include -I/opt/local/include/pangomm-1.4 -I/opt/local/lib/pangomm-1.4/include -I/opt/local/include/glibmm-2.4 -I/opt/local/lib/glibmm-2.4/include -I/opt/local/include/cairomm-1.0 -I/opt/local/lib/cairomm-1.0/include -I/opt/local/include/sigc++-2.0 -I/opt/local/lib/sigc++-2.0/include -I/opt/local/include/gtk-2.0 -I/opt/local/lib/gtk-2.0/include -I/opt/local/include/pango-1.0 -I/opt/local/include/gio-unix-2.0/ -I/opt/local/include -I/opt/local/include/cairo -I/opt/local/include/atk-1.0 -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include -I/opt/local/include/pango-1.0 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -D_REENTRANT -I/opt/local/include -I/opt/local/include/cairomm-1.0 -I/opt/local/lib/cairomm-1.0/include -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include -I/opt/local/include/giomm-2.4 -I/opt/local/lib/giomm-2.4/include -I/opt/local/include/glibmm-2.4 -I/opt/local/lib/glibmm-2.4/include -I/opt/local/include -I/opt/local/include/libxml2 -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include -I/opt/local/include/pango-1.0 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/libpng16 -I/opt/local/include/sigc++-2.0 -I/opt/local/lib/sigc++-2.0/include -I/opt/local/include -DG_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGDKMM_DISABLE_DEPRECATED -DGTK_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -Werror=format-security -Wswitch -Werror=return-type -DGSEAL_ENABLE -DG_DISABLE_SINGLE_INCLUDES -Wall -Wformat -Wformat-security -W -D_FORTIFY_SOURCE=2 -I/opt/local/include -I/opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_graphics_inkscape/inkscape/work/inkscape-0.91/src/extension/script -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-parameter -pipe -Os -std=c++11 -stdlib=libc++ -arch x86_64 -MT ui/dialog/spellcheck.o -MD -MP -MF $depbase.Tpo -c -o ui/dialog/spellcheck.o ui/dialog/spellcheck.cpp &&\ mv -f $depbase.Tpo $depbase.Po In file included from ui/dialog/new-from-template.cpp:12: In file included from ui/dialog/new-from-template.h:14: In file included from /opt/local/include/gtkmm-2.4/gtkmm/dialog.h:31: In file included from /opt/local/include/gtkmm-2.4/gtkmm/box.h:59: In file included from /opt/local/include/gtkmm-2.4/gtkmm/container.h:30: In file included from /opt/local/include/gtkmm-2.4/gtkmm/widget.h:48: In file included from /opt/local/include/gtkmm-2.4/gtkmm/rc.h:31: In file included from /opt/local/include/gtkmm-2.4/gtkmm/style.h:46: In file included from /opt/local/include/gtkmm-2.4/gtkmm/iconset.h:35: In file included from /opt/local/include/gtkmm-2.4/gtkmm/stockid.h:26: In file included from /opt/local/include/glibmm-2.4/glibmm.h:89: /opt/local/include/glibmm-2.4/glibmm/threads.h:209:11: error: field has incomplete type 'GThread' (aka '_GThread') GThread gobject_; ^ /opt/local/include/glib-2.0/glib/gthread.h:49:16: note: forward declaration of '_GThread' typedef struct _GThread GThread; ^ 1 error generated.
Change History (5)
comment:1 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Cc: | ryandesign@… added |
---|---|
Owner: | changed from macports-tickets@… to devans@… |
comment:2 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
comment:3 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
I suspect that is happening is boiling down to:
#define G_DISABLE_DEPRECATED #include <glib.h> #undef G_DISABLE_DEPRECATED #include <glib.h>
glibmm's thread.h unsets G_DISABLE_DEPRECATED
if it is set and then includes <glib.h>
, but the __G_LIB_H__
header guard prevents that from working if something before thread.h included it.
comment:4 Changed 8 years ago by dbevans (David B. Evans)
Status: | new → assigned |
---|
I believe inkscape sets G_DISABLE_DEPRECATED when the default +strict variant is set. Have you tried building with that disabled?
comment:5 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Description: | modified (diff) |
---|
Yes, I see G_DISABLE_DEPRECATED
is set, but so is GLIBMM_DISABLE_DEPRECATED
, so we shouldn't even be in glibmm/thread.h. It looks like something is undefining GLIBMM_DISABLE_DEPRECATED.
It looks like gthread.h is getting included with G_DISABLE_DEPRECATED defined for some reason.