| #include <asm-generic/vmlinux.lds.h> |
| |
| OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) |
| |
| #undef i386 |
| |
| #include <asm/cache.h> |
| #include <asm/page_types.h> |
| |
| #ifdef CONFIG_X86_64 |
| OUTPUT_ARCH(i386:x86-64) |
| ENTRY(startup_64) |
| #else |
| OUTPUT_ARCH(i386) |
| ENTRY(startup_32) |
| #endif |
| |
| SECTIONS |
| { |
| /* Be careful parts of head_64.S assume startup_32 is at |
| * address 0. |
| */ |
| . = 0; |
| .head.text : { |
| _head = . ; |
| HEAD_TEXT |
| _ehead = . ; |
| } |
| .rodata..compressed : { |
| *(.rodata..compressed) |
| } |
| .text : { |
| _text = .; /* Text */ |
| *(.text) |
| *(.text.*) |
| _etext = . ; |
| } |
| .rodata : { |
| _rodata = . ; |
| *(.rodata) /* read-only data */ |
| *(.rodata.*) |
| _erodata = . ; |
| } |
| .got : { |
| _got = .; |
| KEEP(*(.got.plt)) |
| KEEP(*(.got)) |
| _egot = .; |
| } |
| .data : { |
| _data = . ; |
| *(.data) |
| *(.data.*) |
| _edata = . ; |
| } |
| . = ALIGN(L1_CACHE_BYTES); |
| .bss : { |
| _bss = . ; |
| *(.bss) |
| *(.bss.*) |
| *(COMMON) |
| . = ALIGN(8); /* For convenience during zeroing */ |
| _ebss = .; |
| } |
| #ifdef CONFIG_X86_64 |
| . = ALIGN(PAGE_SIZE); |
| .pgtable : { |
| _pgtable = . ; |
| *(.pgtable) |
| _epgtable = . ; |
| } |
| #endif |
| _end = .; |
| } |