Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188/* SPDX-License-Identifier: GPL-2.0 *//* Kernel link layout for various "sections" * * Copyright (C) 1999-2003 Matthew Wilcox <willy at parisc-linux.org> * Copyright (C) 2000-2003 Paul Bame <bame at parisc-linux.org> * Copyright (C) 2000 John Marvin <jsm at parisc-linux.org> * Copyright (C) 2000 Michael Ang <mang with subcarrier.org> * Copyright (C) 2002 Randolph Chung <tausq with parisc-linux.org> * Copyright (C) 2003 James Bottomley <jejb with parisc-linux.org> * Copyright (C) 2006-2013 Helge Deller <deller@gmx.de> */
/* * Put page table entries (swapper_pg_dir) as the first thing in .bss. This * will ensure that it has .bss alignment (PAGE_SIZE). */#define BSS_FIRST_SECTIONS *(.data..vm0.pmd) \ *(.data..vm0.pgd) \ *(.data..vm0.pte)
#define CC_USING_PATCHABLE_FUNCTION_ENTRY#define RO_EXCEPTION_TABLE_ALIGN 8
#include <asm-generic/vmlinux.lds.h>
/* needed for the processor specific cache alignment size */ #include <asm/cache.h>#include <asm/page.h>#include <asm/asm-offsets.h>#include <asm/thread_info.h> /* ld script to make hppa Linux kernel */#ifndef CONFIG_64BITOUTPUT_FORMAT("elf32-hppa-linux")OUTPUT_ARCH(hppa)#elseOUTPUT_FORMAT("elf64-hppa-linux")OUTPUT_ARCH(hppa:hppa2.0w)#endif
#define EXIT_TEXT_SECTIONS() .exit.text : { EXIT_TEXT }#if !defined(CONFIG_64BIT) || defined(CONFIG_MLONGCALLS)#define MLONGCALL_KEEP(x)#define MLONGCALL_DISCARD(x) x#else#define MLONGCALL_KEEP(x) x#define MLONGCALL_DISCARD(x)#endif
ENTRY(parisc_kernel_start)#ifndef CONFIG_64BITjiffies = jiffies_64 + 4;#elsejiffies = jiffies_64;#endifSECTIONS{ . = KERNEL_BINARY_TEXT_START;
__init_begin = .; HEAD_TEXT_SECTION MLONGCALL_DISCARD(INIT_TEXT_SECTION(8))
. = ALIGN(PAGE_SIZE); INIT_DATA_SECTION(PAGE_SIZE) MLONGCALL_DISCARD(EXIT_TEXT_SECTIONS()) .exit.data : { EXIT_DATA } PERCPU_SECTION(8) . = ALIGN(4); .altinstructions : { __alt_instructions = .; *(.altinstructions) __alt_instructions_end = .; } . = ALIGN(HUGEPAGE_SIZE); __init_end = .; /* freed after init ends here */
_text = .; /* Text and read-only data */ _stext = .; MLONGCALL_KEEP(INIT_TEXT_SECTION(8)) .text ALIGN(PAGE_SIZE) : { TEXT_TEXT LOCK_TEXT SCHED_TEXT KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT *(.text.do_softirq) *(.text.sys_exit) *(.text.do_sigaltstack) *(.text.do_fork) *(.text.div) *($$*) /* millicode routines */ *(.text.*) *(.fixup) *(.lock.text) /* out-of-line lock text */ *(.gnu.warning) } MLONGCALL_KEEP(EXIT_TEXT_SECTIONS()) . = ALIGN(PAGE_SIZE); _etext = .; /* End of text section */
/* Start of data section */ _sdata = .;
/* Architecturally we need to keep __gp below 0x1000000 and thus * in front of RO_DATA() which stores lots of tracepoint * and ftrace symbols. */#ifdef CONFIG_64BIT . = ALIGN(16); /* Linkage tables */ .opd : { __start_opd = .; *(.opd) __end_opd = .; } PROVIDE (__gp = .); .plt : { *(.plt) } .dlt : { *(.dlt) }#endif
RO_DATA(PAGE_SIZE)
/* unwind info */ . = ALIGN(4); .PARISC.unwind : { __start___unwind = .; *(.PARISC.unwind) __stop___unwind = .; }
/* writeable */ /* Make sure this is page aligned so * that we can properly leave these * as writable */ . = ALIGN(HUGEPAGE_SIZE); data_start = .;
/* Data */ RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, PAGE_SIZE)
/* PA-RISC locks requires 16-byte alignment */ . = ALIGN(16); .data..lock_aligned : { *(.data..lock_aligned) }
/* End of data section */ . = ALIGN(PAGE_SIZE); _edata = .;
/* BSS */ BSS_SECTION(PAGE_SIZE, PAGE_SIZE, PAGE_SIZE)
. = ALIGN(HUGEPAGE_SIZE); _end = . ;
STABS_DEBUG MODINFO 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 */ *(.interp) *(.dynsym) *(.dynstr) *(.dynamic) *(.hash) *(.gnu.hash)#endif }}