This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, AArch64] Add Cortex-A53 erratum 843419 configure-time option


On 1 May 2015 at 13:39, Yvan Roux <yvan.roux@linaro.org> wrote:
> Hi Marcus,
>
> (Sorry wanted to cc you in my first mail but seems that gmail prefers
> Maxim to Marcus ! ;)
>
> On 1 May 2015 at 13:11, Marcus Shawcroft <marcus.shawcroft@gmail.com> wrote:
>> On 1 May 2015 at 10:11, Yvan Roux <yvan.roux@linaro.org> wrote:
>>> Hi all,
>>>
>>> As described in the thread bellow, there is a link-time workaround for
>>> an erratum (843419) of some early revision of Cortex-A53.  Similarly
>>> to what was done for a previous erratum, this patch adds a new
>>> configure-time option --enable-fix-cortex-a53-843419 that pass down
>>> the linker option --fix-cortex-a53-843419.
>>>
>>> I haven't implemented flags to explicitly disable/enable it during
>>> compilation as it is only a linker workaround, but I can do it if you
>>> think it's necessary.
>>
>> Hi Yvan,
>>
>> In the case of the 835769 erratum, providing such GCC configury made
>> (some) sense because the workaround included both a GCC and an LD
>> component. GCC in effect needed the option to control GCC behaviour
>> aswell as LD behaviour. The same is not true of 843419. The net effect
>> of the proposed  patch here is to provide a configure option in GCC to
>> change the default behaviour of LD, with no other purpose within GCC
>> itself.  This seems rather bizarre to me. I would have thought that if
>> the sole objective is to change the default behaviour of LD, then
>> there should be configure time options on LD, rather than GCC.
>
> Yes indeed.
>
>> That said, I can also see that providing consistent behaviour across
>> these various work around configure options and consistent run time
>> options for the user will reduce confusion in the future, both for
>> folks building toolchains and for the folks using them.  From this
>> perspective I think it would be better to go with this patch *and*
>> include the flags explicitly such the both of the current workaround
>> have equivalent configury behaviour and have equivalent user flags at
>> run time.
>
> Ok I'll add the -mfix-cortex-a53-843419 flags to be consistent.

Here is the new patch, I kept the "Report" property for the flag even
if nothing is changed in the assembly generated, but I think it's good
to have the info.

Cheers,
Yvan

2015-05-01  Yvan Roux  <yvan.roux@linaro.org>

     * configure.ac: Add --enable-fix-cortex-a53-843419 option.
     * configure: Regenerate.
     * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
     (LINK_SPEC): Include CA53_ERR_843419_SPEC.
     * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
     (LINK_SPEC): Include CA53_ERR_843419_SPEC.
     * doc/install.texi (aarch64*-*-*): Document
     new --enable-fix-cortex-a53-843419 option
     * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
     * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
     and -mno-fix-cortex-a53-8434199 options.

>
> Cheers
> Yvan
>
>> Cheers
>> /Marcus
>>
>>>
>>> https://sourceware.org/ml/binutils-cvs/2015-04/msg00012.html
>>>
>>> Is it ok for trunk and/or branches ?
>>>
>>> Thanks,
>>> Yvan
>>>
>>> 2015-05-01  Yvan Roux  <yvan.roux@linaro.org>
>>>
>>>     * configure.ac: Add --enable-fix-cortex-a53-843419 option.
>>>     * configure: Regenerate.
>>>     * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
>>>     (LINK_SPEC): Include CA53_ERR_843419_SPEC.
>>>     * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
>>>     (LINK_SPEC): Include CA53_ERR_843419_SPEC.
>>>     * doc/install.texi (aarch64*-*-*): Document
>>>     new --enable-fix-cortex-a53-843419 option.

Attachment: erratum-843419-2.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]