0001
0002 #include <asm-generic/vmlinux.lds.h>
0003
0004 #ifdef CONFIG_PPC64_BOOT_WRAPPER
0005 OUTPUT_ARCH(powerpc:common64)
0006 #else
0007 OUTPUT_ARCH(powerpc:common)
0008 #endif
0009 ENTRY(_zimage_start)
0010 EXTERN(_zimage_start)
0011 SECTIONS
0012 {
0013 .text :
0014 {
0015 _start = .;
0016 *(.text)
0017 *(.fixup)
0018 _etext = .;
0019 }
0020 . = ALIGN(4096);
0021 .data :
0022 {
0023 *(.rodata*)
0024 *(.data*)
0025 *(.sdata*)
0026 #ifndef CONFIG_PPC64_BOOT_WRAPPER
0027 *(.got2)
0028 #endif
0029 }
0030 .dynsym : { *(.dynsym) }
0031 .dynstr : { *(.dynstr) }
0032 .dynamic :
0033 {
0034 __dynamic_start = .;
0035 *(.dynamic)
0036 }
0037
0038 #ifdef CONFIG_PPC64_BOOT_WRAPPER
0039 .got : ALIGN(256)
0040 {
0041 *(.got .toc)
0042 }
0043 #endif
0044
0045 .hash : { *(.hash) }
0046 .interp : { *(.interp) }
0047 .rela.dyn :
0048 {
0049 #ifdef CONFIG_PPC64_BOOT_WRAPPER
0050 __rela_dyn_start = .;
0051 #endif
0052 *(.rela*)
0053 }
0054
0055 . = ALIGN(8);
0056 .kernel:dtb :
0057 {
0058 _dtb_start = .;
0059 *(.kernel:dtb)
0060 _dtb_end = .;
0061 }
0062
0063 . = ALIGN(4096);
0064 .kernel:vmlinux.strip :
0065 {
0066 _vmlinux_start = .;
0067 *(.kernel:vmlinux.strip)
0068 _vmlinux_end = .;
0069 }
0070
0071 . = ALIGN(4096);
0072 .kernel:initrd :
0073 {
0074 _initrd_start = .;
0075 *(.kernel:initrd)
0076 _initrd_end = .;
0077 }
0078
0079 . = ALIGN(4096);
0080 .kernel:esm_blob :
0081 {
0082 _esm_blob_start = .;
0083 *(.kernel:esm_blob)
0084 _esm_blob_end = .;
0085 }
0086
0087 . = ALIGN(4096);
0088 .bss :
0089 {
0090 _edata = .;
0091 __bss_start = .;
0092 *(.sbss)
0093 *(.bss)
0094 *(COMMON)
0095 _end = . ;
0096 }
0097 }