1#include <asm-generic/vmlinux.lds.h>
2#include <asm/page.h>
3#include "sizes.h"
4
5#ifndef CONFIG_64BIT
6OUTPUT_FORMAT("elf32-hppa-linux")
7OUTPUT_ARCH(hppa)
8#else
9OUTPUT_FORMAT("elf64-hppa-linux")
10OUTPUT_ARCH(hppa:hppa2.0w)
11#endif
12
13ENTRY(startup)
14
15SECTIONS
16{
17	/* palo loads at 0x60000 */
18	/* loaded kernel will move to 0x10000 */
19	. = 0xe0000;    /* should not overwrite palo code */
20
21	.head.text : {
22		_head = . ;
23		HEAD_TEXT
24		_ehead = . ;
25	}
26
27	/* keep __gp below 0x1000000 */
28#ifdef CONFIG_64BIT
29	. = ALIGN(16);
30	/* Linkage tables */
31	.opd : {
32		*(.opd)
33	} PROVIDE (__gp = .);
34	.plt : {
35		*(.plt)
36	}
37	.dlt : {
38		*(.dlt)
39	}
40#endif
41	_startcode_end = .;
42
43	/* bootloader code and data starts behind area of extracted kernel */
44	. = (SZ_end - SZparisc_kernel_start + KERNEL_BINARY_TEXT_START);
45
46	/* align on next page boundary */
47	. = ALIGN(4096);
48	.text :	{
49		_text = .;	/* Text */
50		*(.text)
51		*(.text.*)
52		_etext = . ;
53	}
54	. = ALIGN(8);
55	.data :	{
56		_data = . ;
57		*(.data)
58		*(.data.*)
59		_edata = . ;
60	}
61	. = ALIGN(8);
62	.rodata : {
63		_rodata = . ;
64		*(.rodata)	 /* read-only data */
65		*(.rodata.*)
66		_erodata = . ;
67	}
68	. = ALIGN(8);
69	.rodata.compressed : {
70		*(.rodata.compressed)
71	}
72	. = ALIGN(8);
73	.bss : {
74		_bss = . ;
75		*(.bss)
76		*(.bss.*)
77		*(COMMON)
78		. = ALIGN(4096);
79		_ebss = .;
80	}
81
82	STABS_DEBUG
83	.note 0 : { *(.note) }
84
85	/* Sections to be discarded */
86	DISCARDS
87	/DISCARD/ : {
88#ifdef CONFIG_64BIT
89		/* temporary hack until binutils is fixed to not emit these
90		 * for static binaries
91		 */
92		*(.PARISC.unwind)	/* no unwind data */
93		*(.interp)
94		*(.dynsym)
95		*(.dynstr)
96		*(.dynamic)
97		*(.hash)
98		*(.gnu.hash)
99#endif
100	}
101}
102