⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ppcpe.sc

📁 基于4个mips核的noc设计
💻 SC
字号:
# A PE linker script for PowerPC.# Loosely based on Steve Chamberlain's pe.sc.# All new mistakes should be credited to Kim Knuttila (krk@cygnus.com)## These are substituted in as variables in order to get '}' in a shell# conditional expansion.INIT='.init : { *(.init) }'FINI='.fini : { *(.fini) }'cat <<EOFOUTPUT_FORMAT(${OUTPUT_FORMAT})${LIB_SEARCH_DIRS}/* Much of this layout was determined by delving into .exe files for   the box generated by other compilers/linkers/etc. This means that   if a particular feature did not happen to appear in one of the    subject files, then it may not be yet supported.*//* It's "mainCRTStartup", not "_mainCRTStartup", and it's located in   one of the two .lib files (libc.lib and kernel32.lib) that currently   must be present on the link line. This means that you must use    "-u mainCRTStartup" to make sure it gets included in the link.*/ENTRY(mainCRTStartup)SECTIONS{  /* text - the usual meaning */  .text ${RELOCATING+ __image_base__ + __section_alignment__ } : 	{	    ${RELOCATING+ *(.init);}	    *(.text)	    *(.gcc_except_table)	    ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; 		        LONG (-1); *(.ctors); *(.ctor); LONG (0); }            ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; 			LONG (-1); *(.dtors); *(.dtor);  LONG (0); }	    ${RELOCATING+ *(.fini);}	    ${RELOCATING+ etext  =  .};	}  /* rdata - Read Only Runtime Data     CTR sections: All of the CRT (read only C runtime data) sections 	appear at the start of the .rdata (read only runtime data) 	section, in the following order. Don't know if it matters or not.	Not all sections are always present either.     .rdata: compiler generated read only data     .xdata: compiler generated exception handling table. (Most docs	seem to suggest that this section is now deprecated infavor	of the ydata section)     .edata: The exported names table.  */  .rdata BLOCK(__section_alignment__) :	{	    *(.CRT\$XCA);	    *(.CRT\$XCC);	    *(.CRT\$XCZ);	    *(.CRT\$XIA);	    *(.CRT\$XIC);	    *(.CRT\$XIZ);	    *(.CRT\$XLA);	    *(.CRT\$XLZ);	    *(.CRT\$XPA);	    *(.CRT\$XPX);	    *(.CRT\$XPZ);	    *(.CRT\$XTA);	    *(.CRT\$XTZ);	    *(.rdata);	    *(.xdata);	}  .edata BLOCK(__section_alignment__) :	{    	    *(.edata);	}  /* data - initialized data     .ydata: exception handling information.     .data: the usual meaning.     .data2: more of the same.     .bss: For some reason, bss appears to be included in the data	section, as opposed to being given a section of it's own.     COMMON:  */  .data BLOCK(__section_alignment__) : 	{	    __data_start__ = . ; 	    *(.ydata);	    *(.data);	    *(.data2);	    __bss_start__ = . ;	    *(.bss) ;	    *(COMMON);	    __bss_end__ = . ;	    ${RELOCATING+ end =  .}; 	    __data_end__ = . ; 	}  /* The exception handling table. A sequence of 5 word entries. Section     address and extent are placed in the DataDirectory.  */  .pdata BLOCK(__section_alignment__) :	{ 						    *(.pdata) 	    ;	}  /* The idata section is chock full of magic bits. 	1. Boundaries around various idata parts are used to initialize	   some of the fields of the DataDirectory. In particular, the	   magic for 2, 4 and 5 are known to be used. Some compilers	   appear to generate magic section symbols for this purpose.	   Where we can, we catch such symbols and use our own. This of	   course is something less than a perfect strategy.	2. The table of contents is placed immediately after idata4.	   The ".private.toc" sections are generated by the ppc bfd. The	   .toc variable is generated by gas, and resolved here. It is	   used to initialized function descriptors (and anyone else who	   needs the address of the module's toc). The only thing 	   interesting about it at all? Most ppc instructions using it	   have a 16bit displacement field. The convention for addressing	   is to initialize the .toc value to 32K past the start of the	   actual toc, and subtract 32K from all references, thus using	   the entire 64K range. Naturally, the reloc code must agree	   on this number or you get pretty stupid results.  */  .idata BLOCK(__section_alignment__) :	{ 						    __idata2_magic__ = .;	    *(.idata\$2);	    __idata3_magic__ = .;	    *(.idata\$3);	    __idata4_magic__ = .;	    *(.idata\$4);	    . = ALIGN(4);	    .toc = . + 32768;	    *(.private.toc);	    __idata5_magic__ = .;	    *(.idata\$5);	    __idata6_magic__ = .;	    *(.idata\$6);	    __idata7_magic__ = .;	    *(.idata\$7);	    ;	}  /* reldata -- data that requires relocation  */  .reldata BLOCK(__section_alignment__) :	{ 						    *(.reldata) 	    ;	}  /* Resources */  .rsrc BLOCK(__section_alignment__) :	{ 						    *(.rsrc\$01)	    *(.rsrc\$02)	    ;	}  .stab BLOCK(__section_alignment__)  ${RELOCATING+(NOLOAD)} :   {    [ .stab ]  }  .stabstr BLOCK(__section_alignment__) ${RELOCATING+(NOLOAD)} :  {    [ .stabstr ]  }  /* The .reloc section is currently generated by the dlltool from Steve      Chamberlain in a second pass of linking. Section address and extent     are placed in the DataDirectory.  */  .reloc BLOCK(__section_alignment__) :	{ 						    *(.reloc)	    ;	}  /* We don't do anything useful with codeview debugger support or the     directive section (yet). Hopefully, we junk them correctly.   */  /DISCARD/ BLOCK(__section_alignment__) : 	{    	    *(.debug\$S)    	    *(.debug\$T)    	    *(.debug\$F)    	    *(.drectve)    	    ;   	}}EOF

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -