https://sourceware.org/bugzilla/show_bug.cgi?id=20765
Peter Smith <peter.smith at linaro dot org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |peter.smith at linaro dot org --- Comment #3 from Peter Smith <peter.smith at linaro dot org> --- I have done some investigation and I think I have a fix for this PR. There are 2 separate problems with the --fix-cortex-a53-843419 shown up by the gitit build: - Internal fault when the address of erratum stubs is modified by the addition of stubs earlier in the output section, or previous output section. - Some erratum stubs are created but are not found, and hence skipped over, by fix_errata_and_relocate_erratum_stubs(). The root cause of this problem is that invalidate_erratum_stub() sets relobj_ to NULL. Unfortunately relobj is used in operator<() so the results of erratum_stubs_.lower_bound(), as used in find_erratum_stubs_for_input_section() are not reliable. The former can be exposed with a linker script or a very large test case such as gitit (requires 2 stub tables for the .text section). The latter is more likely to show up more when there are large numbers of erratum stubs, but in principle could happen in smaller examples so is more serious. I'll attach a couple of patches to address each of the problems. The first runs at the start of scan_errata(), it goes through each of the errata that have already been created on previous patches and updates each stub with its new erratum_address and destination_address. The second adds a new field valid_ that is not used in operator<() so it can be safely changed by invalidate_erratum_stub(). -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils