From 98bf65a64067c4a2fe2c2ede367cb26d83e4698c Mon Sep 17 00:00:00 2001 From: marcansoft Date: Fri, 26 Feb 2010 14:03:21 +0000 Subject: [PATCH] Fix up armsrc/ldscript (create proper PHDRs, cleanup) Now explicitly creates PHDRs (to avoid including e.g. ELF headers inside the first PHDR) --- armsrc/ldscript | 54 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/armsrc/ldscript b/armsrc/ldscript index 3281df30..f35fc5fe 100644 --- a/armsrc/ldscript +++ b/armsrc/ldscript @@ -9,42 +9,60 @@ */ INCLUDE ../common/ldscript.common +PHDRS +{ + fpgaimage PT_LOAD FLAGS(4); + text PT_LOAD; + data PT_LOAD; + bss PT_LOAD; +} + ENTRY(Vector) SECTIONS { .fpgaimage : { *(fpga_bit.data) - } >fpgaimage - .start : { *(.startos) } >osimage - .text : { + } >fpgaimage :fpgaimage + + .start : { + *(.startos) + } >osimage :text + + .text : { *(.text) *(.text.*) *(.eh_frame) *(.glue_7) *(.glue_7t) - *(.rodata) - *(.rodata*) + } >osimage :text + + .rodata : { + *(.rodata) + *(.rodata*) *(.version_information) - } >osimage - __end_of_text__ = .; - + } >osimage :text + + . = ALIGN(4); + .data : { - __data_start__ = .; - __data_src_start__ = __end_of_text__; *(.data) *(.data.*) - __data_end__ = .; - } >ram AT>osimage + . = ALIGN(4); + } >ram AT>osimage :data + + __data_src_start__ = LOADADDR(.data); + __data_start__ = ADDR(.data); + __data_end__ = __data_start__ + SIZEOF(.data); .bss : { __bss_start__ = .; *(.bss) *(.bss.*) - } >ram - . = ALIGN(32 / 8); - __bss_end__ = .; + . = ALIGN(4); + __bss_end__ = .; + } >ram :bss - .commonarea (NOLOAD) : { - *(.commonarea) - } >commonarea + .commonarea (NOLOAD) : { + *(.commonarea) + } >commonarea :NONE } -- 2.39.2