+++ Loïc Minier [2010-08-24 19:25 +0200]:
>  So I gave a try to cross-compiling gstreamer0.10 and it some
>  interesting issues.

me too, but I tried with pdebuild-cross too, to see how it worked.

>  First, I used an i386 chroot instead of an amd64 chroot since I thought
>  that might help a bit with package names; I'm not actually sure that
>  was needed, but it might influence results.

I'm using amd64 - hopefully it doesn't matter.

>  Next, the gstreamer0.10 cross-build started but promptly failed trying
>  to link to libxml2; this was the PKG_CONFIG_LIBDIR issue you mentioned.
>  I added:
>     buildpackage.append('-ePKG_CONFIG_LIBDIR=/usr/%s/lib/pkgconfig' % 
> deb_host_gnu_type)
> 
>  This is LP #623478 which you filed.

I'm a biut confused about this. I got this error in pdebuild-cross
because xapt was initially missing so the cross-deps simly weren't
being installed. As soon as they were installed then this part went
fine. Which is what I would expect. So there must be something
different about the environment in the xdeb case. I'll try and work
out what is going on.

>  Interestingly, the build broke because it couldn't find gtk-doc
>  anymore; I didn't add /usr/share/pkgconfig, but it does show that host
>  versus build pkg-config dependencies are a problem, and we need a
>  $triplet-pkg-config to solve this!
> 
>  So I patched the gstreamer build to turn off docs; I think
>  gstreamer0.10 should --disable-gtk-doc when cross-compiling; in fact,
>  this should be done in gtk-doc upstream.

I left docs on. It correspondingly pulls in a lot of deps (157
cross-deps, but lots of them are null so it doesn't actually waste _too_
much time). Nothing broke.

>  This got quite far in the build:
> make[4]: Entering directory `/home/lool/gstreamer0.10/gstreamer0.10/gst'
> [...]
> libtool: link: arm-linux-gnueabi-ranlib .libs/libgstreamer-0.10.a
> libtool: link: rm -fr .libs/libgstreamer-0.10.lax
> libtool: link: ( cd ".libs" && rm -f "libgstreamer-0.10.la" && ln -s 
> "../libgstreamer-0.10.la" "libgstreamer-0.10.la" )
> /usr/bin/g-ir-scanner -v --namespace Gst \
>                 --nsversion=0.10 \
>                 -I.. \
>                 -I.. \
>                 -DIN_GOBJECT_INTROSPECTION=1 \
>                 --c-include='gst/gst.h' \
>                 --library=libgstreamer-0.10.la \
>                 --include=GLib-2.0 \
>                 --include=GObject-2.0 \
>                 --include=GModule-2.0 \
>                 --include=libxml2-2.0 \
>                 --libtool="../libtool" \
>                 --pkg glib-2.0 \
>                 --pkg gobject-2.0 \
>                 --pkg gmodule-no-export-2.0 \
>                 --pkg gthread-2.0 \
>                 --pkg libxml-2.0 \
>                 --output Gst-0.10.gir \
>                 ./gst.h ./glib-compat.h ./gstobject.h ./gstbin.h 
> ./gstbuffer.h ./gstbufferlist.h ./gstbus.h ./gstcaps.h ./gstchildproxy.h 
> ./gstclock.h ./gstcompat.h ./gstdebugutils.h ./gstelement.h 
> ./gstelementfactory.h ./gsterror.h ./gstevent.h ./gstfilter.h ./gstformat.h 
> ./gstghostpad.h ./gstindex.h ./gstindexfactory.h ./gstinfo.h ./gstinterface.h 
> ./gstiterator.h ./gstmacros.h ./gstmessage.h ./gstminiobject.h ./gstpad.h 
> ./gstpadtemplate.h ./gstparamspecs.h ./gstpipeline.h ./gstplugin.h 
> ./gstpluginfeature.h ./gstpoll.h ./gstpreset.h ./gstquery.h ./gstsegment.h 
> ./gststructure.h ./gstsystemclock.h ./gsttaglist.h ./gsttagsetter.h 
> ./gsttask.h ./gsttaskpool.h ./gsttrace.h ./gsttypefind.h 
> ./gsttypefindfactory.h ./gsturi.h ./gstutils.h ./gstvalue.h ./gstregistry.h 
> ./gstparse.h ./gstxml.h \
>                 ./gst.c ./gstobject.c ./gstbin.c ./gstbuffer.c 
> ./gstbufferlist.c ./gstbus.c ./gstcaps.c ./gstchildproxy.c ./gstclock.c 
> ./gstdebugutils.c ./gstelement.c ./gstelementfactory.c ./gsterror.c 
> ./gstevent.c ./gstfilter.c ./gstformat.c ./gstghostpad.c ./gstindex.c 
> ./gstindexfactory.c ./gstinfo.c ./gstinterface.c ./gstiterator.c 
> ./gstmessage.c ./gstminiobject.c ./gstpad.c ./gstpadtemplate.c 
> ./gstparamspecs.c ./gstpipeline.c ./gstplugin.c ./gstpluginfeature.c 
> ./gstpluginloader.c ./gstpoll.c ./gstpreset.c ./gstquark.c ./gstquery.c 
> ./gstregistry.c ./gstregistrychunks.c ./gstsegment.c ./gststructure.c 
> ./gstsystemclock.c ./gsttaglist.c ./gsttagsetter.c ./gsttask.c 
> ./gsttaskpool.c ./gsttrace.c ./gsttypefind.c ./gsttypefindfactory.c 
> ./gsturi.c ./gstutils.c ./gstvalue.c ./gstparse.c ./gstregistrybinary.c 
> ./gstxml.c
> /usr/lib/gcc/arm-linux-gnueabi/4.4.5/../../../../arm-linux-gnueabi/bin/ld: 
> warning: libxml2.so.2, needed by ./.libs/libgstreamer-0.10.so, not found (try 
> using -rpath or -rpath-link)
> /usr/lib/gcc/arm-linux-gnueabi/4.4.5/../../../../arm-linux-gnueabi/bin/ld: 
> warning: libm.so.6, needed by ./.libs/libgstreamer-0.10.so, not found (try 
> using -rpath or -rpath-link)
> [...]

Yep. pdebuild-cross+xapt dies in the same place, but not with the same
error

dies with:
./gst.c ./gstobject.c ./gstbin.c ./gstbuffer.c ./gstbufferlist.c ./gstbus.c 
./gstcaps.c ./gstchildproxy.c ./gstclock.c ./gstdebugutils.c ./gstelement.c 
./gstelementfactory.c ./gsterror.c ./gstevent.c ./gstfilter.c ./gstformat.c 
./gstghostpad.c ./gstindex.c ./gstindexfactory.c ./gstinfo.c ./gstinterface.c 
./gstiterator.c ./gstmessage.c ./gstminiobject.c ./gstpad.c ./gstpadtemplate.c 
./gstparamspecs.c ./gstpipeline.c ./gstplugin.c ./gstpluginfeature.c 
./gstpluginloader.c ./gstpoll.c ./gstpreset.c ./gstquark.c ./gstquery.c 
./gstregistry.c ./gstregistrychunks.c ./gstsegment.c ./gststructure.c 
./gstsystemclock.c ./gsttaglist.c ./gsttagsetter.c ./gsttask.c ./gsttaskpool.c 
./gsttrace.c ./gsttypefind.c ./gsttypefindfactory.c ./gsturi.c ./gstutils.c 
./gstvalue.c ./gstparse.c ./gstregistrybinary.c ./gstxml.c
/tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/Gst-0.10: line 136: 
/tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/.libs/lt-Gst-0.10: 
No such file or directory
/tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/Gst-0.10: line 136: 
/tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/.libs/lt-Gst-0.10: 
Success
g-ir-scanner: compile: arm-linux-gnueabi-gcc -pthread -I/usr/include/glib-2.0 
-I/usr/lib/glib-2.0/include -I/usr/include/gobject-introspection-1.0 -g -O2 -g 
-Wall -O2 -Wno-error -I.. -I.. -I/usr/include/glib-2.0 
-I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I.. -I.. 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -c 
-o /tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/Gst-0.10.o 
/tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/Gst-0.10.c
g-ir-scanner: link: ../libtool --mode=link --tag=CC --silent 
arm-linux-gnueabi-gcc -o 
/tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/Gst-0.10 -g -O2 -g 
-Wall -O2 -Wno-error -L. -Wl,--export-dynamic -pthread -lgirepository-1.0 
-lgobject-2.0 -lgmodule-2.0 -lffi -lgthread-2.0 -lrt -lglib-2.0 
libgstreamer-0.10.la -pthread -Wl,--export-dynamic -lgio-2.0 -lgirepository-1.0 
-lgobject-2.0 -lgmodule-2.0 -lffi -lgthread-2.0 -lrt -lglib-2.0 
/tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/Gst-0.10.o
Command 
'['/tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/Gst-0.10', 
'--introspect-dump=/tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/types.txt,/tmp/buildd/gstreamer0.10-0.10.30/gst/tmp-introspect8V8qNL/dump.xml']'
 returned non-zero exit status 1


>  So the issue is that g-ir-scanner is broken for cross-builds.

Yep. I think we can agree on that. It's interesting that the two build
methods don't quite give the same behaviour. I'll poke it some more to see
what's going on.

>  I stopped looking into it at this point

Just when it gets interesting :-)

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to