Re: Creating debs using a cross-build envronment?
On Thu, 2012-02-23 at 10:38 +0000, Neil Williams wrote:
> On Thu, 23 Feb 2012 10:53:13 +0100
> Svante Signell <firstname.lastname@example.org> wrote:
> > Hi,
> > I found some Debian tools to create .deb packages available, like
> > pdebuild-cross, buildcross, xapt, xdeb, dpkg-cross, most of them
> > developed by emdebian. According to your web pages all these tools seems
> > to create GNU/Linux packages for a specific CPU using GNU/Linux as
> > build/host environment. Are there tools available also for another OS,
> > in my case GNU/Hurd.
> A change of kernel is a change of architecture. However, there has been
> no testing of cross-compiling on anything other than i386-linux,
> amd64-linux and powerpc-linux. i.e. whatever cross targets are
> available from Emdebian, they are all Linux build & host.
OK, got it.
> There is no hurd support in either Debian or Emdebian except hurd-i386.
> > Up til now I have created a cross build environment with gcc-4.4,
> > eglibc-2.13, gnumach and hurd libraries, etc. Next step would be to
> > create .debs for the target architecture.
> What is the target architecture? arm-linux-gnueabi (armel) ?
Target architecture is hurd-i386. Nothing new here.
> Are you trying to invent an ARM Hurd architecture? This is NOT
> supported by dpkg currently.
> # Bidirectional mapping between a Debian triplet and a Debian arch.
> # Supported variables: <cpu>
> # <Debian triplet> <Debian arch>
> gnu-hurd-<cpu> hurd-<cpu>
This is the one.
> Debian only supports Hurd for i386 (hurd-i386).
> Are you trying to create hurd-arm ? If so, look at the dpkg sources and
> work out what the architecture values would need to be. Which ARM CPU
> are you targeting?
No, still the old i386.
> > I know most packages can be
> > built natively, but not all, like gnat, etc.
> Those which don't build natively for hurd have zero chance of
> cross-building for hurd and might not even cross-build on hurd for
> a linux target.
Well, I'm on the way of getting the gnat tools and libraries built and
ported to GNU/Hurd to be able to build all ADA-related packages for
> > - what is missing from the built toolset so far (binutils, etc)
> > - any emdebian tools usable for this, i.e. for cross OS package
> > building?
> It's not cross-OS, it's a kernel & architecture issue and that comes
> down to whether the cross-compiler can be a) built with the alternative
> kernel headers
> and b) use those headers in preference to the other
> kernel within a cross-build and
> c) whether dpkg can recognise the new
Yes, see above!
So the emdebian cross tools are only cross CPU, not cross OS, right?
> What are you trying to do?
> 0: Use a GNU/Hurd machine to cross-build for devices running linux?
> Which CPU?
> 1: Use a linux machine to cross-build for devices running Hurd? (No
> idea whether Hurd even runs on machines which would be the target of a
> cross-build). Again, which CPU?
Yes, and CPU is i386. Haven't tried a cross-built boot of Hurd, that
requires much more work than I've done so far. Hurd runs natively on x86
boxes, where the hardware is supported, and in VMs, like qemu/kvm I use.
a) I just asked about creating target .debs using the cross built tools
instead of just binaries.
b) And to enable support for gnat in GNU/Hurd, either as a deb or
binaries created by the cross-build environment and copied to the target
for native .deb builds there.
> 2: Use a Hurd machine to cross-build for devices running Hurd. See 1.
> 3: Natively build Hurd packages on a Hurd machine - in which case, you
> don't need anything from Emdebian.
Thanks for your prompt reply :)