1#include <asm-generic/vmlinux.lds.h> 2 3OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) 4 5#undef i386 6 7#include <asm/cache.h> 8#include <asm/page_types.h> 9 10#ifdef CONFIG_X86_64 11OUTPUT_ARCH(i386:x86-64) 12ENTRY(startup_64) 13#else 14OUTPUT_ARCH(i386) 15ENTRY(startup_32) 16#endif 17 18SECTIONS 19{ 20 /* Be careful parts of head_64.S assume startup_32 is at 21 * address 0. 22 */ 23 . = 0; 24 .head.text : { 25 _head = . ; 26 HEAD_TEXT 27 _ehead = . ; 28 } 29 .rodata.compressed : { 30 *(.rodata.compressed) 31 } 32 .text : { 33 _text = .; /* Text */ 34 *(.text) 35 *(.text.*) 36 _etext = . ; 37 } 38 .rodata : { 39 _rodata = . ; 40 *(.rodata) /* read-only data */ 41 *(.rodata.*) 42 _erodata = . ; 43 } 44 .data : { 45 _data = . ; 46 *(.data) 47 *(.data.*) 48 _edata = . ; 49 } 50 . = ALIGN(L1_CACHE_BYTES); 51 .bss : { 52 _bss = . ; 53 *(.bss) 54 *(.bss.*) 55 *(COMMON) 56 . = ALIGN(8); /* For convenience during zeroing */ 57 _ebss = .; 58 } 59#ifdef CONFIG_X86_64 60 . = ALIGN(PAGE_SIZE); 61 .pgtable : { 62 _pgtable = . ; 63 *(.pgtable) 64 _epgtable = . ; 65 } 66#endif 67 _end = .; 68} 69