aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2014-11-03 05:12:13 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-11-03 05:12:13 -0500
commit06e944b8e5fc4bec83f102f98c1ee4f972f5f072 (patch)
treed53b1c3ca270f49f1cae63bbe117cc8587e51510 /arch/arm/kernel/vmlinux.lds.S
parentf114040e3ea6e07372334ade75d1ee0775c355e1 (diff)
parent80d6b0c2eed2a504f6740cd1f5ea76dc50abfc4d (diff)
Merge tag 'ronx-next' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into devel-stable
generic fixmaps ARM support for CONFIG_DEBUG_RODATA
Diffstat (limited to 'arch/arm/kernel/vmlinux.lds.S')
-rw-r--r--arch/arm/kernel/vmlinux.lds.S19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index 8e95aa47457a..b31aa73e8076 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -8,6 +8,9 @@
8#include <asm/thread_info.h> 8#include <asm/thread_info.h>
9#include <asm/memory.h> 9#include <asm/memory.h>
10#include <asm/page.h> 10#include <asm/page.h>
11#ifdef CONFIG_ARM_KERNMEM_PERMS
12#include <asm/pgtable.h>
13#endif
11 14
12#define PROC_INFO \ 15#define PROC_INFO \
13 . = ALIGN(4); \ 16 . = ALIGN(4); \
@@ -90,6 +93,11 @@ SECTIONS
90 _text = .; 93 _text = .;
91 HEAD_TEXT 94 HEAD_TEXT
92 } 95 }
96
97#ifdef CONFIG_ARM_KERNMEM_PERMS
98 . = ALIGN(1<<SECTION_SHIFT);
99#endif
100
93 .text : { /* Real text segment */ 101 .text : { /* Real text segment */
94 _stext = .; /* Text and read-only data */ 102 _stext = .; /* Text and read-only data */
95 __exception_text_start = .; 103 __exception_text_start = .;
@@ -112,6 +120,9 @@ SECTIONS
112 ARM_CPU_KEEP(PROC_INFO) 120 ARM_CPU_KEEP(PROC_INFO)
113 } 121 }
114 122
123#ifdef CONFIG_DEBUG_RODATA
124 . = ALIGN(1<<SECTION_SHIFT);
125#endif
115 RO_DATA(PAGE_SIZE) 126 RO_DATA(PAGE_SIZE)
116 127
117 . = ALIGN(4); 128 . = ALIGN(4);
@@ -145,7 +156,11 @@ SECTIONS
145 _etext = .; /* End of text and rodata section */ 156 _etext = .; /* End of text and rodata section */
146 157
147#ifndef CONFIG_XIP_KERNEL 158#ifndef CONFIG_XIP_KERNEL
159# ifdef CONFIG_ARM_KERNMEM_PERMS
160 . = ALIGN(1<<SECTION_SHIFT);
161# else
148 . = ALIGN(PAGE_SIZE); 162 . = ALIGN(PAGE_SIZE);
163# endif
149 __init_begin = .; 164 __init_begin = .;
150#endif 165#endif
151 /* 166 /*
@@ -219,7 +234,11 @@ SECTIONS
219 __data_loc = ALIGN(4); /* location in binary */ 234 __data_loc = ALIGN(4); /* location in binary */
220 . = PAGE_OFFSET + TEXT_OFFSET; 235 . = PAGE_OFFSET + TEXT_OFFSET;
221#else 236#else
237#ifdef CONFIG_ARM_KERNMEM_PERMS
238 . = ALIGN(1<<SECTION_SHIFT);
239#else
222 . = ALIGN(THREAD_SIZE); 240 . = ALIGN(THREAD_SIZE);
241#endif
223 __init_end = .; 242 __init_end = .;
224 __data_loc = .; 243 __data_loc = .;
225#endif 244#endif