[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Long-term mass bug filing for crossbuild support



On Sat, 10 Nov 2007 15:02:31 +0100
Hendrik Sattler <post@hendrik-sattler.de> wrote:

> Am Dienstag 06 November 2007 schrieb Neil Williams:
> > The most common change is simply to retrieve the cross-building
> > metadata from dpkg-architecture in debian/rules:
> > http://wiki.debian.org/EmdebianGuide
> 
> Does Emdebian support upcoming cmake-2.6 cross-compile support or is this 
> planned?
> See: http://www.cmake.org/Wiki/CMake_Cross_Compiling

emdebian-tools will support any build system that can be used in
debian/rules. The build system should configure itself using only the
data provided by dpkg-architecture but can use that information in
whatever manner is needed to get the right values into the right
variables.

The crossbuild should require no more information than would be
provided by running dpkg-buildpackage. At present, there is some
wrapper code but that is destined to be removed.

After all, the only difference between a normal build and a crossbuild
is that the normal build uses:
dpkg-buildpackage ...
and the cross build uses:
dpkg-buildpackage -a $arch ...

That should be all that the package (or build system) needs to know -
apart from architecture-specific flags like little-endian or
big-endian etc. which are provided by dpkg-cross (the config files
themselves are soon to migrate into dpkg-dev itself).

> So when creating a cross-compiler, a corresponding cmake toolchain file should 
> also be created.

Providing and updating the toolchain is already sufficiently complex.
There are no plans to complicate things further by adding support for
any build-system-specific toolchain anything. IMHO CMake should be
configured (by the package or within itself) in such a way that it uses
the dpkg-architecture data to provide all the data it needs, just like
all the other build systems. A file in the home directory is not likely
to be relevant or useful, rather I would expect such a hack to be a
source of yet more bugs. Besides, there would appear to be nothing
useful to put into such a file - the toolchain binaries are all in the
$PATH and I see no apparent need for a lot of the "extras" that CMake
tries to add.

If a package doesn't build with 'dpkg-buildpackage -a' then I will
consider that a bug in the package and if the bug is reproducible
in other packages using the same build system, reassign to the build
system.

(Hence the current crossbuilt bug against CDBS).

> The right one should then noted somewhere (e.g. in an 
> environment variable) when cross-compiling a debian packge so that the 
> debian/rules file can give cmake the proper -DCMAKE_TOOLCHAIN_FILE= option.

emdebian-tools is build-system agnostic. It should not and does not
care about what is used. Any build system specifics need to be
configured either in the build system itself or in the package
debian/rules, just like every other package.

Note that all build systems must also work within a chroot without any
user-specific configuration (without a /home at all) and in this
respect, Emdebian is no different to the autobuilders.

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

Attachment: pgpycFLKDlRDa.pgp
Description: PGP signature


Reply to: