binutils/binutils-fix-invalid-op-errata.diff
Michael Matz a121495e23 Accepting request 822679 from home:marxin:branches:devel:gcc
- Update to binutils 2.35:
  * The asseembler can now produce DWARF-5 format line number tables.
  * Readelf now has a "lint" mode to enable extra checks of the files it is processing.
  * Readelf will now display "[...]" when it has to truncate a symbol name.  
    The old behaviour - of displaying as many characters as possible, up to
    the 80 column limit - can be restored by the use of the --silent-truncation
    option.
  * The linker can now produce a dependency file listing the inputs that it
    has processed, much like the -M -MP option supported by the compiler.
- Regenerate add-ulp-section.diff with -p1 due to a fuzzing issue.
- Remove binutils-2.34-branch.diff.gz.
- Regenerate binutils-build-as-needed.diff due to a fuzzing issue.
- Regenerate binutils-fix-invalid-op-errata.diff as one hunk was upstreamed.
- Remove upstreamed patch binutils-pr25593.diff.
- Regenerate unit-at-a-time.patch due to a fuzzing issue.
- Regenerate binutils-revert-plt32-in-branches.diff.

OBS-URL: https://build.opensuse.org/request/show/822679
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/binutils?expand=0&rev=338
2020-07-31 14:32:51 +00:00

26 lines
1.0 KiB
Diff

Also reported as PR25210. There's a problem when using the two
linker options '--fix-cortex-a53-835769 --fix-cortex-a53-843419'
together. This is the default in our distro, but not upstream so
it went unnoticed.
Leads to an error while linking any code that sports one of the
sequences that triggers the errata fixup (gcc being one of those),
namely:
ld: can not size stub section: invalid operation
ld: warning: cannot find entry symbol _start; defaulting to 0000000000400078
ld: linker stubs: file class ELFCLASSNONE incompatible with ELFCLASS64
ld: final link failed: file in wrong format
--- bfd/elfnn-aarch64.c.mm 2019-09-09 13:19:43.000000000 +0000
+++ bfd/elfnn-aarch64.c 2019-11-20 11:44:00.000000000 +0000
@@ -4313,7 +4313,8 @@ elfNN_aarch64_size_stubs (bfd *output_bfd,
|| (input_bfd->flags & BFD_LINKER_CREATED) != 0)
continue;
- if (!_bfd_aarch64_erratum_835769_scan (input_bfd, info,
+ if (input_bfd != stub_bfd
+ && !_bfd_aarch64_erratum_835769_scan (input_bfd, info,
&num_erratum_835769_fixes))
return FALSE;
}