erratum_84319_opts starts at ERRAT_NONE = (1 << 0), so a plain boolean test
on fix_erratum_843419 is true even when no erratum workaround was asked for.
Every other use in the file tests against ERRAT_NONE or masks with ERRAT_ADR /
ERRAT_ADRP. Two do not.
The bare test dates from the conversion of fix_erratum_843419 from an int to an
enum for PR ld/24373.
Having the workaround on by default all the time is, of course, undesirable as
it costs link-time and is not what the user has asked by default.
Tested on aarch64-none-linux-gnu.
bfd/
* elfnn-aarch64.c (elfNN_aarch64_write_section): Test
fix_erratum_843419 against ERRAT_NONE.
(elfNN_aarch64_late_size_sections): Likewise.
Signed-off-by: Kyrylo Tkachov <ktkachov@nvidia.com>
make_branch_to_erratum_835769_stub, &data);
}
- if (globals->fix_erratum_843419)
+ if (globals->fix_erratum_843419 != ERRAT_NONE)
{
struct erratum_835769_branch_to_stub_data data;
/* Init mapping symbols information to use later to distingush between
code and data while scanning for errata. */
- if (htab->fix_erratum_835769 || htab->fix_erratum_843419)
+ if (htab->fix_erratum_835769 || htab->fix_erratum_843419 != ERRAT_NONE)
for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next)
{
if (!is_aarch64_elf (ibfd))