diff options
author | Chris Packham <judge.packham@gmail.com> | 2021-09-21 19:46:06 +1200 |
---|---|---|
committer | Chris Packham <judge.packham@gmail.com> | 2021-09-21 21:24:31 +1200 |
commit | fa992b41918a1dbf05f6830ba659f4ea6ffc5ffa (patch) | |
tree | 576b68e374538c4dedb835cff6f55a72f67f8f1f /packages/binutils/2.23.2/0010-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch | |
parent | 836fb9165234e50a07094b2c11938c17f92cd356 (diff) | |
download | crosstool-ng-fa992b41918a1dbf05f6830ba659f4ea6ffc5ffa.tar.gz crosstool-ng-fa992b41918a1dbf05f6830ba659f4ea6ffc5ffa.tar.bz2 crosstool-ng-fa992b41918a1dbf05f6830ba659f4ea6ffc5ffa.zip |
binutils: Remove obsolete versions
The following versions were marked obsolete in crosstool-ng-1.24.0,
remove them.
- binutils-linaro-2.23.2-2013.10-4
- binutils-linaro-2.24.0-2014.11-2
- binutils-linaro-2.25.0-2015.01-2
- binutils-2.23.2
- binutils-2.24
- binutils-2.25.1
Adjust the milestones now that the old versions have been removed.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Diffstat (limited to 'packages/binutils/2.23.2/0010-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch')
-rw-r--r-- | packages/binutils/2.23.2/0010-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/packages/binutils/2.23.2/0010-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch b/packages/binutils/2.23.2/0010-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch deleted file mode 100644 index 58186676..00000000 --- a/packages/binutils/2.23.2/0010-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 7fc39194f8fb48914c995f8ec3826d50086f1ec0 Mon Sep 17 00:00:00 2001 -From: Sterling Augustine <augustine.sterling@gmail.com> -Date: Tue, 25 Jan 2011 13:59:13 -0800 -Subject: [PATCH] Fix 'call8: call target out of range' xtensa ld relaxation - bug - -During link-time relaxation distance between cross-section call site and -its target may grow, producing 'call target out of range' error for -relaxed calls. Be more conservative when calculating whether or not a -callx can be converted to a straight call. - -2014-09-23 Sterling Augustine <augustine.sterling@gmail.com> - -bfd/ - * elf32-xtensa.c (is_resolvable_asm_expansion): for cross-section - call relaxation use furthermost addresses where call source and - destination can be to check whether it's in the range of a direct - call. - -Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> ---- - bfd/elf32-xtensa.c | 41 +++++++++++++++++++++++++++++++++++++---- - 1 file changed, 37 insertions(+), 4 deletions(-) - ---- a/bfd/elf32-xtensa.c -+++ b/bfd/elf32-xtensa.c -@@ -7128,10 +7128,43 @@ - || is_reloc_sym_weak (abfd, irel))) - return FALSE; - -- self_address = (sec->output_section->vma -- + sec->output_offset + irel->r_offset + 3); -- dest_address = (target_sec->output_section->vma -- + target_sec->output_offset + target_offset); -+ if (target_sec->output_section != sec->output_section) -+ { -+ /* If the two sections are sufficiently far away that relaxation -+ might take the call out of range, we can't simplify. For -+ example, a positive displacement call into another memory -+ could get moved to a lower address due to literal removal, -+ but the destination won't move, and so the displacment might -+ get larger. -+ -+ If the displacement is negative, assume the destination could -+ move as far back as the start of the output section. The -+ self_address will be at least as far into the output section -+ as it is prior to relaxation. -+ -+ If the displacement is postive, assume the destination will be in -+ it's pre-relaxed location (because relaxation only makes sections -+ smaller). The self_address could go all the way to the beginning -+ of the output section. */ -+ -+ dest_address = target_sec->output_section->vma; -+ self_address = sec->output_section->vma; -+ -+ if (sec->output_section->vma > target_sec->output_section->vma) -+ self_address += sec->output_offset + irel->r_offset + 3; -+ else -+ dest_address += bfd_get_section_limit (abfd, target_sec->output_section); -+ /* Call targets should be four-byte aligned. */ -+ dest_address = (dest_address + 3) & ~3; -+ } -+ else -+ { -+ -+ self_address = (sec->output_section->vma -+ + sec->output_offset + irel->r_offset + 3); -+ dest_address = (target_sec->output_section->vma -+ + target_sec->output_offset + target_offset); -+ } - - *is_reachable_p = pcrel_reloc_fits (direct_call_opcode, 0, - self_address, dest_address); |