On 1 May 2015 at 13:39, Yvan Roux 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 wrote: >> On 1 May 2015 at 10:11, Yvan Roux 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 * 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 >>> >>> * 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.