GNOME Bugzilla – Bug 653155
[PATCH] jhbuild, unexpected build failed, libgdk-3.so: undefined reference to `cairo_region_subtract_rectangle
Last modified: 2011-08-25 20:38:25 UTC
*** Building libgnomekbd *** [63/218] make make all-recursive make[1]: Вхожу у каталог "/home/astro/checkout/gnome/libgnomekbd" Making all in libgnomekbd make[2]: Вхожу у каталог "/home/astro/checkout/gnome/libgnomekbd/libgnomekbd" GEN gkbd-indicator-marshal.h GEN gkbd-indicator-marshal.c GEN gkbd-keyboard-drawing-marshal.h GEN gkbd-keyboard-drawing-marshal.c make all-am make[3]: Вхожу у каталог "/home/astro/checkout/gnome/libgnomekbd/libgnomekbd" CC libgnomekbd_la-gkbd-desktop-config.lo CC libgnomekbd_la-gkbd-keyboard-config.lo CC libgnomekbd_la-gkbd-util.lo CCLD libgnomekbd.la CC libgnomekbdui_la-gkbd-configuration.lo gkbd-configuration.c: In function ‘gkbd_configuration_get_current_tooltip’: gkbd-configuration.c:404: warning: unused variable ‘buf’ gkbd-configuration.c: In function ‘gkbd_configuration_get_caps_lock_state’: gkbd-configuration.c:699: warning: implicit declaration of function ‘XkbGetNamedIndicator’ CC libgnomekbdui_la-gkbd-indicator-config.lo CC libgnomekbdui_la-gkbd-indicator.lo CC libgnomekbdui_la-gkbd-status.lo CC libgnomekbdui_la-gkbd-indicator-marshal.lo CC libgnomekbdui_la-gkbd-indicator-plugin-manager.lo CC libgnomekbdui_la-gkbd-keyboard-drawing-marshal.lo CC libgnomekbdui_la-gkbd-keyboard-drawing.lo gkbd-keyboard-drawing.c: In function ‘gkbd_keyboard_drawing_set_layout’: gkbd-keyboard-drawing.c:2563: warning: implicit declaration of function ‘gkbd_keyboard_config_split_items’ gkbd-keyboard-drawing.c: At top level: gkbd-keyboard-drawing.c:1348: warning: ‘redraw_overlapping_doodads’ defined but not used CCLD libgnomekbdui.la CC gkbd_keyboard_display-gkbd-keyboard-display.o gkbd-keyboard-display.c:38: warning: missing braces around initializer gkbd-keyboard-display.c:38: warning: (near initialization for ‘options[2]’) gkbd-keyboard-display.c: In function ‘main’: gkbd-keyboard-display.c:55: warning: implicit declaration of function ‘bindtextdomain’ gkbd-keyboard-display.c:56: warning: implicit declaration of function ‘bind_textdomain_codeset’ gkbd-keyboard-display.c:57: warning: implicit declaration of function ‘textdomain’ CCLD gkbd-keyboard-display GISCAN Gkbd-3.0.gir gkbd-keyboard-drawing.h:26: Warning: Gkbd: symbol='MAX_LOCAL_NAME_BUF_LENGTH': Unknown namespace for symbol 'MAX_LOCAL_NAME_BUF_LENGTH' gkbd-indicator-plugin-manager.h:1938: Warning: Gkbd: symbol='modifier_change_mask': Unknown namespace for symbol 'modifier_change_mask' /opt/gnome3/lib64/libgdk-3.so: undefined reference to `cairo_region_subtract_rectangle' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_region_intersect' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_region_translate' /opt/gnome3/lib64/libgdk-3.so: undefined reference to `cairo_region_get_rectangle' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_region_is_empty' /opt/gnome3/lib64/libgdk-3.so: undefined reference to `cairo_region_intersect_rectangle' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_region_create_rectangle' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_region_copy' /opt/gnome3/lib64/libgdk-3.so: undefined reference to `cairo_region_union' /opt/gnome3/lib64/libgdk-3.so: undefined reference to `cairo_region_equal' /opt/gnome3/lib64/libgdk-3.so: undefined reference to `cairo_region_num_rectangles' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_region_union_rectangle' /opt/gnome3/lib64/libcairo-gobject.so: undefined reference to `cairo_device_reference' /opt/gnome3/lib64/libgdk-3.so: undefined reference to `cairo_region_create_rectangles' /opt/gnome3/lib64/libcairo-gobject.so: undefined reference to `cairo_device_destroy' /opt/gnome3/lib64/libgdk-3.so: undefined reference to `cairo_recording_surface_create' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_region_create' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `gdk_pixbuf_format_get_type' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_region_destroy' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_region_get_extents' /opt/gnome3/lib64/libgdk-3.so: undefined reference to `cairo_region_contains_point' /opt/gnome3/lib64/libcairo-gobject.so: undefined reference to `cairo_region_reference' /opt/gnome3/lib64/libgdk-3.so: undefined reference to `cairo_region_contains_rectangle' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_region_subtract' /opt/gnome3/lib64/libgtk-3.so: undefined reference to `cairo_surface_create_for_rectangle' collect2: ld returned 1 exit status linking of temporary binary failed: Command '['/bin/bash', '../libtool', '--mode=link', '--tag=CC', '--silent', 'gcc', '-o', '/home/astro/checkout/gnome/libgnomekbd/libgnomekbd/tmp-introspect5eiEs1/Gkbd-3.0', '-export-dynamic', '-Wall', '-g', '-O0', '-L.', 'libgnomekbd.la', 'libgnomekbdui.la', '-lgio-2.0', '-lgobject-2.0', '-lgmodule-2.0', '-lgthread-2.0', '-lrt', '-lglib-2.0', '-lgdk-3', '-lpangocairo-1.0', '-lgdk_pixbuf-2.0', '-lm', '-lcairo-gobject', '-lpango-1.0', '-lgmodule-2.0', '-lcairo', '-lgobject-2.0', '-lgthread-2.0', '-lrt', '-lglib-2.0', '-lxklavier', '-lgobject-2.0', '-lgthread-2.0', '-lrt', '-lglib-2.0', '-lxml2', '-lX11', '-lgtk-3', '-lgdk-3', '-latk-1.0', '-lgio-2.0', '-lpangoft2-1.0', '-lpangocairo-1.0', '-lgdk_pixbuf-2.0', '-lm', '-lcairo-gobject', '-lcairo', '-lpango-1.0', '-lfreetype', '-lfontconfig', '-lgobject-2.0', '-lgmodule-2.0', '-lgthread-2.0', '-lrt', '-lglib-2.0', '-L/opt/gnome3/lib64', '-L/opt/gnome3/lib64', '-L/opt/gnome3/lib64', '-L/opt/gnome3/lib64', '-pthread', '-L/opt/gnome3/lib64', '-lgio-2.0', '-lgobject-2.0', '-lgmodule-2.0', '-lgthread-2.0', '-lrt', '-lglib-2.0', '/home/astro/checkout/gnome/libgnomekbd/libgnomekbd/tmp-introspect5eiEs1/Gkbd-3.0.o']' returned non-zero exit status 1
Created attachment 190418 [details] configuration file build configuration
I have the problem as well. I believe ./libgnomekbd/Makefile.am does not setup the correct linker flags for the gir scanner. libtool: link: gcc -o /home/ensonic/jhbuild-checkout/gnome/libgnomekbd/libgnomekbd/tmp-introspectDzla1h/.libs/Gkbd-3.0 -pthread /home/ensonic/jhbuild-checkout/gnome/libgnomekbd/libgnomekbd/tmp-introspectDzla1h/Gkbd-3.0.o -Wl,--export-dynamic -L/home/ensonic/jhbuild-checkout/gnome/libgnomekbd/libgnomekbd ./.libs/libgnomekbd.so ./.libs/libgnomekbdui.so -lxklavier /usr/lib/libxml2.so -lX11 -lgtk-3 -lgdk-3 /usr/lib/libatk-1.0.so /usr/lib/libpangoft2-1.0.so /usr/lib/libpangocairo-1.0.so /usr/lib/libgdk_pixbuf-2.0.so -lm -lcairo-gobject /usr/lib/libcairo.so /usr/lib/libpango-1.0.so /usr/lib/libfreetype.so -lfontconfig -L/home/ensonic/jhbuild-install/gnome/lib64 -L/usr/lib -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -pthread -Wl,-rpath -Wl,/home/ensonic/jhbuild-install/gnome/lib64 this is the resulting linker line and it contains "-lX11 -lgtk-3 -lgdk-3 /usr/lib/libatk-1.0.so /usr/lib/libpangoft2-1.0.so /usr/lib/libpangocairo-1.0.so /usr/lib/libgdk_pixbuf-2.0.so -lm -lcairo-gobject /usr/lib/libcairo.so /usr/lib/libpango-1.0.so" - that is the issue. The libs should be takes from /home/ensonic/jhbuild-install/gnome/lib64 instead.
Created attachment 194561 [details] [review] remove the LDFLAGS
btw. there are quite a few warnings in the build: http://build.gnome.org/builders/libgnomekbd-cosimoc-deb-i686/builds/388/steps/libgnomekbd%20build/logs/stdio
I fixed some of the warnings in git (thanks for the patch, it is applied). The remaining warnings are related to the fact that libxklavier is not introspected (and I do not have plans to change that - why?). Since libgnomekbd (introspectable) API is using some structs from libxklavier, you are getting those warnings.
Thanks for the quick action. With the warnings I meant also e.g. variable-set-but-unused (new warning in gcc 4.6 running on the 3rd builder).
Anyway, if you need more polish in the code - feel free to reopen.