vmlinux_32.lds.S 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. . = ALIGN(4);
  2. .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) {
  3. __alt_instructions = .;
  4. *(.altinstructions)
  5. __alt_instructions_end = .;
  6. }
  7. .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) {
  8. *(.altinstr_replacement)
  9. }
  10. . = ALIGN(4);
  11. .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {
  12. __parainstructions = .;
  13. *(.parainstructions)
  14. __parainstructions_end = .;
  15. }
  16. /*
  17. * .exit.text is discard at runtime, not link time, to deal with
  18. * references from .altinstructions and .eh_frame
  19. */
  20. .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {
  21. EXIT_TEXT
  22. }
  23. .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) {
  24. EXIT_DATA
  25. }
  26. #if defined(CONFIG_BLK_DEV_INITRD)
  27. . = ALIGN(PAGE_SIZE);
  28. .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
  29. __initramfs_start = .;
  30. *(.init.ramfs)
  31. __initramfs_end = .;
  32. }
  33. #endif
  34. PERCPU(PAGE_SIZE)
  35. . = ALIGN(PAGE_SIZE);
  36. /* freed after init ends here */
  37. /* BSS */
  38. .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
  39. __init_end = .;
  40. __bss_start = .;
  41. *(.bss.page_aligned)
  42. *(.bss)
  43. . = ALIGN(4);
  44. __bss_stop = .;
  45. }
  46. .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
  47. . = ALIGN(PAGE_SIZE);
  48. __brk_base = .;
  49. . += 64 * 1024; /* 64k alignment slop space */
  50. *(.brk_reservation) /* areas brk users have reserved */
  51. __brk_limit = .;
  52. }
  53. .end : AT(ADDR(.end) - LOAD_OFFSET) {
  54. _end = . ;
  55. }
  56. /* Sections to be discarded */
  57. /DISCARD/ : {
  58. *(.exitcall.exit)
  59. *(.discard)
  60. }