setup.ld 848 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * setup.ld
  3. *
  4. * Linker script for the i386 setup code
  5. */
  6. OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
  7. OUTPUT_ARCH(i386)
  8. ENTRY(_start)
  9. SECTIONS
  10. {
  11. . = 0;
  12. .bstext : { *(.bstext) }
  13. .bsdata : { *(.bsdata) }
  14. . = 497;
  15. .header : { *(.header) }
  16. .inittext : { *(.inittext) }
  17. .initdata : { *(.initdata) }
  18. .text : { *(.text) }
  19. .text32 : { *(.text32) }
  20. . = ALIGN(16);
  21. .rodata : { *(.rodata*) }
  22. .videocards : {
  23. video_cards = .;
  24. *(.videocards)
  25. video_cards_end = .;
  26. }
  27. . = ALIGN(16);
  28. .data : { *(.data*) }
  29. .signature : {
  30. setup_sig = .;
  31. LONG(0x5a5aaa55)
  32. }
  33. . = ALIGN(16);
  34. .bss :
  35. {
  36. __bss_start = .;
  37. *(.bss)
  38. __bss_end = .;
  39. }
  40. . = ALIGN(16);
  41. _end = .;
  42. /DISCARD/ : { *(.note*) }
  43. . = ASSERT(_end <= 0x8000, "Setup too big!");
  44. . = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!");
  45. }