+++ 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
[email protected]
http://lists.linaro.org/mailman/listinfo/linaro-dev