Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Find attached the patch for the elf2flt utility. Except the elf2flt.c…
… file, I have slightly modified the Makefile.in. The reason for this is to check the target architecture and if it is set to "e1", another linker script is installed. The reason for this alchemy is that our linker needs some sections that are included in the e1-elf2flt.ld script. Patch submitted by Yannis Mitsos <gmitsos@telecom.ntua.gr>.
- Loading branch information
Greg Ungerer
committed
Nov 11, 2003
1 parent
05cf909
commit dc6cb8c
Showing
4 changed files
with
413 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
|
||
ENTRY (__start) | ||
|
||
MEMORY { | ||
flatmem : ORIGIN = 0x0, LENGTH = 0xfffffff | ||
} | ||
|
||
SECTIONS { | ||
.G6 (DEFINED(G6Base) ? G6Base : 0x0) : { | ||
*(.G6) | ||
} | ||
.G7 (DEFINED(G7Base) ? G7Base : 0x0) : { | ||
*(.G7) | ||
} | ||
.G8 (DEFINED(G8Base) ? G8Base : 0x0) : { | ||
*(.G8) | ||
} | ||
.G9 (DEFINED(G9Base) ? G9Base : 0) : { | ||
*(.G9) | ||
} | ||
.G10 (DEFINED(G10Base) ? G10Base : 0) : { | ||
*(.G10) | ||
} | ||
.G11 (DEFINED(G11Base) ? G11Base : 0) : { | ||
*(.G11) | ||
} | ||
.G12 (DEFINED(G12Base) ? G12Base : 0) : { | ||
*(.G12) | ||
} | ||
.G13 (DEFINED(G13Base) ? G13Base : 0) : { | ||
*(.G13) | ||
} | ||
.text 0x0 : { | ||
. = . + 4; | ||
. = ALIGN(0x4) ; | ||
_stext = . ; | ||
*(.text) | ||
*(.text.*) | ||
*(.gnu.warning) | ||
*(.stub) | ||
*(.gnu.linkonce.t*) | ||
*(.glue_7t) | ||
*(.glue_7) | ||
*(.jcr) | ||
*(.init) | ||
*(.fini) | ||
|
||
W_RODAT *(.rodata) | ||
W_RODAT *(.rodata1) | ||
W_RODAT *(.rodata.*) | ||
|
||
/* This is special code area at the end of the normal | ||
text section. It contains a small lookup table at | ||
the start followed by the code pointed to by entries | ||
in the lookup table. */ | ||
. = ALIGN (4) ; | ||
PROVIDE(__ctbp = .); | ||
*(.call_table_data) | ||
*(.call_table_text) | ||
|
||
. = ALIGN(0x20) ; | ||
_etext = . ; | ||
} > flatmem | ||
.data : { | ||
. = ALIGN(0x4) ; | ||
_sdata = . ; | ||
__data_start = . ; | ||
data_start = . ; | ||
*(.got.plt) | ||
*(.got) | ||
FILL(0) ; | ||
. = ALIGN(0x20) ; | ||
LONG(-1) | ||
. = ALIGN(0x20) ; | ||
R_RODAT *(.rodata) | ||
R_RODAT *(.rodata1) | ||
R_RODAT *(.rodata.*) | ||
*(.gnu.linkonce.r*) | ||
*(.data) | ||
*(.data1) | ||
*(.data.*) | ||
*(.gnu.linkonce.d*) | ||
*(.data1) | ||
*(.eh_frame) | ||
*(.gcc_except_table) | ||
|
||
/* Microblaze has .sdata and .sbss (small bss). They must | ||
be contiguous, so please don't move any of this. JW */ | ||
_ssrw = . ; | ||
*(.sdata) | ||
*(.sdata.*) | ||
*(.sbss) /* Don't move this! */ | ||
_essrw = . ; | ||
|
||
_ssrw_size = _essrw - _ssrw; | ||
PROVIDE(_SDA_BASE_ = _ssrw + (_ssrw_size / 2)); | ||
|
||
*(.gnu.linkonce.s.*) | ||
*(__libc_atexit) | ||
*(__libc_subinit) | ||
*(__libc_subfreeres) | ||
*(.note.ABI-tag) | ||
|
||
/* microblaze-specific read-only small data area | ||
and associated locating symbols */ | ||
_ssro = . ; | ||
*(.sdata2) | ||
_essro = . ; | ||
_ssro_size = _essro - _ssro; | ||
PROVIDE(_SDA2_BASE_ = _ssro + (_ssro_size / 2)); | ||
|
||
. = ALIGN(4) ; | ||
__CTOR_LIST__ = .; | ||
LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) | ||
*(.ctors) | ||
LONG(0) | ||
__CTOR_END__ = .; | ||
__DTOR_LIST__ = .; | ||
LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) | ||
*(.dtors) | ||
LONG(0) | ||
__DTOR_END__ = .; | ||
|
||
. = ALIGN(0x10) ; | ||
_edata = . ; | ||
} > flatmem | ||
.bss : { | ||
. = ALIGN(0x4) ; | ||
_sbss = ALIGN(0x4) ; | ||
__bss_start = . ; | ||
*(.dynsbss) | ||
*(.sbss) | ||
*(.sbss.*) | ||
*(.scommon) | ||
*(.dynbss) | ||
*(.bss) | ||
*(.bss.*) | ||
*(.bss*) | ||
*(.gnu.linkonce.b*) | ||
*(COMMON) | ||
. = ALIGN(0x10) ; | ||
_ebss = . ; | ||
_end = . ; | ||
end = . ; | ||
} > flatmem | ||
|
||
.junk 0 : { *(.rel*) *(.rela*) } | ||
/* Stabs debugging sections. */ | ||
.stab 0 : { *(.stab) } | ||
.stabstr 0 : { *(.stabstr) } | ||
.stab.excl 0 : { *(.stab.excl) } | ||
.stab.exclstr 0 : { *(.stab.exclstr) } | ||
.stab.index 0 : { *(.stab.index) } | ||
.stab.indexstr 0 : { *(.stab.indexstr) } | ||
.comment 0 : { *(.comment) } | ||
.debug_abbrev 0 : { *(.debug_abbrev) } | ||
.debug_info 0 : { *(.debug_info) } | ||
.debug_line 0 : { *(.debug_line) } | ||
.debug_pubnames 0 : { *(.debug_pubnames) } | ||
.debug_aranges 0 : { *(.debug_aranges) } | ||
} |
Oops, something went wrong.