vmlinux.lds.S 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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/page_types.h>
  5. #ifdef CONFIG_X86_64
  6. OUTPUT_ARCH(i386:x86-64)
  7. ENTRY(startup_64)
  8. #else
  9. OUTPUT_ARCH(i386)
  10. ENTRY(startup_32)
  11. #endif
  12. SECTIONS
  13. {
  14. /* Be careful parts of head_64.S assume startup_32 is at
  15. * address 0.
  16. */
  17. . = 0;
  18. .head.text : {
  19. _head = . ;
  20. HEAD_TEXT
  21. _ehead = . ;
  22. }
  23. .rodata.compressed : {
  24. *(.rodata.compressed)
  25. }
  26. .text : {
  27. _text = .; /* Text */
  28. *(.text)
  29. *(.text.*)
  30. _etext = . ;
  31. }
  32. .rodata : {
  33. _rodata = . ;
  34. *(.rodata) /* read-only data */
  35. *(.rodata.*)
  36. _erodata = . ;
  37. }
  38. .data : {
  39. _data = . ;
  40. *(.data)
  41. *(.data.*)
  42. _edata = . ;
  43. }
  44. . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
  45. .bss : {
  46. _bss = . ;
  47. *(.bss)
  48. *(.bss.*)
  49. *(COMMON)
  50. . = ALIGN(8); /* For convenience during zeroing */
  51. _ebss = .;
  52. }
  53. #ifdef CONFIG_X86_64
  54. . = ALIGN(PAGE_SIZE);
  55. .pgtable : {
  56. _pgtable = . ;
  57. *(.pgtable)
  58. _epgtable = . ;
  59. }
  60. #endif
  61. _end = .;
  62. }