.bss不是最终ELF的一部分吗?

时间:2015-05-12 08:51:55

标签: memory-management linker loader u-boot

以下是链接描述符文件,它是GNU LD的输入,用于为嵌入式系统构建u-boot ELF

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{
    . = 0x00000000;

    . = ALIGN(4);
    .text   :
    {
        arch/arm/cpu/armv7/start.o  (.text)
        *(.text)
    }

    . = ALIGN(4);
    .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }

    . = ALIGN(4);
    .data : {
        *(.data)
    }

    . = ALIGN(4);

    . = .;
    __u_boot_cmd_start = .;
    .u_boot_cmd : { *(.u_boot_cmd) }
    __u_boot_cmd_end = .;

    . = CONFIG_SYS_NAND_U_BOOT_SIZE + CONFIG_SYS_TEXT_BASE;
    . = ALIGN(4);

    .rel.dyn : {
        __rel_dyn_start = .;
        *(.rel*)
        __rel_dyn_end = .;
    }

    .dynsym : {
        __dynsym_start = .;
        *(.dynsym)
    }

    .bss : {
        __bss_start = .;
        *(.bss)
         . = ALIGN(4);
        _end = .;
    }

    /DISCARD/ : { *(.dynstr*) }
    /DISCARD/ : { *(.dynamic*) }
    /DISCARD/ : { *(.plt*) }
    /DISCARD/ : { *(.interp*) }
    /DISCARD/ : { *(.gnu*) }
}

并且宏CONFIG_SYS_NAND_U_BOOT_SIZE是u-boot的最终大小的选项,CONFIG_SYS_TEXT_BASE保存文本的基地址,现在我怀疑为什么是{{1被放置在ELF允许的大小之外

它被ELF淘汰了,不!当我完成ELF的objdump它出现在它中时,请参见下面的图片

enter image description here

0 个答案:

没有答案