This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
How to inform the linker not to produce any data for a .bss section?
- From: "PRC" <panruochen at gmail dot com>
- To: binutils <binutils at sourceware dot org>
- Date: Sun, 9 Dec 2007 10:50:50 +0800
- Subject: How to inform the linker not to produce any data for a .bss section?
Here is my link script:
--------------------------------------------------------------------
OUTPUT_ARCH(mips)
SECTIONS
{
.text 0x811ed000 :
{
_dstart = ABSOLUTE(.) ; /* Start of code and data */
*(.libc)
*(.text*)
*(.rodata*)
}
.data :
{
*(.data)
}
.sbss :
{
*(.sbss)
*(.scommon)
}
.bss :
{
*(.bss)
*(COMMON)
}
_dend = ABSOLUTE(.) ; /* end of code and data */
}
--------------------------------------------------------------------
and mips-elf-objdump -h a.out shows:
a.out: file format elf32-littlemips
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00001ab4 811ed000 811ed000 00001000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0000004c 811eeab4 811eeab4 00002ab4 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000620 811eeb00 811eeb00 00002b00 2**3
ALLOC
3 .reginfo 00000018 00000000 00000000 00002b00 2**2
CONTENTS, READONLY, LINK_ONCE_SAME_SIZE
4 .pdr 000003c0 00000000 00000000 00002b18 2**2
CONTENTS, READONLY
5 .mdebug.abi32 00000000 00000000 00000000 00002ed8 2**0
CONTENTS, READONLY
The linker create a real '.bss' section in the output ELF file and
store some data inside the section, which greatly increase the size
of the ELF file.
How can I do to inform the linker don't produce any data for the .bss section?
My linker is:
mips-elf-ld -v
GNU ld version 2.15
BTW, I'd like to know how to get a minimal ELF file. As you see, the offset of the
first section is 0x1000, which means the size of the ELF header is 4K in bytes.
Is there a way to cut off the size of the header?