This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Is it normal that ld promote a section size
- From: Terry Guo <flameroc at gmail dot com>
- To: Alan Modra <amodra at gmail dot com>
- Cc: binutils at sourceware dot org
- Date: Tue, 17 Feb 2015 11:36:46 +0800
- Subject: Re: Is it normal that ld promote a section size
- Authentication-results: sourceware.org; auth=none
- References: <CAGbRaL4YH8B-RKMSzTgOe4Steu=G-qw=Tv4aqT0c9aqDSCYgdQ at mail dot gmail dot com> <20150216065447 dot GG4274 at bubble dot grove dot modra dot org>
On Mon, Feb 16, 2015 at 2:54 PM, Alan Modra <amodra@gmail.com> wrote:
> On Mon, Feb 16, 2015 at 11:51:05AM +0800, Terry Guo wrote:
>> It looks to me that the size of usb_qh is promoted from 0x300(768)
>> bytes to 0x800(2048) bytes. The section .bss.UBS_EpStatus can prove
>> this. IMHO this section should start from 0x2000f300 rather than
>> 0x2000f800. This causes waste of space. Is this normal?
>
> Have you looked at the relocatable object files? I think it likely
> you'll find your assembler is responsible for adding padding. If gas,
> see SUB_SEGMENT_ALIGN.
>
> --
> Alan Modra
> Australia Development Lab, IBM
Thanks Alan and you are right. It is gas that increased the section
size. I am trying to figure out why gas do so because nothing in the
assembly code tell gas to do so. My assembly code is generated with
gcc flto. If I disable gcc flto, gas won't add padding for the
assembly code.
BR,
Terry