| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | From a35d5e823fdfe8a6e7e05ca8e3fb8bb5697335b1 Mon Sep 17 00:00:00 2001From: Max Filippov <jcmvbkbc@gmail.com>Date: Tue, 15 Apr 2014 19:12:46 +0400Subject: [PATCH] Fix alignment for the first section frag on xtensaLinking object files produced by partial linking with link-timerelaxation 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 theproperty 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 thesection alignment, but this was not implemented for the partial linkingcase: after partial linking first frag of a section may become notfirst, but no additional alignment frag is inserted before it.Basic block for such frag may be merged with previous basic block intoextended basic block during relaxation pass losing its alignmentrestrictions.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: a35d5e823fdfe8a6e7e05ca8e3fb8bb5697335b1Changes to Changelog files and tests are dropped. gas/config/tc-xtensa.c                      | 1 - 1 file changed, 1 deletion(-)diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.cindex ea23c96..58ace38 100644--- a/gas/config/tc-xtensa.c+++ b/gas/config/tc-xtensa.c@@ -5609,7 +5609,6 @@ xtensa_handle_align (fragS *fragP)       && ! 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)     {-- 1.8.1.4
 |