|  | /* | 
|  | * ld script to make compressed SuperH/shmedia Linux kernel+decompression | 
|  | *		bootstrap | 
|  | * Modified by Stuart Menefy from arch/sh/vmlinux.lds.S written by Niibe Yutaka | 
|  | */ | 
|  |  | 
|  |  | 
|  | #ifdef CONFIG_LITTLE_ENDIAN | 
|  | /* OUTPUT_FORMAT("elf32-sh64l-linux", "elf32-sh64l-linux", "elf32-sh64l-linux") */ | 
|  | #define NOP 0x6ff0fff0 | 
|  | #else | 
|  | /* OUTPUT_FORMAT("elf32-sh64", "elf32-sh64", "elf32-sh64") */ | 
|  | #define NOP 0xf0fff06f | 
|  | #endif | 
|  |  | 
|  | OUTPUT_FORMAT("elf32-sh64-linux") | 
|  | OUTPUT_ARCH(sh) | 
|  | ENTRY(_start) | 
|  |  | 
|  | #define ALIGNED_GAP(section, align) (((ADDR(section)+SIZEOF(section)+(align)-1) & ~((align)-1))-ADDR(section)) | 
|  | #define FOLLOWING(section, align) AT (LOADADDR(section) + ALIGNED_GAP(section,align)) | 
|  |  | 
|  | SECTIONS | 
|  | { | 
|  | _text = .;			/* Text and read-only data */ | 
|  |  | 
|  | .text : { | 
|  | *(.text) | 
|  | *(.text64) | 
|  | *(.text..SHmedia32) | 
|  | *(.fixup) | 
|  | *(.gnu.warning) | 
|  | } = NOP | 
|  | . = ALIGN(4); | 
|  | .rodata : { *(.rodata) } | 
|  |  | 
|  | /* There is no 'real' reason for eight byte alignment, four would work | 
|  | * as well, but gdb downloads much (*4) faster with this. | 
|  | */ | 
|  | . = ALIGN(8); | 
|  | .image : { *(.image) } | 
|  | . = ALIGN(4); | 
|  | _etext = .;			/* End of text section */ | 
|  |  | 
|  | .data :			/* Data */ | 
|  | FOLLOWING(.image, 4) | 
|  | { | 
|  | _data = .; | 
|  | *(.data) | 
|  | } | 
|  | _data_image = LOADADDR(.data);/* Address of data section in ROM */ | 
|  |  | 
|  | _edata = .;			/* End of data section */ | 
|  |  | 
|  | .stack : { stack = .;  _stack = .; } | 
|  |  | 
|  | . = ALIGN(4); | 
|  | __bss_start = .;		/* BSS */ | 
|  | .bss : { | 
|  | *(.bss) | 
|  | } | 
|  | . = ALIGN(4); | 
|  | _end = . ; | 
|  | } |