| /* |
| * wakeup.ld |
| * |
| * Linker script for the real-mode wakeup code |
| */ |
| #undef i386 |
| #include "wakeup.h" |
| |
| OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") |
| OUTPUT_ARCH(i386) |
| ENTRY(_start) |
| |
| SECTIONS |
| { |
| . = 0; |
| .text : { |
| *(.text*) |
| } |
| |
| . = ALIGN(16); |
| .rodata : { |
| *(.rodata*) |
| } |
| |
| .videocards : { |
| video_cards = .; |
| *(.videocards) |
| video_cards_end = .; |
| } |
| |
| . = ALIGN(16); |
| .data : { |
| *(.data*) |
| } |
| |
| .signature : { |
| end_signature = .; |
| LONG(0x65a22c82) |
| } |
| |
| . = ALIGN(16); |
| .bss : { |
| __bss_start = .; |
| *(.bss) |
| __bss_end = .; |
| } |
| |
| . = HEADER_OFFSET; |
| .header : { |
| *(.header) |
| } |
| |
| . = ALIGN(16); |
| _end = .; |
| |
| /DISCARD/ : { |
| *(.note*) |
| } |
| |
| . = ASSERT(_end <= WAKEUP_SIZE, "Wakeup too big!"); |
| } |