This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Is it normal that ld promote a section size
- From: Terry Guo <flameroc at gmail dot com>
- To: binutils at sourceware dot org
- Date: Mon, 16 Feb 2015 11:51:05 +0800
- Subject: Is it normal that ld promote a section size
- Authentication-results: sourceware.org; auth=none
Hi there,
In assembly code, I have below two sections generated with gcc lto:
.section .bss.usb_qh,"aw",%nobits
.align 11
.set .LANCHOR8,. + 0
.type usb_qh, %object
.size usb_qh, 768
usb_qh:
.space 768
.section .bss.USB_EpStatus,"aw",%nobits
.align 1
.set .LANCHOR3,. + 0
.type USB_EpStatus, %object
.size USB_EpStatus, 2
USB_EpStatus:
.space 2
Then after link, in final map file, I got:
.bss.USB_CurrentInterface
0x2000e9aa 0x1 airspy_m0.elf.ltrans1.ltrans.o
*fill* 0x2000e9ab 0x655
.bss.usb_qh 0x2000f000 0x800 airspy_m0.elf.ltrans1.ltrans.o
0x2000f000 usb_qh
.bss.USB_EpStatus
0x2000f800 0x2 airspy_m0.elf.ltrans1.ltrans.o
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?
BR,
Terry