1*c437950dSMatt Turner/* SPDX-License-Identifier: GPL-2.0 */ 2*c437950dSMatt Turner#include <asm-generic/vmlinux.lds.h> 3*c437950dSMatt Turner#include <asm/page.h> 4*c437950dSMatt Turner#include <asm/setup.h> 5*c437950dSMatt Turner 6*c437950dSMatt TurnerOUTPUT_FORMAT("elf64-alpha") 7*c437950dSMatt TurnerOUTPUT_ARCH(alpha) 8*c437950dSMatt TurnerENTRY(__start) 9*c437950dSMatt Turner 10*c437950dSMatt TurnerSECTIONS 11*c437950dSMatt Turner{ 12*c437950dSMatt Turner /* 13*c437950dSMatt Turner * Link the stub at the address the real, uncompressed vmlinux has 14*c437950dSMatt Turner * always occupied. aboot derives the OSF/1 parameter-page 15*c437950dSMatt Turner * (ZERO_PGE) and initial stack (INIT_STACK) addresses from the 16*c437950dSMatt Turner * loaded image's own p_vaddr, so a stub linked anywhere else would 17*c437950dSMatt Turner * hand the real kernel a parameter page it does not expect. 18*c437950dSMatt Turner */ 19*c437950dSMatt Turner . = START_ADDR; 20*c437950dSMatt Turner 21*c437950dSMatt Turner .head.text : { 22*c437950dSMatt Turner _head = .; 23*c437950dSMatt Turner HEAD_TEXT 24*c437950dSMatt Turner _ehead = .; 25*c437950dSMatt Turner } 26*c437950dSMatt Turner 27*c437950dSMatt Turner . = ALIGN(8); 28*c437950dSMatt Turner .rodata.compressed : { 29*c437950dSMatt Turner *(.rodata.compressed) 30*c437950dSMatt Turner } 31*c437950dSMatt Turner 32*c437950dSMatt Turner . = ALIGN(PAGE_SIZE); 33*c437950dSMatt Turner .text : { 34*c437950dSMatt Turner _text = .; 35*c437950dSMatt Turner *(.text) 36*c437950dSMatt Turner *(.text.*) 37*c437950dSMatt Turner _etext = .; 38*c437950dSMatt Turner } 39*c437950dSMatt Turner . = ALIGN(8); 40*c437950dSMatt Turner .rodata : { 41*c437950dSMatt Turner *(.rodata) 42*c437950dSMatt Turner *(.rodata.*) 43*c437950dSMatt Turner } 44*c437950dSMatt Turner . = ALIGN(8); 45*c437950dSMatt Turner .data : { 46*c437950dSMatt Turner *(.data) 47*c437950dSMatt Turner *(.data.*) 48*c437950dSMatt Turner } 49*c437950dSMatt Turner .got : { 50*c437950dSMatt Turner *(.got) 51*c437950dSMatt Turner } 52*c437950dSMatt Turner .sdata : { 53*c437950dSMatt Turner *(.sdata) 54*c437950dSMatt Turner } 55*c437950dSMatt Turner /* 56*c437950dSMatt Turner * misc.c decompresses to _ebss, so nothing that the stub still 57*c437950dSMatt Turner * needs may be placed after .bss. --orphan-handling=warn keeps a 58*c437950dSMatt Turner * new section from silently landing there. 59*c437950dSMatt Turner */ 60*c437950dSMatt Turner . = ALIGN(8); 61*c437950dSMatt Turner .bss : { 62*c437950dSMatt Turner _bss = .; 63*c437950dSMatt Turner *(.sbss) 64*c437950dSMatt Turner *(.scommon) 65*c437950dSMatt Turner *(.bss) 66*c437950dSMatt Turner *(.bss.*) 67*c437950dSMatt Turner *(COMMON) 68*c437950dSMatt Turner . = ALIGN(8); 69*c437950dSMatt Turner _ebss = .; 70*c437950dSMatt Turner } 71*c437950dSMatt Turner 72*c437950dSMatt Turner STABS_DEBUG 73*c437950dSMatt Turner DWARF_DEBUG 74*c437950dSMatt Turner ELF_DETAILS 75*c437950dSMatt Turner 76*c437950dSMatt Turner DISCARDS 77*c437950dSMatt Turner /DISCARD/ : { 78*c437950dSMatt Turner *(.eh_frame) 79*c437950dSMatt Turner *(.modinfo) 80*c437950dSMatt Turner *(.note) 81*c437950dSMatt Turner *(.note.*) 82*c437950dSMatt Turner } 83*c437950dSMatt Turner} 84