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] |
Hi there, For targets like ARM, some architecture related attributes can only be finalized after relaxation step due to relaxable instructions. By then the attribute section is already emitted, there is no chance to update the emitted attribute section. At least I tried and couldn't find a way to do so. In order to take into account the relaxation, I propose to emit attribute section after relaxation step. The required changes are shown in attached patch. I just refactored some functions and then call create_obj_attrs_section function after relaxation step. Any comments are welcomed. The issue I mentioned happens when target isn't specified either via assembly code like .arch/.cpu or via command line option. Here is a small example: $ cat t.s .syntax unified .thumb foo: cmp r0, r1 beq foo $ ../build/gas/as-new -o t.o t.s $ ../build/binutils/readelf -A t.o Attribute Section: aeabi File Attributes Tag_CPU_arch: v6T2 Tag_THUMB_ISA_use: Thumb-2 $ ../build/binutils/objdump -d t.o t.o: file format elf32-littlearm Disassembly of section .text: 00000000 <foo>: 0: 4288 cmp r0, r1 2: d0fd beq.n 0 <foo> There is no thumb2 instruction used in final t.o. But the architecture is over-promoted to a thumb2 target. With this proposal and other patches, I can get more accurate results: $ ../build/binutils/readelf -A t.o Attribute Section: aeabi File Attributes Tag_CPU_arch: v4T Tag_THUMB_ISA_use: Thumb-1 You may notice the ".syntax unified" in this case. Yes, I am trying to enable unified syntax for thumb1 and this is the first issue that is bothering me. So does this proposal make sense? Please comment. Thanks in advance. BR, Terry 2014-09-17 Terry Guo <terry.guo@arm.com> * as.c (create_obj_attrs_section): Move it and call it from ... * write.c (create_obj_attrs_section): ... here. (subsegs_finish_section): Refactored.
Attachment:
rfc-attribute-section-after-relax-v1.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |