vmlinux.lds.S 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #include <asm-generic/vmlinux.lds.h>
  2. OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT)
  3. #undef i386
  4. #include <asm/cache.h>
  5. #include <asm/page_types.h>
  6. #ifdef CONFIG_X86_64
  7. OUTPUT_ARCH(i386:x86-64)
  8. ENTRY(startup_64)
  9. #else
  10. OUTPUT_ARCH(i386)
  11. ENTRY(startup_32)
  12. #endif
  13. SECTIONS
  14. {
  15. /* Be careful parts of head_64.S assume startup_32 is at
  16. * address 0.
  17. */
  18. . = 0;
  19. .head.text : {
  20. _head = . ;
  21. HEAD_TEXT
  22. _ehead = . ;
  23. }
  24. .rodata..compressed : {
  25. *(.rodata..compressed)
  26. }
  27. .text : {
  28. _text = .; /* Text */
  29. *(.text)
  30. *(.text.*)
  31. _etext = . ;
  32. }
  33. .rodata : {
  34. _rodata = . ;
  35. *(.rodata) /* read-only data */
  36. *(.rodata.*)
  37. _erodata = . ;
  38. }
  39. .got : {
  40. _got = .;
  41. KEEP(*(.got.plt))
  42. KEEP(*(.got))
  43. _egot = .;
  44. }
  45. .data : {
  46. _data = . ;
  47. *(.data)
  48. *(.data.*)
  49. _edata = . ;
  50. }
  51. . = ALIGN(L1_CACHE_BYTES);
  52. .bss : {
  53. _bss = . ;
  54. *(.bss)
  55. *(.bss.*)
  56. *(COMMON)
  57. . = ALIGN(8); /* For convenience during zeroing */
  58. _ebss = .;
  59. }
  60. #ifdef CONFIG_X86_64
  61. . = ALIGN(PAGE_SIZE);
  62. .pgtable : {
  63. _pgtable = . ;
  64. *(.pgtable)
  65. _epgtable = . ;
  66. }
  67. #endif
  68. . = ALIGN(PAGE_SIZE); /* keep ZO size page aligned */
  69. _end = .;
  70. }