[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#480722: OK, we have a problem here



The patch from 499662 is not a complete fix for the directfb support
within the cross-build. The package still fails to cross-build if the
udeb is enabled because of unresolved symbols related to directfb.

/bin/sh ../libtool --mode=link arm-linux-gnu-gcc  -g -O2 -Wall -g -O2   -o gtk-query-immodules-2.0  queryimmodules.o libgtk-directfb-2.0.la ../gdk-pixbuf/libgdk_pixbuf-2.0.la ../gdk/libgdk-directfb-2.0.la 
arm-linux-gnu-gcc -g -O2 -Wall -g -O2 -o .libs/gtk-query-immodules-2.0 queryimmodules.o  ./.libs/libgtk-directfb-2.0.so ../gdk-pixbuf/.libs/libgdk_pixbuf-2.0.so ../gdk/.libs/libgdk-directfb-2.0.so 
../gdk/.libs/libgdk-directfb-2.0.so: undefined reference to `cairo_directfb_surface_create'
collect2: ld returned 1 exit status
make[5]: *** [gtk-query-immodules-2.0] Error 1
make[5]: Leaving directory `/opt/emdebian/trunk/g/gtk+2.0/trunk/gtk+2.0-2.12.11/debian/build/directfb/gtk'
make[4]: *** [all-recursive] Error 1

Undefined references arise because the cross-build does not find:
/usr/arm-linux-gnu/lib/libcairo-directfb/lib/libcairo.so.2.17.5

Instead, it appears to only find:
/usr/arm-linux-gnu/lib/libcairo.so.2.17.5

neil@dwarf:gtk$ grep cairo_directfb_surface_create /usr/arm-linux-gnu/lib/libcairo.so.2.17.5
neil@dwarf:gtk$ grep cairo_directfb_surface_create /usr/arm-linux-gnu/lib/libcairo-directfb/lib/libcairo.so.2.17.5
Binary file /usr/arm-linux-gnu/lib/libcairo-directfb/lib/libcairo.so.2.17.5 matches

What I think we need here is a separate library in /usr/lib/ and
therefore /usr/arm-linux-gnu/lib/ - or else cairo should include the
directfb symbols in all builds.

i.e. either: /usr/lib/libcairo-directfb.so.2.17.5 or
/usr/lib/libcairo.so.2.17.5 containing the directfb symbols
Either way, IMHO we should drop the anachronistic:
/usr/lib/libcairo-directfb/lib/libcairo.so.2.17.5

See also: #499292 and #483076 - this situation has caused a history of
workarounds, some of which have had other unintended consequences and
which should really be reverted. I realise that these possible
solutions cannot now be done in Lenny but I'd hope it could be possible
for Squeeze.

One experiment I think I'll try is a modified chroot build where
libcairo2-arm-cross is not installed and libcairo-directfb2-arm-cross
installed as /usr/lib/libcairo-direct.so.2.17.5 and similarly for the
cross-dependencies.

Emdebian cross-builds will continue to remove the directfb flavour and
corresponding udeb for Emdebian Crush. Some kind of package rename might
be necessary so that Emdebian Grip can use a natively built Gtk with
the "nodocs" DEB_BUILD_OPTION and appropriate TDeb support. It depends
whether directfb support in Gtk is actually a relevant change in
functionality compared to Debian where such support is not mainstream.

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

Attachment: pgpLJx7R1WGNZ.pgp
Description: PGP signature


Reply to: