123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #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/ : {
- #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
- }
- }
|