[Gta04-owner] [Tinkerphones] +++ next breakthrough for qtmoko2 +++

H. Nikolaus Schaller hns at goldelico.com
Tue Mar 27 11:26:53 CEST 2018


Hi Josua,

> Am 26.03.2018 um 15:48 schrieb Josua Mayer <josua.mayer at jm0.eu>:
> 
> Hi Nikolaus,
> 
> I came across a similar question a year ago, but I had to find some time for digging it out.
> So back then I wanted to use DEB_TARGET_GNU_TYPE to identify the long compiler name, arm-linux-gnueabihf.
> 
> Now back in Wheezy, we only had BUILD_* and HOST_*. Quoting the Debian Wiki Page on cross-build packaging [1]:
> "HOST is the machine we are building for"
> "BUILD is the machine we are building on"
> 
> So HOST_* is what we want to use here!
> 
> I don't fully understand what TARGET means. Reading in the gcc manual [2] about build, host and target I understand this:
> We are building software on a machine (BUILD), to execute on another machine (HOST). And then we can have a TARGET machine that our newly built software may produce code for, if it is a compiler, assembler or otherwise generating tool.
> 
> So I conclude that we should be using HOST, not only on Wheezy, but also on later releases as this is most accurate to our use-case.
> 
It seems to work now!

http://download.goldelico.com/letux-debian-rootfs/debian/dists/wheezy/main/

vs.

http://download.goldelico.com/letux-debian-rootfs/debian/dists/jessie/main/

(watch for qt-embedded_4.8.7.*.* in binary-armhf/ or sources/)

Now up to the community to make use of this result!

BR and thanks,
Nikolaus

> br
> Josua
> [1] https://wiki.debian.org/CrossBuildPackagingGuidelines <https://wiki.debian.org/CrossBuildPackagingGuidelines>
> [2] https://gcc.gnu.org/onlinedocs/gcc-4.0.2/gccint/Configure-Terms.html <https://gcc.gnu.org/onlinedocs/gcc-4.0.2/gccint/Configure-Terms.html>
> 
> Am 26.03.2018 um 14:07 schrieb H. Nikolaus Schaller:
>> Hi Jonas,
>> 
>>> Am 26.03.2018 um 13:17 schrieb Jonas Smedegaard <jonas at jones.dk> <mailto:jonas at jones.dk>:
>>> 
>>> Quoting H. Nikolaus Schaller (2018-03-26 12:43:56)
>>>> Hi,
>>>> nobody with an idea or knowledge?
>>>> 
>>>> BR,
>>>> Nikolaus
>>>> 
>>>>> Am 18.03.2018 um 15:37 schrieb H. Nikolaus Schaller <hns at goldelico.com> <mailto:hns at goldelico.com>:
>>>>> 
>>>>> Another topic:
>>>>> 
>>>>> I am trying to build it on/for wheezy, but ./mkqtspec.sh fails with:
>>>>> 
>>>>>      dpkg-architecture: error: DEB_TARGET_ARCH is not a supported variable name
>>>>> 
>>>>> Jessie reports:
>>>>> 
>>>>> root at letux:# dpkg-architecture
>>>>> DEB_BUILD_ARCH=armhf
>>>>> DEB_BUILD_ARCH_BITS=32
>>>>> DEB_BUILD_ARCH_CPU=arm
>>>>> DEB_BUILD_ARCH_ENDIAN=little
>>>>> DEB_BUILD_ARCH_OS=linux
>>>>> DEB_BUILD_GNU_CPU=arm
>>>>> DEB_BUILD_GNU_SYSTEM=linux-gnueabihf
>>>>> DEB_BUILD_GNU_TYPE=arm-linux-gnueabihf
>>>>> DEB_BUILD_MULTIARCH=arm-linux-gnueabihf
>>>>> DEB_HOST_ARCH=armhf
>>>>> DEB_HOST_ARCH_BITS=32
>>>>> DEB_HOST_ARCH_CPU=arm
>>>>> DEB_HOST_ARCH_ENDIAN=little
>>>>> DEB_HOST_ARCH_OS=linux
>>>>> DEB_HOST_GNU_CPU=arm
>>>>> DEB_HOST_GNU_SYSTEM=linux-gnueabihf
>>>>> DEB_HOST_GNU_TYPE=arm-linux-gnueabihf
>>>>> DEB_HOST_MULTIARCH=arm-linux-gnueabihf
>>>>> DEB_TARGET_ARCH=armhf
>>>>> DEB_TARGET_ARCH_BITS=32
>>>>> DEB_TARGET_ARCH_CPU=arm
>>>>> DEB_TARGET_ARCH_ENDIAN=little
>>>>> DEB_TARGET_ARCH_OS=linux
>>>>> DEB_TARGET_GNU_CPU=arm
>>>>> DEB_TARGET_GNU_SYSTEM=linux-gnueabihf
>>>>> DEB_TARGET_GNU_TYPE=arm-linux-gnueabihf
>>>>> DEB_TARGET_MULTIARCH=arm-linux-gnueabihf
>>>>> root at letux:#
>>>>> 
>>>>> Wheezy reports:
>>>>> 
>>>>> root at letux:/# dpkg-architecture
>>>>> DEB_BUILD_ARCH=armhf
>>>>> DEB_BUILD_ARCH_BITS=32
>>>>> DEB_BUILD_ARCH_CPU=arm
>>>>> DEB_BUILD_ARCH_ENDIAN=little
>>>>> DEB_BUILD_ARCH_OS=linux
>>>>> DEB_BUILD_GNU_CPU=arm
>>>>> DEB_BUILD_GNU_SYSTEM=linux-gnueabihf
>>>>> DEB_BUILD_GNU_TYPE=arm-linux-gnueabihf
>>>>> DEB_BUILD_MULTIARCH=arm-linux-gnueabihf
>>>>> DEB_HOST_ARCH=armhf
>>>>> DEB_HOST_ARCH_BITS=32
>>>>> DEB_HOST_ARCH_CPU=arm
>>>>> DEB_HOST_ARCH_ENDIAN=little
>>>>> DEB_HOST_ARCH_OS=linux
>>>>> DEB_HOST_GNU_CPU=arm
>>>>> DEB_HOST_GNU_SYSTEM=linux-gnueabihf
>>>>> DEB_HOST_GNU_TYPE=arm-linux-gnueabihf
>>>>> DEB_HOST_MULTIARCH=arm-linux-gnueabihf
>>>>> root at letux:/#
>>>>> 
>>>>> So can we safely replace DEB_TARGET_ARCH by DEB_BUILD_ARCH
>>>>> in DEB_TARGET_ARCH=$(dpkg-architecture -qDEB_TARGET_ARCH) ?
>>> "man dpkg-architecture" says:
>>> 
>>>> DEB_BUILD_ARCH
>>>>  The Debian architecture of the build machine.
>> ok.
>> 
>>> and
>>> 
>>>> DEB_TARGET_ARCH
>>>>  The Debian architecture of the target machine (since dpkg 1.17.14).
>> ok. So we can use the same since the build is not a cross-build or anything.
>> 
>>> dpkg version in wheezy is too old:
>>> https://packages.debian.org/source/oldoldstable/dpkg <https://packages.debian.org/source/oldoldstable/dpkg>
>> Well, for building a package for wheezy it should never be too old...
>> Only some source code could be too new :)
>> 
>>> If build machine is same architecture as target machine, then you can
>>> reuse, else not.
>> So does this mean the following?
>> 
>> * use DEB_TARGET_ARCH if defined
>> * fall back to DEB_BUILD_ARCH otherwise
>> 
>> I.e. replace it by:
>> 
>> DEB_TARGET_ARCH=$(dpkg-architecture -qDEB_TARGET_ARCH 2>/dev/null)
>> [ "$DEB_TARGET_ARCH" ] || DEB_TARGET_ARCH=$(dpkg-architecture -qDEB_BUILD_ARCH
>> 
>> BR and thanks,
>> Nikolaus
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.goldelico.com/pipermail/gta04-owner/attachments/20180327/7b905d8f/attachment.html>


More information about the Gta04-owner mailing list