On 10 March 2016 at 14:24, James Greenhalgh <james.greenha...@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.greenha...@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.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 >> >> > 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 >
2016-03-14 Christophe Lyon <christophe.l...@linaro.org> * gcc.target/aarch64/pr63304_1.c: Add -mno-fix-cortex-a53-843419.
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")