cris.ld
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* ld script to make the Linux/CRIS kernel
  2.  * Authors: Bjorn Wesen (bjornw@axis.com)
  3.  *
  4.  * It is VERY DANGEROUS to fiddle around with the symbols in this
  5.  * script. It is for example quite vital that all generated sections
  6.  * that are used are actually named here, otherwise the linker will
  7.  * put them at the end, where the init stuff is which is FREED after
  8.  * the kernel has booted. 
  9.  */
  10. SECTIONS
  11. {
  12. . = @CONFIG_ETRAX_DRAM_VIRTUAL_BASE@;
  13. dram_start = .;
  14. ibr_start = .;
  15. . = . + 0x4000; /* see head.S and pages reserved at the start */
  16. _text = .;                    /* Text and read-only data */
  17. text_start = .;              /* lots of aliases */
  18. _stext = .;
  19. __stext = .;
  20. .text : {
  21. *(.text)
  22. *(.fixup)
  23. *(.text.__*)
  24. }
  25.    .text.lock : { *(.text.lock) }        /* out-of-line lock text */
  26. _etext = . ;                  /* End of text section */ 
  27. __etext = .;
  28. .rodata : { *(.rodata) *(.rodata.__*) }
  29. .kstrtab : { *(.kstrtab) }
  30. . = ALIGN(4);                /* Exception table */
  31.    __start___ex_table = .;
  32.    __ex_table : { *(__ex_table) }
  33.    __stop___ex_table = .;
  34.    __start___ksymtab = .;        /* Kernel symbol table */
  35.    __ksymtab : { *(__ksymtab) }
  36.    __stop___ksymtab = .;
  37. . = ALIGN (4);
  38. ___data_start = . ;
  39. __Sdata = . ;
  40. .data : {                     /* Data */
  41. *(.data)
  42. }
  43. __edata = . ;                 /* End of data section */
  44. _edata = . ;
  45. . = ALIGN(8192);              /* init_task and stack, must be aligned */
  46.    .data.init_task : { *(.data.init_task) }
  47.    . = ALIGN(8192);              /* Init code and data */
  48.    __init_begin = .;
  49.    .text.init : { *(.text.init) }
  50.    .data.init : { *(.data.init) }
  51.    . = ALIGN(16);
  52.    __setup_start = .;
  53.    .setup.init : { *(.setup.init) }
  54.    __setup_end = .;
  55.    .initcall.init : {
  56. __initcall_start = .;
  57. *(.initcall.init);
  58. __initcall_end = .;
  59. /* We fill to the next page, so we can discard all init
  60.    pages without needing to consider what payload might be
  61.    appended to the kernel image.  */
  62. FILL (0);
  63. . = ALIGN (8192);
  64. }
  65. __vmlinux_end = .;            /* last address of the physical file */
  66.    __init_end = .;
  67. __data_end = . ;              /* Move to _edata ? */
  68. __bss_start = .;              /* BSS */
  69. .bss : {
  70. *(COMMON)
  71. *(.bss)
  72. }
  73. . =  ALIGN (0x20);
  74. _end = .;
  75. __end = .;
  76. /* Sections to be discarded */
  77.    /DISCARD/ : {
  78.          *(.text.exit)
  79.          *(.data.exit)
  80. *(.exitcall.exit)
  81.         }
  82. dram_end = dram_start + @CONFIG_ETRAX_DRAM_SIZE_M@*1024*1024;
  83. }