This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [2.25][ARM][GAS]Backport "Positively emit symbols for alignment."


> On 16 Jun 2015, at 10:24, Renlin Li <renlin.li@arm.com> wrote:
> 
> Hi all,
> 
> This is a merged backport patch from the following three. They together fix one problem, So I merge them into one backport patch. The description of problem is quoted below.
> 
> The initial patch:
> https://sourceware.org/ml/binutils/2015-04/msg00381.html
> 
> Fix two failing test case:
> https://sourceware.org/ml/binutils/2015-04/msg00457.html
> 
> Fix a bug in the initial patch:
> https://sourceware.org/ml/binutils/2015-06/msg00045.html
> 
> 
> Binutils, ld, gas regression test Okay. Okay to commit?

Yes, ok for backporting.

> 
> On 24/04/15 13:53, Renlin Li wrote:
>> Hi all,
>> 
>> In arm_init_frag(), when ARM or THUMB are recorded,  it will simply
>> return without doing anything. This is not correct in a few cases.
>> 
>> For the following two cases:
>> case 1:
>>          nop        ----> MAP_ARM
>>          .long   0 ---> MAP_DATA
>>          .align  4 --->
>>                        ---->(1)
>>                        ----> start new frag
>>          .word   0x12345678
>> 
>> (1) paddings here are all treated as data, because the previous state is
>> MAP_DATA.
>> 
>> case 2:
>>          nop       ----> MAP_ARM
>>          .long   0 ---> MAP_DATA
>>          .byte   1
>>          .align  2 ---> (1)
>>                       ----> (2)
>>                       ----> start new frag
>>          .long   0x12345678 ----> (3)
>> 
>> stage 1: while parsing the input file:
>> (1) arm_init_frag early returns, No state change, no new symbol. (3)No
>> state change, no new symbol.
>> stage 2: Later, while writing the object file:
>> (2)MAP_DATA, MAP_ARM are inserted by insert_data_mapping_symol to handle
>> alignment. (3) interpreted as instruction because of the MAP_ARM
>> inserted at (2)
>> 
>> 
>> This change might generate redundant symbols, some of them can be
>> removed later. In check_mapping_symbols(), the symbols at the end of a
>> section, and overlapping symbols will be removed.
>> 
>> gas checked without any new issues. Okay to commit?
> <arm-backport.diff>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]