setup.ld 822 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. . = ALIGN(16);
  20. .rodata : { *(.rodata*) }
  21. .videocards : {
  22. video_cards = .;
  23. *(.videocards)
  24. video_cards_end = .;
  25. }
  26. . = ALIGN(16);
  27. .data : { *(.data*) }
  28. .signature : {
  29. setup_sig = .;
  30. LONG(0x5a5aaa55)
  31. }
  32. . = ALIGN(16);
  33. .bss :
  34. {
  35. __bss_start = .;
  36. *(.bss)
  37. __bss_end = .;
  38. }
  39. . = ALIGN(16);
  40. _end = .;
  41. /DISCARD/ : { *(.note*) }
  42. . = ASSERT(_end <= 0x8000, "Setup too big!");
  43. . = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!");
  44. }