lin
2025-06-05 ed3dd9d3e7519a82bb871d5eedb24a2fa0c91f47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/* MN10300 Main kernel linker script
 *
 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
 * Written by David Howells (dhowells@redhat.com)
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public Licence
 * as published by the Free Software Foundation; either version
 * 2 of the Licence, or (at your option) any later version.
 */
#define __VMLINUX_LDS__
#include <asm-generic/vmlinux.lds.h>
#include <asm/thread_info.h>
#include <asm/page.h>
 
OUTPUT_FORMAT("elf32-am33lin", "elf32-am33lin", "elf32-am33lin")
OUTPUT_ARCH(mn10300)
ENTRY(_start)
jiffies = jiffies_64;
#ifndef CONFIG_MN10300_CURRENT_IN_E2
current = __current;
#endif
SECTIONS
{
  . = CONFIG_KERNEL_TEXT_ADDRESS;
  /* read-only */
  _stext = .;
  _text = .;            /* Text and read-only data */
  .text : {
   HEAD_TEXT
   TEXT_TEXT
   SCHED_TEXT
   CPUIDLE_TEXT
   LOCK_TEXT
   KPROBES_TEXT
   *(.fixup)
   *(.gnu.warning)
   } = 0xcb
 
  _etext = .;            /* End of text section */
 
  EXCEPTION_TABLE(16)
  BUG_TABLE
 
  RO_DATA(PAGE_SIZE)
 
  /* writeable */
  _sdata = .;     /* Start of rw data section */
  RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
  _edata = .;
 
  /* might get freed after init */
  . = ALIGN(PAGE_SIZE);
  .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
      __smp_locks = .;
   *(.smp_locks)
   __smp_locks_end = .;
  }
 
  /* will be freed after init */
  . = ALIGN(PAGE_SIZE);        /* Init code and data */
  __init_begin = .;
  INIT_TEXT_SECTION(PAGE_SIZE)
  INIT_DATA_SECTION(16)
  . = ALIGN(4);
  __alt_instructions = .;
  .altinstructions : { *(.altinstructions) }
  __alt_instructions_end = .;
 .altinstr_replacement : { *(.altinstr_replacement) }
  /* .exit.text is discard at runtime, not link time, to deal with references
     from .altinstructions and .eh_frame */
   .exit.text : { EXIT_TEXT; }
   .exit.data : { EXIT_DATA; }
 
  PERCPU_SECTION(32)
  . = ALIGN(PAGE_SIZE);
  __init_end = .;
  /* freed after init ends here */
 
  BSS_SECTION(0, PAGE_SIZE, 4)
 
  _end = . ;
 
  /* This is where the kernel creates the early boot page tables */
  . = ALIGN(PAGE_SIZE);
  pg0 = .;
 
  STABS_DEBUG
 
  DWARF_DEBUG
 
  /* Sections to be discarded */
  DISCARDS
}