GNOME Bugzilla – Bug 631141
Error during phase build of gtk+-3 (jhbuild)
Last modified: 2010-12-17 03:51:59 UTC
g-ir-scanner: compile: gcc -Wall -pthread -I/home/fabio/gnome/include/glib-2.0 -I/home/fabio/gnome//lib/glib-2.0/include -DGDK_PIXBUF_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -g -O2 -Wall -I.. -I../gtk -I.. -I../gdk -I../gdk -I/home/fabio/gnome/include/glib-2.0 -I/home/fabio/gnome//lib/glib-2.0/include -I/home/fabio/gnome/include/pango-1.0 -I/home/fabio/gnome/include/cairo -I/home/fabio/gnome/include/pixman-1 -I/home/fabio/gnome/include/gdk-pixbuf-2.0 -I/home/fabio/gnome/include/atk-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/home/fabio/gnome/include/glib-2.0 -I/home/fabio/gnome//lib/glib-2.0/include -I/home/fabio/gnome/include/gio-unix-2.0/ -I/home/fabio/gnome/include/atk-1.0 -I/home/fabio/gnome/include/cairo -I/home/fabio/gnome/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -c -o /home/fabio/checkout/gnome/gtk+-3/gtk/tmp-introspect16A7RE/Gtk-3.0.o /home/fabio/checkout/gnome/gtk+-3/gtk/tmp-introspect16A7RE/Gtk-3.0.c g-ir-scanner: link: /bin/bash ../libtool --mode=link --tag=CC --silent gcc -o /home/fabio/checkout/gnome/gtk+-3/gtk/tmp-introspect16A7RE/Gtk-3.0 -export-dynamic -DGDK_PIXBUF_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -g -O2 -Wall -L. libgtk-x11-3.0.la -pthread -L/home/fabio/gnome//lib -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 /home/fabio/checkout/gnome/gtk+-3/gtk/tmp-introspect16A7RE/Gtk-3.0.o ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_cairo_set_source_window' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_window_get_height' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_error_trap_pop_ignored' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_window_get_width' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_window_set_background_pattern' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_window_get_display' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_pixbuf_get_from_window' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_window_get_visual' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_cairo_get_clip_rectangle' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_cairo_region_create_from_surface' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_offscreen_window_get_surface' ./.libs/libgtk-x11-3.0.so: undefined reference to `gdk_window_get_screen' collect2: ld returned 1 exit status Traceback (most recent call last):
+ Trace 223975
sys.exit(scanner_main(sys.argv))
shlibs = create_binary(transformer, options, args)
gdump_parser.get_get_type_functions())
return dc.run()
self._link(bin_path, o_path)
subprocess.check_call(args)
raise CalledProcessError(retcode, cmd)
make[4]: *** [Gtk-3.0.gir] Error 1 make[4]: Leaving directory `/home/fabio/checkout/gnome/gtk+-3/gtk' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/fabio/checkout/gnome/gtk+-3/gtk' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/fabio/checkout/gnome/gtk+-3/gtk' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/fabio/checkout/gnome/gtk+-3' make: *** [all] Error 2 *** Error during phase build of gtk+-3: ########## Error running make *** [20/53]
I've the same error since few days Building on gentoo /home/simon/checkout/gnome/gtk+-3/gtk/tmp-introspect9H2Wmj/.libs/Gtk-3.0: symbol lookup error: /opt/gnome/lib/libcairo-gobject.so.2: undefined symbol: cairo_region_destroy Command '['/home/simon/checkout/gnome/gtk+-3/gtk/tmp-introspect9H2Wmj/Gtk-3.0', '--introspect-dump=/home/simon/checkout/gnome/gtk+-3/gtk/tmp-introspect9H2Wmj/types.txt,/home/simon/checkout/gnome/gtk+-3/gtk/tmp-introspect9H2Wmj/dump.xml']' returned non-zero exit status 127 make[4]: *** [Gtk-3.0.gir] Error 1 make[4]: Leaving directory `/home/simon/checkout/gnome/gtk+-3/gtk' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/simon/checkout/gnome/gtk+-3/gtk' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/simon/checkout/gnome/gtk+-3/gtk' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/simon/checkout/gnome/gtk+-3' make: *** [all] Error 2 *** Error during phase build of gtk+-3: ########## Error running make *** [19/19]
(In reply to comment #1) > I've the same error since few days > > Building on gentoo > > /home/simon/checkout/gnome/gtk+-3/gtk/tmp-introspect9H2Wmj/.libs/Gtk-3.0: > symbol lookup error: /opt/gnome/lib/libcairo-gobject.so.2: undefined symbol: > cairo_region_destroy Do you have cairo 1.10 installed?
I have the same error as in comment 1 (and I am also using Gentoo) and I have cairo-1.10 installed in a fresh (as of…now) jhbuild. cairo_region_destroy is mentioned in libcairo-gobject (UND in the output below), but defined in libcairo: readelf --symbols /home/david/gnome/lib64/libcairo-gobject.so.2 | grep cairo_region_destroy 4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND cairo_region_destroy 99: 0000000000000000 0 FUNC GLOBAL DEFAULT UND cairo_region_destroy readelf --symbols /home/david/gnome/lib64/libcairo.so | grep cairo_region_destroy 295: 0000000000042c40 85 FUNC GLOBAL DEFAULT 11 cairo_region_destroy 1992: 0000000000042c40 85 FUNC LOCAL HIDDEN 11 INT_cairo_region_destroy 2102: 0000000000042c40 85 FUNC GLOBAL DEFAULT 11 cairo_region_destroy
Can you workaround this bug by using --disable-introspection? I long since gave up trying to get things to build without that.
The build gets further by disabling introspection, but still fails: make[3]: Entering directory `/home/david/checkout/gnome/gtk+-3/modules/input' CC imam-et.lo CC imcedilla.lo CC imcyrillic-translit.lo CC iminuktitut.lo CC imipa.lo CC im_multipress_la-gtkimcontextmultipress.lo CC im_multipress_la-immultipress.lo CC thai-charprop.lo CC gtkimcontextthai.lo CC imthai.lo CC imti-er.lo CC imti-et.lo CC imviqr.lo CC gtkimcontextxim.lo CC imxim.lo GEN .gitignore CCLD im-am-et.la CCLD im-cedilla.la CCLD im-cyrillic-translit.la CCLD im-inuktitut.la CCLD im-ipa.la CCLD im-multipress.la CCLD im-thai.la CCLD im-ti-er.la CCLD im-ti-et.la CCLD im-viqr.la CCLD im-xim.la ../../gtk/gtk-query-immodules-3.0 im-am-et.la im-cedilla.la im-cyrillic-translit.la im-inuktitut.la im-ipa.la im-multipress.la im-thai.la im-ti-er.la im-ti-et.la im-viqr.la im-xim.la > immodules.cache /home/david/checkout/gnome/gtk+-3/gtk/.libs/gtk-query-immodules-3.0: symbol lookup error: /home/david/gnome/lib64/libcairo-gobject.so.2: undefined symbol: cairo_region_destroy make[3]: *** [immodules.cache] Error 127 make[3]: Leaving directory `/home/david/checkout/gnome/gtk+-3/modules/input' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/david/checkout/gnome/gtk+-3/modules' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/david/checkout/gnome/gtk+-3' make: *** [all] Error 2
(In reply to comment #5) > The build gets further by disabling introspection, but still fails: Continuing the build process after the above build failure then leads to a successful build, but an install that fails: make install-data-hook make[4]: Entering directory `/home/david/checkout/gnome/gtk+-3/modules/input' /bin/sh /home/david/checkout/gnome/gtk+-3/install-sh -d /home/david/gnome/lib64/gtk-3.0/3.0.0 ../../gtk/gtk-query-immodules-3.0 > /home/david/gnome/lib64/gtk-3.0/3.0.0/immodules.cache /home/david/checkout/gnome/gtk+-3/gtk/.libs/gtk-query-immodules-3.0: symbol lookup error: /home/david/gnome/lib64/libcairo-gobject.so.2: undefined symbol: cairo_region_destroy make[4]: *** [install-data-hook] Error 127 make[4]: Leaving directory `/home/david/checkout/gnome/gtk+-3/modules/input' make[3]: *** [install-data-am] Error 2 make[3]: Leaving directory `/home/david/checkout/gnome/gtk+-3/modules/input' make[2]: *** [install-am] Error 2 make[2]: Leaving directory `/home/david/checkout/gnome/gtk+-3/modules/input' make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory `/home/david/checkout/gnome/gtk+-3/modules' make: *** [install-recursive] Error 1
(In reply to comment #6) > /home/david/gnome/lib64/gtk-3.0/3.0.0/immodules.cache > /home/david/checkout/gnome/gtk+-3/gtk/.libs/gtk-query-immodules-3.0: symbol > lookup error: /home/david/gnome/lib64/libcairo-gobject.so.2: undefined symbol: > cairo_region_destroy This is almost certainly just caused by the .la files, which are unnecessary and generally just cause problems like this. You can probably fix this like so: rm -rf /opt/gnome230/lib/*.la git clean -dfx ./autogen.sh --prefix=/opt/gnome230 --disable-introspection;make all install Personally I even remove them regularly from my /usr/lib/, though I'm not sure that is really necessary. The GNOME Shell team seem to recommend it though: http://live.gnome.org/GnomeShell/RemovingLaFiles There's also some discussion in bug #344358, though I haven't read it. And this is unrelated to the original problem in this bug report.
(In reply to comment #7) > This is almost certainly just caused by the .la files, which are unnecessary > and generally just cause problems like this. You can probably fix this like so: > rm -rf /opt/gnome230/lib/*.la > git clean -dfx > ./autogen.sh --prefix=/opt/gnome230 --disable-introspection;make all install David told me that this fixed it for him. I wonder if it does fix the problem when using --enable-introspection (the default). Fabio or LeDabe, please try that.
(In reply to comment #8) > (In reply to comment #7) > > This is almost certainly just caused by the .la files, which are unnecessary > > and generally just cause problems like this. You can probably fix this like so: > > rm -rf /opt/gnome230/lib/*.la > > git clean -dfx > > ./autogen.sh --prefix=/opt/gnome230 --disable-introspection;make all install > > David told me that this fixed it for him. I wonder if it does fix the problem > when using --enable-introspection (the default). Fabio or LeDabe, please try > that. I did not. I updated my system version of Cairo to match the jhbuild version, thus avoiding any system .la files linking to a version of Cairo that does not have cairo_region_destroy. This is very different from removing all .la files in the jhbuild prefix, as above.
Ah, sorry, I misread your email. Still, I think it's worth seeing if it fixes the original problem.
Yes this is fixes for me.