wakeup.lds.S 710 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * wakeup.ld
  3. *
  4. * Linker script for the real-mode wakeup code
  5. */
  6. #undef i386
  7. #include "wakeup.h"
  8. OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
  9. OUTPUT_ARCH(i386)
  10. ENTRY(_start)
  11. SECTIONS
  12. {
  13. . = 0;
  14. .text : {
  15. *(.text*)
  16. }
  17. . = ALIGN(16);
  18. .rodata : {
  19. *(.rodata*)
  20. }
  21. .videocards : {
  22. video_cards = .;
  23. *(.videocards)
  24. video_cards_end = .;
  25. }
  26. . = ALIGN(16);
  27. .data : {
  28. *(.data*)
  29. }
  30. .signature : {
  31. end_signature = .;
  32. LONG(0x65a22c82)
  33. }
  34. . = ALIGN(16);
  35. .bss : {
  36. __bss_start = .;
  37. *(.bss)
  38. __bss_end = .;
  39. }
  40. . = HEADER_OFFSET;
  41. .header : {
  42. *(.header)
  43. }
  44. . = ALIGN(16);
  45. _end = .;
  46. /DISCARD/ : {
  47. *(.note*)
  48. }
  49. . = ASSERT(_end <= WAKEUP_SIZE, "Wakeup too big!");
  50. }