diff options
Diffstat (limited to 'c/src/lib/libbsp/sparc64/shared/startup/linkcmds')
-rw-r--r-- | c/src/lib/libbsp/sparc64/shared/startup/linkcmds | 218 |
1 files changed, 0 insertions, 218 deletions
diff --git a/c/src/lib/libbsp/sparc64/shared/startup/linkcmds b/c/src/lib/libbsp/sparc64/shared/startup/linkcmds deleted file mode 100644 index 2f9db3a087..0000000000 --- a/c/src/lib/libbsp/sparc64/shared/startup/linkcmds +++ /dev/null @@ -1,218 +0,0 @@ -/* linkcmds - */ - -/* - * For alignment, SPARC v9 specifies that instructions are 4-byte aligned, - * and the worst-case alignment requirements for data are for quad-word - * accesses, which must be 16-byte aligned. - */ - -/* - * Declare some sizes. - */ -RamBase = DEFINED(RamBase) ? RamBase : 0x0; -RamSize = DEFINED(RamSize) ? RamSize : 4M; -HeapSize = DEFINED(HeapSize) ? HeapSize : 1M; - -RAM_END = RamBase + RamSize; - -/* Default linker script, for normal executables */ -OUTPUT_FORMAT("elf64-sparc") -ENTRY(_start) -STARTUP(start.o) - -MEMORY -{ - ram : ORIGIN = 0x0, LENGTH = 12M -} - -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rel.init : { *(.rel.init) } - .rela.init : { *(.rela.init) } - .rel.text : - { - *(.rel.text) - *(.rel.text.*) - *(.rel.gnu.linkonce.t*) - } - .rela.text : - { - *(.rela.text) - *(.rela.text.*) - *(.rela.gnu.linkonce.t*) - } - .rel.fini : { *(.rel.fini) } - .rela.fini : { *(.rela.fini) } - .rel.rodata : - { - *(.rel.rodata) - *(.rel.rodata.*) - *(.rel.gnu.linkonce.r*) - } - .rela.rodata : - { - *(.rela.rodata) - *(.rela.rodata.*) - *(.rela.gnu.linkonce.r*) - } - .rel.data : - { - *(.rel.data) - *(.rel.data.*) - *(.rel.gnu.linkonce.d*) - } - .rela.data : - { - *(.rela.data) - *(.rela.data.*) - *(.rela.gnu.linkonce.d*) - } - .rel.ctors : { *(.rel.ctors) } - .rela.ctors : { *(.rela.ctors) } - .rel.dtors : { *(.rel.dtors) } - .rela.dtors : { *(.rela.dtors) } - .rel.got : { *(.rel.got) } - .rela.got : { *(.rela.got) } - .rel.bss : { *(.rel.bss) } - .rela.bss : { *(.rela.bss) } - .rel.plt : { *(.rel.plt) } - .rela.plt : { *(.rela.plt) } - /* Internal text space or external memory */ - .text 0x4000 : AT (0x4000) - { - *(BOOTSTRAP); - *(.text*) - - KEEP (*(.init)) - KEEP (*(.fini)) - - /* - * Special FreeBSD sysctl sections. - */ - . = ALIGN (16); - __start_set_sysctl_set = .; - *(set_sysctl_*); - __stop_set_sysctl_set = ABSOLUTE(.); - *(set_domain_*); - *(set_pseudo_*); - - *(.eh_frame) - . = ALIGN (16); - - *(.gnu.linkonce.t*) - *(.gcc_except_table*) - - /* - * C++ constructors - */ - /* gcc uses crtbegin.o to find the start of - the constructors, so we make sure it is - first. Because this is a wildcard, it - doesn't matter if the user does not - actually link against crtbegin.o; the - linker won't look for a file to match a - wildcard. The wildcard also means that it - doesn't matter which directory crtbegin.o - is in. */ - KEEP (*crtbegin.o(.ctors)) - KEEP (*crtbegin?.o(.ctors)) - /* We don't want to include the .ctor section from - the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last */ - KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - KEEP (*crtbegin.o(.dtors)) - KEEP (*crtbegin?.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - - _rodata_start = . ; - *(.rodata*) - KEEP (*(SORT(.rtemsroset.*))) - *(.gnu.linkonce.r*) - _erodata = ALIGN( 0x10 ) ; - - *(.lit) - *(.shdata) - - . = ALIGN (16); - _endtext = . ; - _etext = . ; - } > ram - - .tdata : AT (ADDR (.text) + SIZEOF (.text)) { - _TLS_Data_begin = .; - *(.tdata .tdata.* .gnu.linkonce.td.*) - _TLS_Data_end = .; - } > ram - .tbss : AT (ADDR (.tdata) + SIZEOF (.tdata)) { - _TLS_BSS_begin = .; - *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) - _TLS_BSS_end = .; - } > ram - _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin; - _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin; - _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin; - _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin; - _TLS_Size = _TLS_BSS_end - _TLS_Data_begin; - _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss)); - - .data : AT (ADDR (.tbss) + SIZEOF (.tbss)) - { - PROVIDE (__data_start = .) ; - data_start = . ; - _data_start = . ; - *(.data) - *(.data*) - KEEP (*(SORT(.rtemsrwset.*))) - *(.rodata) /* We need to include .rodata here if gcc is used */ - *(.rodata*) /* with -fdata-sections. */ - *(.gnu.linkonce.d*) - . = ALIGN(2); - edata = . ; - _edata = . ; - PROVIDE (__data_end = .) ; - } > ram - - /* XXX - __data_load_start = LOADADDR(.data); - __data_load_end = __data_load_start + SIZEOF(.data); - */ - . = ALIGN (16); - .dynamic : { *(.dynamic) } >ram - .jcr : { *(.jcr) } > ram - .shbss : { *(.shbss) } > ram - .bss : - { - FILL(0x00000000); - . = ALIGN(16); - __bss_start = ALIGN(0x8); - bss_start = .; - bss_start = .; - *(.bss .bss* .gnu.linkonce.b*) - *(COMMON) - . = ALIGN (16); - end = .; - _end = .; - __end = .; - - . = ALIGN (16); /* arbitrary alignment */ - PROVIDE (WorkAreaBase = .); - . += HeapSize; - PROVIDE (HeapBase = .); - . += HeapSize; - } > ram -} - - |