Question concerning objcopy an elf file into a raw binary file

Ian Lance Taylor ian@airs.com
Thu Jul 3 04:29:00 GMT 2003


Jie Zhang <zhangjie@magima.com.cn> writes:

>   [ 3] .bss              NOBITS          60003400 000074 000064 00  WA
> 0   0  4

> Program Headers:
>   Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
>   LOAD           0x000074 0x60003400 0x60003400 0x00000 0x00064 RW  0x4
>   LOAD           0x000074 0x60003464 0x60003464 0x019e0 0x019e0 RWE 0x4

> I expect that the memory dump will start at 60003400, but actually it
> starts at 60003464. It seems that objcopy does not actually copy .bss
> section. But .bss section is in a LOAD type segment and should, I
> think, be part of the memory dump.

.bss has NOBITS, so there is no data to put into the binary file.
It's true that .bss is in a LOAD type segment, but the file size of
that segment is zero.

When not using an operating system loader, it's normal for a program
to have to zero out the BSS in the startup code.  In most cases, this
is more efficient than copying a bunch of zeroes around.

Ian



More information about the Binutils mailing list