On 27/06/17 02:20, Kugan Vivekanandarajah wrote:
https://gcc.gnu.org/ml/gcc-patches/2016-03/msg00614.html added this
workaround to get kernel building with when TARGET_FIX_ERR_A53_843419
is enabled.
This was added to support building kernel loadable modules. In kernel,
when CONFIG_ARM64_ERRATUM_843419 is selected, the relocation needed
for ADRP/LDR (R_AARCH64_ADR_PREL_PG_HI21 and
R_AARCH64_ADR_PREL_PG_HI21_NC are removed from the kernel to avoid
loading objects with possibly offending sequence). Thus, it could only
support pc relative literal loads.
However, the following patch was posted to kernel to add
-mpc-relative-literal-loads
http://www.spinics.net/lists/arm-kernel/msg476149.html
-mpc-relative-literal-loads is unconditionally added to the kernel
build as can be seen from:
https://github.com/torvalds/linux/blob/master/arch/arm64/Makefile
Therefore this patch removes the hunk so that applications like
SPECcpu2017's 521/621.wrf can be built (with LTO in this case) without
-mno-pc-relative-literal-loads
Is that because your compiler has defaulted to
-mpc-relative-literal-loads because it has the workaround enabled by
default ? I'm curious as to why others haven't seen this issue.
regards
Ramana