Blame view

arch/sh/kernel/vmlinux.lds.S 1.65 KB
dce97c8cb   Paul Mundt   sh: Move the unif...
1
2
3
4
5
  /*
   * ld script to make SuperH Linux kernel
   * Written by Niibe Yutaka and Paul Mundt
   */
  #ifdef CONFIG_SUPERH64
19f6b8b44   Paul Mundt   sh64: fix up memo...
6
  #define LOAD_OFFSET	PAGE_OFFSET
dce97c8cb   Paul Mundt   sh: Move the unif...
7
  OUTPUT_ARCH(sh:sh5)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
8
  #else
7b022d07a   Paul Mundt   sh: Tidy up the l...
9
  #define LOAD_OFFSET	0
dce97c8cb   Paul Mundt   sh: Move the unif...
10
  OUTPUT_ARCH(sh)
dce97c8cb   Paul Mundt   sh: Move the unif...
11
12
13
14
  #endif
  
  #include <asm/thread_info.h>
  #include <asm/cache.h>
bd353861c   Matt Fleming   sh: dwarf unwinde...
15
  #include <asm/vmlinux.lds.h>
dce97c8cb   Paul Mundt   sh: Move the unif...
16

1d5cfcdff   Paul Mundt   sh: Kill off some...
17
18
  #ifdef CONFIG_PMB
   #define MEMORY_OFFSET	0
04c869735   Paul Mundt   sh: Fix up legacy...
19
  #else
1d5cfcdff   Paul Mundt   sh: Kill off some...
20
   #define MEMORY_OFFSET	__MEMORY_START
04c869735   Paul Mundt   sh: Fix up legacy...
21
  #endif
dce97c8cb   Paul Mundt   sh: Move the unif...
22
23
24
  ENTRY(_start)
  SECTIONS
  {
e66ac3f26   Simon Horman   sh: kexec: Add PH...
25
  	. = PAGE_OFFSET + MEMORY_OFFSET + PHYSICAL_OFFSET + CONFIG_ZERO_PAGE_OFFSET;
dce97c8cb   Paul Mundt   sh: Move the unif...
26

53c0054c3   Magnus Damm   sh: include empty...
27
  	_text = .;		/* Text and read-only data */
dce97c8cb   Paul Mundt   sh: Move the unif...
28
29
30
31
32
  	.empty_zero_page : AT(ADDR(.empty_zero_page) - LOAD_OFFSET) {
  		*(.empty_zero_page)
  	} = 0
  
  	.text : AT(ADDR(.text) - LOAD_OFFSET) {
dce97c8cb   Paul Mundt   sh: Move the unif...
33
34
  		HEAD_TEXT
  		TEXT_TEXT
19f6b8b44   Paul Mundt   sh64: fix up memo...
35
  		EXTRA_TEXT
dce97c8cb   Paul Mundt   sh: Move the unif...
36
37
38
39
40
41
42
43
  		SCHED_TEXT
  		LOCK_TEXT
  		KPROBES_TEXT
  		IRQENTRY_TEXT
  		*(.fixup)
  		*(.gnu.warning)
  		_etext = .;		/* End of text section */
  	} = 0x0009
2802e3459   Tim Abbott   sh: Clean up link...
44
  	EXCEPTION_TABLE(16)
dce97c8cb   Paul Mundt   sh: Move the unif...
45
  	NOTES
660e2acad   Chris Smith   sh: kmemleak supp...
46
47
  
  	_sdata = .;
dce97c8cb   Paul Mundt   sh: Move the unif...
48
  	RO_DATA(PAGE_SIZE)
2802e3459   Tim Abbott   sh: Clean up link...
49
  	RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
660e2acad   Chris Smith   sh: kmemleak supp...
50
  	_edata = .;
dce97c8cb   Paul Mundt   sh: Move the unif...
51

bd353861c   Matt Fleming   sh: dwarf unwinde...
52
  	DWARF_EH_FRAME
dce97c8cb   Paul Mundt   sh: Move the unif...
53
  	. = ALIGN(PAGE_SIZE);		/* Init code and data */
2802e3459   Tim Abbott   sh: Clean up link...
54
55
56
  	__init_begin = .;
  	INIT_TEXT_SECTION(PAGE_SIZE)
  	INIT_DATA_SECTION(16)
dce97c8cb   Paul Mundt   sh: Move the unif...
57
58
59
60
61
62
63
  
  	. = ALIGN(4);
  	.machvec.init : AT(ADDR(.machvec.init) - LOAD_OFFSET) {
  		__machvec_start = .;
  		*(.machvec.init)
  		__machvec_end = .;
  	}
0415b00d1   Tejun Heo   percpu: Always al...
64
  	PERCPU_SECTION(L1_CACHE_BYTES)
dce97c8cb   Paul Mundt   sh: Move the unif...
65
66
67
68
69
70
71
72
73
  
  	/*
  	 * .exit.text is discarded at runtime, not link time, to deal with
  	 * references from __bug_table
  	 */
  	.exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { EXIT_TEXT }
  	.exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { EXIT_DATA }
  
  	. = ALIGN(PAGE_SIZE);
2802e3459   Tim Abbott   sh: Clean up link...
74
  	__init_end = .;
6bde607e6   Tim Abbott   sh: Clean up link...
75
  	BSS_SECTION(0, PAGE_SIZE, 4)
2802e3459   Tim Abbott   sh: Clean up link...
76
77
  	_ebss = .;			/* uClinux MTD sucks */
  	_end = . ;
dce97c8cb   Paul Mundt   sh: Move the unif...
78

dce97c8cb   Paul Mundt   sh: Move the unif...
79
80
  	STABS_DEBUG
  	DWARF_DEBUG
023bf6f1b   Tejun Heo   linker script: un...
81

023bf6f1b   Tejun Heo   linker script: un...
82
  	DISCARDS
dce97c8cb   Paul Mundt   sh: Move the unif...
83
  }