On Tue, Jan 26, 2016 at 2:42 PM, Christophe Lyon
<christophe.l...@linaro.org> wrote:
> Hi,
>
> This is a followup to PR63304.
>
> As discussed in bugzilla, this patch disables pcrelative_literal_loads
> when -mfix-cortex-a53-843419 (or its default configure option) is
> used.
>
> I copied the behavior of -mfix-cortex-a53-835769 (e.g. in
> aarch64_can_inline_p), and I have tested by building the Linux kernel
> using -mfix-cortex-a53-843419 and checked that
> R_AARCH64_ADR_PREL_PG_HI21 relocations are not emitted anymore (under
> CONFIG_ARM64_ERRATUM_843419).
>
> For reference, this is motivated by:
> https://bugs.linaro.org/show_bug.cgi?id=1994

I think we need a bug report for this in the GCC bugzilla targeting
GCC 6 and have a reference to that in addition to PR63304 as this is
broken behaviour in gcc trunk with respect to the erratum fixup.

There are 2 solutions to this - one is to put out address constants in
the large memory model with the mov / movk instruction sequences but
then that wouldn't work with older released kernels and require
changes to the kernel loader and the other being this where we turn on
PC relative literal loads for the erratum fixup. I personally think
that this solution is probably sensible during stage4 but I cannot
approve changes to the AArch64 backend.

The only question I have about this implementation in the sources
based on a cursory look at the patch is whether this ends up working
reliably with LTO ?


regards
Ramana

> and further details on Launchpad:
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1533009
>
> OK for trunk?
>
> Thanks,
>
> Christophe.

Reply via email to