20000317 sourceware import
This commit is contained in:
		
							
								
								
									
										121
									
								
								libgloss/mips/lsi.ld
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								libgloss/mips/lsi.ld
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,121 @@ | ||||
| /* The following TEXT start address leaves space for the monitor | ||||
|    workspace. */ | ||||
|  | ||||
| ENTRY(_start) | ||||
| OUTPUT_ARCH("mips:4000") | ||||
| OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-littlemips") | ||||
| GROUP(-lc -llsi -lgcc) | ||||
| SEARCH_DIR(.) | ||||
| __DYNAMIC  =  0; | ||||
|  | ||||
| /* | ||||
|  * Allocate the stack to be at the top of memory, since the stack | ||||
|  * grows down | ||||
|  */ | ||||
| PROVIDE (__stack = 0); | ||||
| /* PROVIDE (__global = 0); */ | ||||
|  | ||||
| /* | ||||
|  * Initalize some symbols to be zero so we can reference them in the | ||||
|  * crt0 without core dumping. These functions are all optional, but | ||||
|  * we do this so we can have our crt0 always use them if they exist.  | ||||
|  * This is so BSPs work better when using the crt0 installed with gcc. | ||||
|  * We have to initalize them twice, so we multiple object file | ||||
|  * formats, as some prepend an underscore. | ||||
|  */ | ||||
| PROVIDE (hardware_init_hook = 0); | ||||
| PROVIDE (software_init_hook = 0); | ||||
|  | ||||
| SECTIONS | ||||
| {	 | ||||
|   . = 0xA0020000; | ||||
|   .text : { | ||||
|      _ftext = . ; | ||||
|     *(.init) | ||||
|      eprol  =  .; | ||||
|     *(.text) | ||||
|     *(.text.*) | ||||
|     *(.gnu.linkonce.t*) | ||||
|     PROVIDE (__runtime_reloc_start = .); | ||||
|     *(.rel.sdata) | ||||
|     PROVIDE (__runtime_reloc_stop = .); | ||||
|     *(.fini) | ||||
|      etext  =  .; | ||||
|      _etext  =  .; | ||||
|   } | ||||
|    | ||||
|   .ctors    : | ||||
|   { | ||||
|     /* 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)) | ||||
|  | ||||
|     /* We don't want to include the .ctor section from | ||||
|        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) .ctors)) | ||||
|     KEEP (*(SORT(.ctors.*))) | ||||
|     KEEP (*(.ctors)) | ||||
|   } | ||||
|  | ||||
|   .dtors    : | ||||
|   { | ||||
|     KEEP (*crtbegin.o(.dtors)) | ||||
|     KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) | ||||
|     KEEP (*(SORT(.dtors.*))) | ||||
|     KEEP (*(.dtors)) | ||||
|   } | ||||
|  | ||||
|   . = .; | ||||
|   .rodata : { | ||||
|     *(.rdata) | ||||
|     *(.rodata) | ||||
|     *(.rodata.*) | ||||
|     *(.gnu.linkonce.r*) | ||||
|   } | ||||
|    _fdata = ALIGN(16); | ||||
|   .data : { | ||||
|     *(.data) | ||||
|     *(.data.*) | ||||
|     *(.gnu.linkonce.d*) | ||||
|     CONSTRUCTORS | ||||
|   } | ||||
|   . = ALIGN(8); | ||||
|   _gp = . + 0x8000; | ||||
|   __global = _gp; | ||||
|   .lit8 : { | ||||
|     *(.lit8) | ||||
|   } | ||||
|   .lit4 : { | ||||
|     *(.lit4) | ||||
|   } | ||||
|   .sdata : { | ||||
|     *(.sdata) | ||||
|     *(.sdata.*) | ||||
|     *(.gnu.linkonce.s*) | ||||
|   } | ||||
|    edata  =  .; | ||||
|    _edata  =  .; | ||||
|    _fbss = .; | ||||
|   .sbss : { | ||||
|     *(.sbss) | ||||
|     *(.scommon) | ||||
|   } | ||||
|   .bss : { | ||||
|     _bss_start = . ; | ||||
|     *(.bss) | ||||
|     *(COMMON) | ||||
|   } | ||||
|    end = .; | ||||
|    _end = .; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user