Message ID | CAKdteOZNUYpZZuhNABt0TmjYZ82A4D_ha5KfE20tbvTsexA-1g@mail.gmail.com |
---|---|
State | New |
Headers | show |
On 14/03/16 15:34, Christophe Lyon wrote: > On 10 March 2016 at 14:24, James Greenhalgh <james.greenhalgh@arm.com> wrote: >> On Thu, Mar 10, 2016 at 01:37:50PM +0100, Christophe Lyon wrote: >>> On 10 March 2016 at 12:43, James Greenhalgh <james.greenhalgh@arm.com> wrote: >>>> On Tue, Jan 26, 2016 at 03:43:36PM +0100, Christophe Lyon wrote: >>>>> With the attachment.... >>>>> >>>>> >>>>> On 26 January 2016 at 15:42, Christophe Lyon <christophe.lyon@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 >>>>>> and further details on Launchpad: >>>>>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1533009 >>>>>> >>>>>> OK for trunk? >>>> >>>> Thanks, this looks like a clear regression from GCC 5 (we can no longer >>>> build the kernel, so this workaround is fine to go in now). Please remember >>>> to add the link to the relevant PR in the ChangeLog. >>>> >>>> I'd also really appreciate a nice big comment over this code: >>>> >>>>> + /* If it is not set on the command line, we default to no pc >>>>> + relative literal loads, unless the workaround for Cortex-A53 >>>>> + erratum 843419 is in effect. */ >>>>> + if (opts->x_nopcrelative_literal_loads == 2 >>>>> + && !TARGET_FIX_ERR_A53_843419) >>>> >>>> Explaining why this is important (i.e. some summary of the discussion >>>> in PR63304 regarding the kernel module loader). >>>> >>>> Can you repost with that comment added? I don't have any other objections >>>> to the patch. >>>> >>> >>> OK, here is an updated version. >> >> Thanks. >> >> This is OK for trunk. >> > > When GCC is configured to enable the A53 erratum 843419 workaround by default, > this patch caused gcc.target/aarch64/pr63304_1.c to fail. > > The attached patch fixes the problem by forcing the use of > -mno-fix-cortex-a53-843419. > > OK, or do we prefer not to bother? > > Thanks, > > Christophe > > >> James >> >> >> pr70113.log.txt >> >> >> 2016-03-14 Christophe Lyon <christophe.lyon@linaro.org> >> >> * gcc.target/aarch64/pr63304_1.c: Add -mno-fix-cortex-a53-843419. >> OK. R.
diff --git a/gcc/testsuite/gcc.target/aarch64/pr63304_1.c b/gcc/testsuite/gcc.target/aarch64/pr63304_1.c index fa0fb56..c917f81c 100644 --- a/gcc/testsuite/gcc.target/aarch64/pr63304_1.c +++ b/gcc/testsuite/gcc.target/aarch64/pr63304_1.c @@ -1,5 +1,5 @@ /* { dg-do assemble } */ -/* { dg-options "-O1 --save-temps" } */ +/* { dg-options "-O1 --save-temps -mno-fix-cortex-a53-843419" } */ #pragma GCC push_options #pragma GCC target ("+nothing+simd, cmodel=small")