[yocto] [meta-raspberrypi] poky linux build fails if ARM erratum mfix linker switch is specified

Steve Pavao stevep at korgrd.com
Mon Nov 4 08:32:17 PST 2019


> On Nov 4, 2019, at 11:16 AM, Steve Pavao <stevep at korgrd.com> wrote:
> 
>> 
>> On Nov 4, 2019, at 11:11 AM, Adrian Bunk <bunk at stusta.de <mailto:bunk at stusta.de>> wrote:
>> 
>> On Mon, Nov 04, 2019 at 10:48:57AM -0500, Steve Pavao wrote:
>>> 
>>>> On Nov 3, 2019, at 1:25 PM, Adrian Bunk <bunk at stusta.de <mailto:bunk at stusta.de>> wrote:
>>>> 
>>>> On Sun, Nov 03, 2019 at 05:56:45PM +0000, Andrei Gherzan wrote:
>>>>> On 3 November 2019 13:18:53 GMT, Khem Raj <raj.khem at gmail.com <mailto:raj.khem at gmail.com>> wrote:
>>>>>> On Sun, Nov 3, 2019 at 2:46 AM Andrei Gherzan <andrei at gherzan.ro <mailto:andrei at gherzan.ro>>
>>>>>> wrote:
>>>>>>> I was thinking about this. The erratum seems to show that this
>>>>>> applies
>>>>>>> to all revisions of a53. So it sounds like we should add it in
>>>>>>> `tune-cortexa53.inc`.
>>>>>>> 
>>>>>> 
>>>>>> Up to r0b4 only so maybe not all a53 implementations are impacted
>>>>>> 
>>>>> 
>>>>> As far as I know that is the latest revision. Do you mean that newer revision might come up with this fixed? 
>>>> 
>>>> It is fixed in some r0p4 implementations, indicated in REVIDR[8].
>>> 
>>> I am closer to understanding why I experience an error when building with the ARM errata switches.
>>> 
>>> I believe it is related to 32-bit app support in my poky Linux 64-bit build (I add this to support vcgencmd and vcdbg 32-bit apps.)
>>> 
>>> When I remove the 32-bit support, the build completes OK.  As of now, adding the following seems to work fine to acheive this:
>>> 
>>> TARGET_CC_ARCH_append += " -mfix-cortex-a53-843419 -mfix-cortex-a53-835769”
>>> 
>>> Something in the following block seems to be the culprit.:
>>> 
>>> # for vcgencmd and vcdbg 32-bit executable support in the OS image (comment out for -c populate_sdk)
>>> require conf/multilib.conf
>>> MULTILIBS = "multilib:lib32"
>>> DEFAULTTUNE_virtclass-multilib-lib32 = "armv7a"
>>> IMAGE_INSTALL_append += " vcgencmd lib32-glibc lib32-libgcc lib32-libstdc++ vcdbg rpi-setup \
>>>>>> 
>>> I will post again when I have localized the build problem further.  Maybe there’s some 64-bit vs. 32-bit build confusion going on, and the armv7a default tune switch for 32-bits is colliding with the errata switches.
>> 
>> The errata switches are only valid for aarch64, not for armv7a.
>> There is likely some kind of "invalid option" earlier in your build.
> 
> To conitnue to be able to use the 32-bit app support, perhaps I must do this:
> 
> DEFAULTTUNE_virtclass-multilib-lib32 = “armv7a -mno-fix-cortex-a53-843419 -mno-fix-cortex-a53-835769”

This doesn’t work.

If I wish to keep the 32-bit app support in my build, I’ll need to devise a way to make sure those ARM errata flags are only applied to the aarch64 portion of the compile/link for the target, not to the multilib 32-bit app support portion.

Thanks to all of you for your thoughts so far.

Steve Pavao
Korg R&D

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20191104/ce8f5cfd/attachment-0001.html>


More information about the yocto mailing list