Merge branch 'work.lookup' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[sfrench/cifs-2.6.git] / arch / parisc / boot / compressed / vmlinux.lds.S
1 #include <asm-generic/vmlinux.lds.h>
2 #include <asm/page.h>
3 #include "sizes.h"
4
5 #ifndef CONFIG_64BIT
6 OUTPUT_FORMAT("elf32-hppa-linux")
7 OUTPUT_ARCH(hppa)
8 #else
9 OUTPUT_FORMAT("elf64-hppa-linux")
10 OUTPUT_ARCH(hppa:hppa2.0w)
11 #endif
12
13 ENTRY(startup)
14
15 SECTIONS
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                 __start_opd = .;
33                 *(.opd)
34                 __end_opd = .;
35         } PROVIDE (__gp = .);
36         .plt : {
37                 *(.plt)
38         }
39         .dlt : {
40                 *(.dlt)
41         }
42 #endif
43         _startcode_end = .;
44
45         /* vmlinux.bin.gz is here */
46         . = ALIGN(8);
47         .rodata.compressed : {
48                 *(.rodata.compressed)
49         }
50
51         /* bootloader code and data starts behind area of extracted kernel */
52         . = (SZ_end - SZparisc_kernel_start + KERNEL_BINARY_TEXT_START);
53
54         /* align on next page boundary */
55         . = ALIGN(4096);
56         .text : {
57                 _text = .;      /* Text */
58                 *(.text)
59                 *(.text.*)
60                 _etext = . ;
61         }
62         . = ALIGN(8);
63         .data : {
64                 _data = . ;
65                 *(.data)
66                 *(.data.*)
67                 _edata = . ;
68         }
69         . = ALIGN(8);
70         .rodata : {
71                 _rodata = . ;
72                 *(.rodata)       /* read-only data */
73                 *(.rodata.*)
74                 _erodata = . ;
75         }
76         . = ALIGN(8);
77         .bss : {
78                 _bss = . ;
79                 *(.bss)
80                 *(.bss.*)
81                 *(COMMON)
82                 . = ALIGN(4096);
83                 _ebss = .;
84         }
85
86         STABS_DEBUG
87         .note 0 : { *(.note) }
88
89         /* Sections to be discarded */
90         DISCARDS
91         /DISCARD/ : {
92 #ifdef CONFIG_64BIT
93                 /* temporary hack until binutils is fixed to not emit these
94                  * for static binaries
95                  */
96                 *(.PARISC.unwind)       /* no unwind data */
97                 *(.interp)
98                 *(.dynsym)
99                 *(.dynstr)
100                 *(.dynamic)
101                 *(.hash)
102                 *(.gnu.hash)
103 #endif
104         }
105 }