vmlinux.lds.S 1000 B

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