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."


Sorry for the noise, I forgot to add the ChangeLog. Here they are.

gas/ChangeLog:

2015-06-16  Renlin Li  <renlin.li@arm.com>
         backport from mainline
         2015-04-28  Renlin Li  <renlin.li@arm.com>
         2015-06-03  Renlin Li  <renlin.li@arm.com>

        * config/tc-arm.c (arm_init_frag): Always emit mapping symbols.

gas/testsuite/ChangeLog:

2015-06-16  Renlin Li  <renlin.li@arm.com>
        backport from mainline
        2015-04-28  Renlin Li  <renlin.li@arm.com>

        * gas/arm/thumb2_vpool_be.d: Adjust the desired output.
        * gas/arm/vldconst_be.d: Likewise.

ld/testsuite/ChangeLog:

2015-06-16  Renlin Li  <renlin.li@arm.com>
         backport from mainline
         2015-04-29  Renlin Li  <renlin.li@arm.com>

        * ld-arm/ifunc-10.dd: Adjust the desired output.
        * ld-arm/ifunc-2.dd: Likewise.



On 16/06/15 09:24, Renlin Li 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?

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?


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