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