root/arch/parisc/boot/compressed/vmlinux.lds.S
#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 : {
                __start_opd = .;
                *(.opd)
                __end_opd = .;
        } PROVIDE (__gp = .);
        .plt : {
                *(.plt)
        }
        .dlt : {
                *(.dlt)
        }
#endif
        _startcode_end = .;

        /* vmlinux.bin.gz is here */
        . = ALIGN(8);
        .rodata.compressed : {
                *(.rodata.compressed)
        }

        /* 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);
        .bss : {
                _bss = . ;
                *(.bss)
                *(.bss.*)
                *(COMMON)
                . = ALIGN(4096);
                _ebss = .;
        }

        STABS_DEBUG
        ELF_DETAILS
        .note 0 : { *(.note) }

        /* Sections to be discarded */
        DISCARDS
        /DISCARD/ : {
                *(.modinfo)
#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
        }
}