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

Re: Long-term mass bug filing for crossbuild support



On Sun, 11 Nov 2007 00:19:41 +0100
Hendrik Sattler <post@hendrik-sattler.de> wrote:

> Am Samstag 10 November 2007 schrieb Neil Williams:
> > 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.
> 
> How do you determine the root dir of the target? 

? What do you mean ? / is /

'target' is a misleading term in cross compiling - it is probably best
to reserve the keyword 'target' as referring solely to the TARGET
variable specified to gcc when building the cross compiler. 'target' in
that context, has no specific meaning during the cross build itself.

Emebian uses the terminology:
--build == Big or Desktop (Build or builD) depending on your point of
view.
--host == handheld 

Emdebian supports amd64, i386 and powerpc as --build. My primary --host
is ARM but others are working on other objectives, like mips, and
other architectures are supported.

The cross built package will install into /usr/ just as before because
it is expected to be installed on the host device where / is correct.

When using dpkg-cross, the library is rebuilt to install into:
/usr/$triplet/lib/
and -dev packages into:
/usr/$triplet/include/
where 
$triplet = `dpkg-architecture -qDEB_HOST_GNU_TYPE`

When dpkg-buildpackage is called with the --arch option,
dpkg-architecture is called to set the appropriate values.

That makes the --host libfoo.so available to the cross compiler running
on the --build by a mechanism of paths and symlinks. It is this support
that is being rewritten during the migration of dpkg-cross back into
dpkg. This /usr/$triplet/ is only used to provide the shared objects
during the cross build - the final package looks in /usr/lib/ when
loading the dynamic links at runtime.

Currently, 'dpkg-buildpackage -a' is not fully functional. Emdebian
uses wrapper code in 'emdebuild' that implements a temporary solution
until bug 439979 is closed.

> It's likely not / so it can 
> be about anywhere in the tree. Or does the build happens in a chroot 
> automatically.

Please read http://www.emdebian.org/ and then transfer this thread to
debian-embedded@lists.debian.org.

> How and which environment variables are set to which values?
> "man dpkg-buildpackage" doesn't tell anything about those.

man dpkg-architecture

-- 

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

Attachment: pgp0dSV1lrkLR.pgp
Description: PGP signature


Reply to: