1/* 2 * Copyright 2006, 2007 Freescale Semiconductor, Inc. 3 * 4 * See file CREDITS for list of people who contributed to this 5 * project. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as 9 * published by the Free Software Foundation; either version 2 of 10 * the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 20 * MA 02111-1307 USA 21 */ 22 23OUTPUT_ARCH(powerpc) 24 25SECTIONS 26{ 27 28 /* Read-only sections, merged into text segment: */ 29 .text : 30 { 31 arch/powerpc/cpu/mpc86xx/start.o (.text*) 32 arch/powerpc/cpu/mpc86xx/traps.o (.text*) 33 *(.text*) 34 } 35 _etext = .; 36 PROVIDE (etext = .); 37 .rodata : 38 { 39 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) 40 } 41 42 /* Read-write section, merged into data segment: */ 43 . = (. + 0x00FF) & 0xFFFFFF00; 44 _erotext = .; 45 PROVIDE (erotext = .); 46 .reloc : 47 { 48 _GOT2_TABLE_ = .; 49 KEEP(*(.got2)) 50 KEEP(*(.got)) 51 PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4); 52 _FIXUP_TABLE_ = .; 53 KEEP(*(.fixup)) 54 } 55 __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1; 56 __fixup_entries = (. - _FIXUP_TABLE_) >> 2; 57 58 .data : 59 { 60 *(.data*) 61 *(.sdata*) 62 } 63 _edata = .; 64 PROVIDE (edata = .); 65 66 . = .; 67 68 . = ALIGN(4); 69 .u_boot_list : { 70 KEEP(*(SORT(.u_boot_list*))); 71 } 72 73 . = .; 74 __start___ex_table = .; 75 __ex_table : { *(__ex_table) } 76 __stop___ex_table = .; 77 78 . = ALIGN(256); 79 __init_begin = .; 80 .text.init : { *(.text.init) } 81 .data.init : { *(.data.init) } 82 . = ALIGN(256); 83 __init_end = .; 84 85 __bss_start = .; 86 .bss (NOLOAD) : 87 { 88 *(.bss*) 89 *(.sbss*) 90 *(COMMON) 91 . = ALIGN(4); 92 } 93 __bss_end = . ; 94 PROVIDE (end = .); 95} 96