[yocto] GCC on ARM

Andre McCurdy armccurdy at gmail.com
Fri Mar 31 11:41:24 PDT 2017


On Thu, Mar 30, 2017 at 10:07 PM, Khem Raj <raj.khem at gmail.com> wrote:
> On 3/30/17 9:07 PM, Gary Thomas wrote:
>> [slightly off-topic]
>>
>> I work with a number of embedded ARM devices, all with different
>> processors, hence somewhat different tuning and build directories:
>>   Raspberry-Pi (1,2,3 - mostly 3):
>>     TUNE_FEATURES     = "arm armv7ve vfp thumb neon vfpv4
>> callconvention-hard cortexa7"
>>     build dirs:
>>       tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi
>>   BeagleBoneBlack:
>>     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard"
>>     build dirs:
>>       tmp/work/armv7ahf-neon-poky-linux-gnueabi
>>   i.MX6:
>>     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard
>> cortexa9"
>>     build dirs:
>>       tmp/work/cortexa9hf-neon-poky-linux-gnueabi
>>       tmp/work/cortexa9hf-neon-mx6qdl-poky-linux-gnueabi
>>       tmp/work/cortexa9t2hf-neon-mx6qdl-poky-linux-gnueabi
>>
>> What I'm wondering is, except for the obvious programs that use SoC
>> specific
>> functions like the IPU/GPU on the i.MX6, how different are these
>> really?

These tuning features refer to the CPU core only - not the rest of the
SoC. Any differences in GPU etc are not relevant.

>> So
>> much so that they have to all have unique binaries?  Surely I could build
>> busybox or python and run the same binary on all three?

CPU cores are generally backwards compatible. The Raspberry-Pi 3
(armv7ve) could run binaries created for the other two (armv7a), but
not necessarily the other way around. e.g. armv7ve adds support for
integer division in HW, which isn't supported by armv7a, so if busybox
contains any integer division operations (which it almost certainly
does) then a busybox binary built for Raspberry-Pi 3 would fail to run
on the other two.

> You can chose a least common denominator and use that as DEFAULTTUNE for
> all your machines. May be like armv7at2-neon

The common denominator for the examples above would include hardfloat, ie:

  DEFAULTTUNE = "armv7athf-neon"

>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>



More information about the yocto mailing list