|  | #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 = .; | 
|  | } |