xref: /haiku/src/system/ldscripts/ppc/boot_loader_cfe.ld (revision 25a7b01d15612846f332751841da3579db313082)
1478dc988SFrançois RevolOUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", "elf32-powerpc")
2478dc988SFrançois RevolOUTPUT_ARCH(powerpc)
3478dc988SFrançois Revol
4478dc988SFrançois RevolENTRY(_start)
5478dc988SFrançois Revol
6478dc988SFrançois RevolSECTIONS
7478dc988SFrançois Revol{
8*68aea339SFrançois Revol	. = 0x200000 + SIZEOF_HEADERS;
9478dc988SFrançois Revol
10478dc988SFrançois Revol	__text_begin = .;
11478dc988SFrançois Revol
12478dc988SFrançois Revol	/* text/read-only data */
13478dc988SFrançois Revol	.text :	{ *(.text .text.* .gnu.linkonce.t.*) }
14478dc988SFrançois Revol
15478dc988SFrançois Revol	.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
16478dc988SFrançois Revol	.sdata2 : { *(.sdata2) }
17478dc988SFrançois Revol
18478dc988SFrançois Revol	/* writable data  */
19478dc988SFrançois Revol	/* align to the same offset in the next page (for performance reasons
20478dc988SFrançois Revol	   (not that it really matters in the boot loader)) */
21478dc988SFrançois Revol	. = ALIGN(0x1000) + 0x1000 + (. & (0x1000 - 1));
22478dc988SFrançois Revol
23478dc988SFrançois Revol	__ctor_list = .;
24478dc988SFrançois Revol	.ctors : { *(.ctors) }
25478dc988SFrançois Revol	__ctor_end = .;
26478dc988SFrançois Revol
27478dc988SFrançois Revol	__data_start = .;
28478dc988SFrançois Revol	.data : { *(.data .gnu.linkonce.d.*) }
29478dc988SFrançois Revol	.data.rel.ro : { *(.data.rel.ro.local .data.rel.ro*) }
30478dc988SFrançois Revol	.got : { *(.got .got2) }
31478dc988SFrançois Revol	.sdata : { *(.sdata .sdata.* .gnu.linkonce.s.*) }
32478dc988SFrançois Revol
33478dc988SFrançois Revol	/* uninitialized data (in same segment as writable data) */
34478dc988SFrançois Revol	__bss_start = .;
35478dc988SFrançois Revol	.sbss : { *(.sbss .sbss.* .gnu.linkonce.sb.*) }
36478dc988SFrançois Revol	.bss : {
37478dc988SFrançois Revol		*(.bss .bss.* .gnu.linkonce.b.*)
38478dc988SFrançois Revol		. = ALIGN(0x1000);
39478dc988SFrançois Revol	}
40478dc988SFrançois Revol
41478dc988SFrançois Revol	_end = . ;
42478dc988SFrançois Revol
43478dc988SFrançois Revol	/* Strip unnecessary stuff */
44478dc988SFrançois Revol	/DISCARD/ : { *(.comment .note .eh_frame .dtors .debug_*) }
45478dc988SFrançois Revol}
46