diff options
author | Alexey Neyman <stilor@att.net> | 2017-12-02 23:30:38 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-02 23:30:38 (GMT) |
commit | d917a29865876b913fe2939ee2a0728145e8543a (patch) | |
tree | 4e048ed57988306696efa3c5b81a80d48030e913 /packages/binutils/2.24/0010-xtensa-gas-first-frag-alignment.patch | |
parent | e832b9b220f90b11b893e2815ceb37ec2b708683 (diff) | |
parent | 98bc4decdeab1361bdc585c86591718fb08c8ffb (diff) |
Merge pull request #874 from stilor/renumber-update-patches
Renumber & update patches
Diffstat (limited to 'packages/binutils/2.24/0010-xtensa-gas-first-frag-alignment.patch')
-rw-r--r-- | packages/binutils/2.24/0010-xtensa-gas-first-frag-alignment.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/packages/binutils/2.24/0010-xtensa-gas-first-frag-alignment.patch b/packages/binutils/2.24/0010-xtensa-gas-first-frag-alignment.patch new file mode 100644 index 0000000..88e6990 --- /dev/null +++ b/packages/binutils/2.24/0010-xtensa-gas-first-frag-alignment.patch @@ -0,0 +1,46 @@ +From a35d5e823fdfe8a6e7e05ca8e3fb8bb5697335b1 Mon Sep 17 00:00:00 2001 +From: Max Filippov <jcmvbkbc@gmail.com> +Date: Tue, 15 Apr 2014 19:12:46 +0400 +Subject: [PATCH] Fix alignment for the first section frag on xtensa + +Linking object files produced by partial linking with link-time +relaxation enabled sometimes fails with the following error message: + +dangerous relocation: call8: misaligned call target: (.text.unlikely+0x63) + +This happens because no basic block with an XTENSA_PROP_ALIGN flag in the +property table is generated for the first basic block, even if the +.align directive is present. +It was believed that the first frag alignment could be derived from the +section alignment, but this was not implemented for the partial linking +case: after partial linking first frag of a section may become not +first, but no additional alignment frag is inserted before it. +Basic block for such frag may be merged with previous basic block into +extended basic block during relaxation pass losing its alignment +restrictions. + +Fix this by always recording alignment for the first section frag. + +2014-04-22 Max Filippov <jcmvbkbc@gmail.com> + +gas/ + * config/tc-xtensa.c (xtensa_handle_align): record alignment for the + first section frag. + +--- +Backported from: a35d5e823fdfe8a6e7e05ca8e3fb8bb5697335b1 +Changes to Changelog files and tests are dropped. + + gas/config/tc-xtensa.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/gas/config/tc-xtensa.c ++++ b/gas/config/tc-xtensa.c +@@ -5610,7 +5610,6 @@ + && ! fragP->tc_frag_data.is_literal + && (fragP->fr_type == rs_align + || fragP->fr_type == rs_align_code) +- && fragP->fr_address + fragP->fr_fix > 0 + && fragP->fr_offset > 0 + && now_seg != bss_section) + { |