| #include <asm-generic/vmlinux.lds.h> |
| #include <asm/page.h> |
| #include "sizes.h" |
| |
| #ifndef CONFIG_64BIT |
| OUTPUT_FORMAT("elf32-hppa-linux") |
| OUTPUT_ARCH(hppa) |
| #else |
| OUTPUT_FORMAT("elf64-hppa-linux") |
| OUTPUT_ARCH(hppa:hppa2.0w) |
| #endif |
| |
| ENTRY(startup) |
| |
| SECTIONS |
| { |
| /* palo loads at 0x60000 */ |
| /* loaded kernel will move to 0x10000 */ |
| . = 0xe0000; /* should not overwrite palo code */ |
| |
| .head.text : { |
| _head = . ; |
| HEAD_TEXT |
| _ehead = . ; |
| } |
| |
| /* keep __gp below 0x1000000 */ |
| #ifdef CONFIG_64BIT |
| . = ALIGN(16); |
| /* Linkage tables */ |
| .opd : { |
| *(.opd) |
| } PROVIDE (__gp = .); |
| .plt : { |
| *(.plt) |
| } |
| .dlt : { |
| *(.dlt) |
| } |
| #endif |
| _startcode_end = .; |
| |
| /* bootloader code and data starts at least behind area of extracted kernel */ |
| . = MAX(ABSOLUTE(.), (SZ_end - SZparisc_kernel_start + KERNEL_BINARY_TEXT_START)); |
| |
| /* align on next page boundary */ |
| . = ALIGN(4096); |
| .text : { |
| _text = .; /* Text */ |
| *(.text) |
| *(.text.*) |
| _etext = . ; |
| } |
| . = ALIGN(8); |
| .data : { |
| _data = . ; |
| *(.data) |
| *(.data.*) |
| _edata = . ; |
| } |
| . = ALIGN(8); |
| .rodata : { |
| _rodata = . ; |
| *(.rodata) /* read-only data */ |
| *(.rodata.*) |
| _erodata = . ; |
| } |
| . = ALIGN(8); |
| .rodata.compressed : { |
| *(.rodata.compressed) |
| } |
| . = ALIGN(8); |
| .bss : { |
| _bss = . ; |
| *(.bss) |
| *(.bss.*) |
| *(COMMON) |
| . = ALIGN(4096); |
| _ebss = .; |
| } |
| |
| STABS_DEBUG |
| .note 0 : { *(.note) } |
| |
| /* Sections to be discarded */ |
| DISCARDS |
| /DISCARD/ : { |
| #ifdef CONFIG_64BIT |
| /* temporary hack until binutils is fixed to not emit these |
| * for static binaries |
| */ |
| *(.PARISC.unwind) /* no unwind data */ |
| *(.interp) |
| *(.dynsym) |
| *(.dynstr) |
| *(.dynamic) |
| *(.hash) |
| *(.gnu.hash) |
| #endif |
| } |
| } |