On 07/25/2010 02:48 PM, Wookey wrote: > +++ Dechesne, Nicolas [2010-07-23 14:46 +0200]: > >> >>>> How about cross compilation of packages, is that working? e.g. can I >>>> create an ARM .deb from my x86 machine (assuming my upstream can be >>>> cross compiled?). >>>> >>>> >>> You can use "xdeb" tool to cross compile packages. It works most of time >>> and we are working on fixing problems. >>> > Or, in principle, pdebuild-cross which, like pbuilder, has the > advantage that you build in a clean environment so you don't fill your > normal environment with (cross) -dev packages, and you do get to notice > unlisted dependencies. However right now it doesn't work properly on > Ubuntu due to Debian-related assumptions. I'm fixing that too. > thanks for this tip. right now I am trying to setup a working cross compilation environment, and I am using a specific VM for testing. it's good to know that pbuilder can work too, because that's what we use natively today already, so we will setup the cross version as well. > >> I was able to cross compile some of my package with dpkg-buildpackage >> -aarmel. However I am not able to install the -dev packages that I >> generated (it contains .h files that are required to build my next set >> of packages). I have used dpkg -a armel -i foo_armel.deb, and it >> complains about pkg-config-armel-cross missing. >> > That doesn't make much sense. dpkg doesn't (yet!) take a -a<arch> > option. Do you mean that you ran dpkg-cross -a armel -i foo-dev_armel.deb? > > and that complained that pkg-config-armel-cross was missing? > you are right... I meant dpkg-cross ;-) > That is expected: dpkg-cross only knows about the packages you put in > front of it. It does not know which dependencies are arch-independent, > because the package metadata doesn't say. So if your (armel) package > depends on pkg-config then dpkg-cross will generate a native > (amd64/i386?) package which depends on pkg-config-armel-cross (as well > as foo-armel-cross and -armel-cross version of anything else in the > deps list). When it tries to install that generated package it > complains about the missing deps. > > You can use -X to exclude all the dependencies which are in fact > arch-independent so: > dpkg-cross -a armel -X pkg-config -i foo-dev_armel.deb > will perhaps do the trick for you. > it is now working fine with the -X option. is it an acceptable solution to cross install pkg-config package? I guess it would in turn install pkg-config-armel-cross, right? > aside: > [(use dpkg-cross -a armel -b foo-dev_armel.deb) to build the package > so you can examine it before installing normally with dpkg -i). (you > can set -a armel as a default in /etc/dpkg-cross/cross-compile to save > typing if you are always targetting the same arch) ] > > Obviously this -X stuff is cumbersome, which is why you don't normally > want to use dpkg-cross directly, but wrap it in some smarter tool > which will call it with appropriate -X options for you. > i will look into xdev, as recommended in this mailing list as well. thanks a lot for your help. > >> what is the standard >> procedure to install build-dep so that I can build all my packages? the >> package files (.h, .la) have been installed in /usr/arm-linux-gnueabi, >> but not the .so (which kind of make sense). but should I worry about the >> pkg-config issue? >> > The correct installation of cross-dependencies and arch-independent > dependencies is an unpleasantly complicated area (despite being > superficially dead simple), because it's actually very difficult to > know which deps are arch-independent and which aren't, and thus at > what point(s) the cross-deps tree should be terminated in the native > dependency tree. Better metadata would help a lot here. In the > meantime various tools have been created which will make their best > guess. > > xdeb, apt-cross, pdebuild-cross(xapt) and apt-ma-emu all take > different approaches to solving this problem and currently none of > them will always get it right. > > On ubuntu right now either xdeb or manual use of dpkg-cross and -X, as > explained above, is your best bet. Your options should improve very > shortly. > > Wookey >
_______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev