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

Re: How to detect 32 or 64 bit at build time?

Laurent Guignard wrote:

> On Tue, 08 Sep 2009 00:05:55 -0400, Felipe Sateler wrote:
>> Sven Joachim wrote:
>> > On 2009-09-07 12:54 +0200, Sven Joachim wrote:
>> > 
>> >> How about DEB_HOST_ARCH_BITS?  This needs dpkg 1.15.4, though.
>> > 
>> > Sorry, that should have been DEB_BUILD_ARCH_BITS.
>> As Neil would have pointed out if he were still subscribed to -mentors,
>> DEB_BUILD_* is almost always the wrong choice, otherwise it will
>> cross-build incorrectly.
>> --
>> Felipe Sateler
> Is there any documentation about this ?
> Why is it a wrong choice when you want to create a package from sources
> for a specific architecture ?

Because you want the package to build for the architecture you plan to run 
it in. Cross compilation means compiling in one architecture for another. A 
common case is using an amd64 machine to build arm binaries, because amd64 
is so much faster. If you use DEB_BUILD_*, you would are detecting on the 
amd64 host, instead of the arm you really want, which you would get with 

In this case, if you look for DEB_BUILD_*, and the package was being cross-
compiled from amd64 to i386, it would get ARB_64=1 instead of ARB_64=0.

Felipe Sateler

Reply to: