Re: Creating debs using a cross-build envronment?

Neil Williams <[email protected]>
Newsgroups gmane.linux.debian.devel.embedded
Message-ID <[email protected]>
On Thu, 23 Feb 2012 10:53:13 +0100
Svante Signell <[email protected]> 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.

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) ?

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>
uclibceabi-linux-arm    uclibc-linux-armel
uclibc-linux-<cpu>      uclibc-linux-<cpu>
gnueabihf-linux-arm     armhf
gnueabi-linux-arm       armel
gnuspe-linux-powerpc    powerpcspe
gnulp-linux-i386        lpia
gnu-linux-<cpu>         <cpu>
gnu-kfreebsd-<cpu>      kfreebsd-<cpu>
gnu-knetbsd-<cpu>       knetbsd-<cpu>
gnu-kopensolaris-<cpu>  kopensolaris-<cpu>
gnu-hurd-<cpu>          hurd-<cpu>
bsd-freebsd-<cpu>       freebsd-<cpu>
bsd-openbsd-<cpu>       openbsd-<cpu>
bsd-netbsd-<cpu>        netbsd-<cpu>
bsd-darwin-<cpu>        darwin-<cpu>
sysv-solaris-<cpu>      solaris-<cpu>
uclibceabi-uclinux-arm  uclinux-armel
uclibc-uclinux-<cpu>    uclinux-<cpu>

Debian only supports Hurd for i386 (hurd-i386).

DEB_HOST_ARCH=hurd-i386
DEB_HOST_ARCH_OS=hurd
DEB_HOST_ARCH_CPU=i386
DEB_HOST_ARCH_BITS=32
DEB_HOST_ARCH_ENDIAN=little
DEB_HOST_GNU_CPU=i486
DEB_HOST_GNU_SYSTEM=gnu
DEB_HOST_GNU_TYPE=i486-gnu

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?

> 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. 

> - 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
architecture.

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?

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.

-- 


Neil Williams
=============
http://www.linux.codehelp.co.uk/
signature.asc (application/pgp-signature, 198 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAk9GFzoACgkQk7DVr6iX/QLnpQCfWXFcwwmwX5OP1O8xlqr1Js+o
/30An09UFJMmID4oNckA1UNQEUJnS/TW
=8LBn
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.