* [PATCH 2/6] m32r: Define THREAD_SIZE only once.
2009-09-07 3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
@ 2009-09-07 3:12 ` Tim Abbott
2009-09-07 5:52 ` Hirokazu Takata
2009-09-07 3:12 ` [PATCH 3/6] m32r: Move GET_THREAD_INFO definition out of asm/thread_info.h Tim Abbott
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Tim Abbott @ 2009-09-07 3:12 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata
Previously, m32r's asm/thread_info.h defined THREAD_SIZE differently
for assembly and C code; now that PAGE_SIZE is usable from assembly,
these can be combined. Also, m32r's asm/processor.h redefines
THREAD_SIZE to the same value; remove this redundant definition.
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
arch/m32r/include/asm/processor.h | 2 --
arch/m32r/include/asm/thread_info.h | 6 ++----
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/arch/m32r/include/asm/processor.h b/arch/m32r/include/asm/processor.h
index 1a997fc..8397c24 100644
--- a/arch/m32r/include/asm/processor.h
+++ b/arch/m32r/include/asm/processor.h
@@ -140,8 +140,6 @@ unsigned long get_wchan(struct task_struct *p);
#define KSTK_EIP(tsk) ((tsk)->thread.lr)
#define KSTK_ESP(tsk) ((tsk)->thread.sp)
-#define THREAD_SIZE (2*PAGE_SIZE)
-
#define cpu_relax() barrier()
#endif /* _ASM_M32R_PROCESSOR_H */
diff --git a/arch/m32r/include/asm/thread_info.h b/arch/m32r/include/asm/thread_info.h
index 07bb5bd..787ac92 100644
--- a/arch/m32r/include/asm/thread_info.h
+++ b/arch/m32r/include/asm/thread_info.h
@@ -55,6 +55,8 @@ struct thread_info {
#define PREEMPT_ACTIVE 0x10000000
+#define THREAD_SIZE (PAGE_SIZE << 1)
+
/*
* macros/functions for gaining access to the thread information structure
*/
@@ -76,8 +78,6 @@ struct thread_info {
#define init_thread_info (init_thread_union.thread_info)
#define init_stack (init_thread_union.stack)
-#define THREAD_SIZE (2*PAGE_SIZE)
-
/* how to get the thread information struct from C */
static inline struct thread_info *current_thread_info(void)
{
@@ -127,8 +127,6 @@ static inline unsigned int get_thread_fault_code(void)
#else /* !__ASSEMBLY__ */
-#define THREAD_SIZE 8192
-
/* how to get the thread information struct from ASM */
#define GET_THREAD_INFO(reg) GET_THREAD_INFO reg
.macro GET_THREAD_INFO reg
--
1.6.3.3
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 2/6] m32r: Define THREAD_SIZE only once.
2009-09-07 3:12 ` [PATCH 2/6] m32r: Define THREAD_SIZE only once Tim Abbott
@ 2009-09-07 5:52 ` Hirokazu Takata
2009-09-07 6:41 ` Hirokazu Takata
0 siblings, 1 reply; 10+ messages in thread
From: Hirokazu Takata @ 2009-09-07 5:52 UTC (permalink / raw)
To: Tim Abbott; +Cc: Linux Kernel Mailing List, Sam Ravnborg, Hirokazu Takata
Hello,
From: Tim Abbott <tabbott@ksplice.com>
Subject: [PATCH 2/6] m32r: Define THREAD_SIZE only once.
Date: Sun, 06 Sep 2009 23:12:55 -0400
> Previously, m32r's asm/thread_info.h defined THREAD_SIZE differently
> for assembly and C code; now that PAGE_SIZE is usable from assembly,
> these can be combined. Also, m32r's asm/processor.h redefines
> THREAD_SIZE to the same value; remove this redundant definition.
>
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> Cc: Hirokazu Takata <takata@linux-m32r.org>
> ---
> arch/m32r/include/asm/processor.h | 2 --
> arch/m32r/include/asm/thread_info.h | 6 ++----
> 2 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/arch/m32r/include/asm/processor.h b/arch/m32r/include/asm/processor.h
> index 1a997fc..8397c24 100644
> --- a/arch/m32r/include/asm/processor.h
> +++ b/arch/m32r/include/asm/processor.h
> @@ -140,8 +140,6 @@ unsigned long get_wchan(struct task_struct *p);
> #define KSTK_EIP(tsk) ((tsk)->thread.lr)
> #define KSTK_ESP(tsk) ((tsk)->thread.sp)
>
> -#define THREAD_SIZE (2*PAGE_SIZE)
> -
> #define cpu_relax() barrier()
>
> #endif /* _ASM_M32R_PROCESSOR_H */
> diff --git a/arch/m32r/include/asm/thread_info.h b/arch/m32r/include/asm/thread_info.h
> index 07bb5bd..787ac92 100644
> --- a/arch/m32r/include/asm/thread_info.h
> +++ b/arch/m32r/include/asm/thread_info.h
> @@ -55,6 +55,8 @@ struct thread_info {
>
> #define PREEMPT_ACTIVE 0x10000000
>
> +#define THREAD_SIZE (PAGE_SIZE << 1)
> +
> /*
> * macros/functions for gaining access to the thread information structure
> */
> @@ -76,8 +78,6 @@ struct thread_info {
> #define init_thread_info (init_thread_union.thread_info)
> #define init_stack (init_thread_union.stack)
>
> -#define THREAD_SIZE (2*PAGE_SIZE)
> -
> /* how to get the thread information struct from C */
> static inline struct thread_info *current_thread_info(void)
> {
> @@ -127,8 +127,6 @@ static inline unsigned int get_thread_fault_code(void)
>
> #else /* !__ASSEMBLY__ */
>
> -#define THREAD_SIZE 8192
> -
> /* how to get the thread information struct from ASM */
> #define GET_THREAD_INFO(reg) GET_THREAD_INFO reg
> .macro GET_THREAD_INFO reg
> --
> 1.6.3.3
>
This patch causes build errors:
$ m32r-linux-gnu-gcc -Wp,-MD,arch/m32r/kernel/.entry.o.d -nostdinc -isystem /usr/lib/gcc/m32r-linux-gnu/4.1.2/include -Iinclude -Iinclude2 -I/project/m32r-linux/kernel/dev/linux-2.6_dev.git/include -I/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/include -include include/linux/autoconf.h -D__KERNEL__ -D__ASSEMBLY__ -DNO_FPU -m32r2 -O2 -c -o arch/m32r/kernel/entry.o /project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S: Assembler messages:
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S:124: Error: undefined symbol `PAGE_SIZE' in operation
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S:150: Error: undefined symbol `PAGE_SIZE' in operation
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S:159: Error: undefined symbol `PAGE_SIZE' in operation
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S:189: Error: undefined symbol `PAGE_SIZE' in operation
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S:268: Error: undefined symbol `PAGE_SIZE' in operation
It is because entry.s still has PAGE_SIZE symbol, after C preprocessing:
--- arch/m32r/kernel/entry.S ---
:
121 ENTRY(ret_from_fork)
122 pop r0
123 bl schedule_tail
124 GET_THREAD_INFO(r8)
125 bra syscall_exit
:
---
--- entry.s (preprocessed entry.S) ---
# 132 "/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/include/asm/th
read_info.h"
.macro GET_THREAD_INFO reg
ldi \reg, #-(PAGE_SIZE << 1)
and \reg, sp
.endm
:
# 121 "/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/ent ry.S"
ENTRY_M ret_from_fork
pop r0
bl schedule_tail
GET_THREAD_INFO r8
bra syscall_exit
---
The PAGE_SIZE symbol is defined in asm/page.h, So I think asm/page.h
should be included at the top of asm/thread-info.h.
Here is a additional patch:
--- a/arch/m32r/include/asm/thread_info.h
+++ b/arch/m32r/include/asm/thread_info.h
@@ -10,6 +10,7 @@
#ifdef __KERNEL__
+#include <asm/page.h>
#ifndef __ASSEMBLY__
#include <asm/processor.h>
#endif
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Please update your patch if possible.
Thank you.
-- Takata
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 2/6] m32r: Define THREAD_SIZE only once.
2009-09-07 5:52 ` Hirokazu Takata
@ 2009-09-07 6:41 ` Hirokazu Takata
0 siblings, 0 replies; 10+ messages in thread
From: Hirokazu Takata @ 2009-09-07 6:41 UTC (permalink / raw)
To: Tim Abbott; +Cc: Linux Kernel Mailing List, Sam Ravnborg, Hirokazu Takata
From: Hirokazu Takata <takata@linux-m32r.org>
Subject: Re: [PATCH 2/6] m32r: Define THREAD_SIZE only once.
Date: Mon, 07 Sep 2009 14:52:27 +0900
>
> This patch causes build errors:
>
Sorry. It was my mistake.
I forgot to apply your "[PATCH 3/6]".
Tim, you are correct.
From: Tim Abbott <tabbott@ksplice.com>
Subject: [PATCH 2/6] m32r: Define THREAD_SIZE only once.
Date: Sun, 06 Sep 2009 23:12:55 -0400
> Previously, m32r's asm/thread_info.h defined THREAD_SIZE differently
> for assembly and C code; now that PAGE_SIZE is usable from assembly,
> these can be combined. Also, m32r's asm/processor.h redefines
> THREAD_SIZE to the same value; remove this redundant definition.
>
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> Cc: Hirokazu Takata <takata@linux-m32r.org>
> ---
> arch/m32r/include/asm/processor.h | 2 --
> arch/m32r/include/asm/thread_info.h | 6 ++----
> 2 files changed, 2 insertions(+), 6 deletions(-)
>
Acked-by: Hirokazu Takata <takata@linux-m32r.org>
-- Takata
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/6] m32r: Move GET_THREAD_INFO definition out of asm/thread_info.h.
2009-09-07 3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
2009-09-07 3:12 ` [PATCH 2/6] m32r: Define THREAD_SIZE only once Tim Abbott
@ 2009-09-07 3:12 ` Tim Abbott
2009-09-07 3:12 ` [PATCH 4/6] m32r: Remove unused .altinstructions and .exit.* code from linker script Tim Abbott
` (2 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Tim Abbott @ 2009-09-07 3:12 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata
Previously, asm/thread_info.h was not usable from linker scripts
because it contains a piece of .macro code. Since that code was only
used in the m32r entry.S, the right fix is probably to move the macro
there.
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
arch/m32r/include/asm/thread_info.h | 9 ---------
arch/m32r/kernel/entry.S | 7 +++++++
2 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/arch/m32r/include/asm/thread_info.h b/arch/m32r/include/asm/thread_info.h
index 787ac92..b8ac0fe 100644
--- a/arch/m32r/include/asm/thread_info.h
+++ b/arch/m32r/include/asm/thread_info.h
@@ -125,15 +125,6 @@ static inline unsigned int get_thread_fault_code(void)
return ti->flags >> TI_FLAG_FAULT_CODE_SHIFT;
}
-#else /* !__ASSEMBLY__ */
-
-/* how to get the thread information struct from ASM */
-#define GET_THREAD_INFO(reg) GET_THREAD_INFO reg
- .macro GET_THREAD_INFO reg
- ldi \reg, #-THREAD_SIZE
- and \reg, sp
- .endm
-
#endif
/*
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S
index 612d35b..4038698 100644
--- a/arch/m32r/kernel/entry.S
+++ b/arch/m32r/kernel/entry.S
@@ -118,6 +118,13 @@
#define resume_kernel restore_all
#endif
+/* how to get the thread information struct from ASM */
+#define GET_THREAD_INFO(reg) GET_THREAD_INFO reg
+ .macro GET_THREAD_INFO reg
+ ldi \reg, #-THREAD_SIZE
+ and \reg, sp
+ .endm
+
ENTRY(ret_from_fork)
pop r0
bl schedule_tail
--
1.6.3.3
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 4/6] m32r: Remove unused .altinstructions and .exit.* code from linker script.
2009-09-07 3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
2009-09-07 3:12 ` [PATCH 2/6] m32r: Define THREAD_SIZE only once Tim Abbott
2009-09-07 3:12 ` [PATCH 3/6] m32r: Move GET_THREAD_INFO definition out of asm/thread_info.h Tim Abbott
@ 2009-09-07 3:12 ` Tim Abbott
2009-09-07 3:12 ` [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section Tim Abbott
2009-09-07 3:12 ` [PATCH 6/6] m32r: Cleanup linker script using new linker script macros Tim Abbott
4 siblings, 0 replies; 10+ messages in thread
From: Tim Abbott @ 2009-09-07 3:12 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata
It appears that m32r copied the .altinstructions definition from x86
when the architecture was first merged into Linux. m32r doesn't put
anything in .altinstructions, so this is just dead code.
The following block affecting .exit.text/.exit.data, which has a
comment also copied from x86, should also be deleted; the linker
script later discards the .exit.text and .exit.data sections.
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
arch/m32r/kernel/vmlinux.lds.S | 9 ---------
1 files changed, 0 insertions(+), 9 deletions(-)
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index 4179adf..eb3e425 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -91,15 +91,6 @@ SECTIONS
.con_initcall.init : { *(.con_initcall.init) }
__con_initcall_end = .;
SECURITY_INIT
- . = 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 }
#ifdef CONFIG_BLK_DEV_INITRD
. = ALIGN(4096);
--
1.6.3.3
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section.
2009-09-07 3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
` (2 preceding siblings ...)
2009-09-07 3:12 ` [PATCH 4/6] m32r: Remove unused .altinstructions and .exit.* code from linker script Tim Abbott
@ 2009-09-07 3:12 ` Tim Abbott
2009-09-07 12:30 ` Hirokazu Takata
2009-09-07 3:12 ` [PATCH 6/6] m32r: Cleanup linker script using new linker script macros Tim Abbott
4 siblings, 1 reply; 10+ messages in thread
From: Tim Abbott @ 2009-09-07 3:12 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata
Since these get squashed into the .data output section by the m32r
linker script, it seems likely that they don't need their own input
sections.
I'd like an explicit confirmation from Hirokazu Takata that this is
correct (in particular, that there isn't some hidden reason why there
two structures need to be at the start of the .data output section).
This patch is preparation for cleaning up the m32r architecture to use
the new macros in vmlinux.lds.h; if these sections are indeed not
needed, then we can use the RW_DATA_SECTION macro for m32r and save a
bunch of redundant code.
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
arch/m32r/kernel/head.S | 4 ++--
arch/m32r/kernel/vmlinux.lds.S | 2 --
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/m32r/kernel/head.S b/arch/m32r/kernel/head.S
index 0a71944..fc4d769 100644
--- a/arch/m32r/kernel/head.S
+++ b/arch/m32r/kernel/head.S
@@ -268,13 +268,13 @@ ENTRY(empty_zero_page)
/*------------------------------------------------------------------------
* Stack area
*/
- .section .spi
+ .section .data
ALIGN
.global spi_stack_top
.zero 1024
spi_stack_top:
- .section .spu
+ .section .data
ALIGN
.global spu_stack_top
.zero 1024
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index eb3e425..1984b9f 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -49,8 +49,6 @@ SECTIONS
/* writeable */
.data : { /* Data */
- *(.spu)
- *(.spi)
DATA_DATA
CONSTRUCTORS
}
--
1.6.3.3
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section.
2009-09-07 3:12 ` [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section Tim Abbott
@ 2009-09-07 12:30 ` Hirokazu Takata
2009-09-07 14:35 ` Tim Abbott
0 siblings, 1 reply; 10+ messages in thread
From: Hirokazu Takata @ 2009-09-07 12:30 UTC (permalink / raw)
To: Tim Abbott; +Cc: Linux Kernel Mailing List, Sam Ravnborg, Hirokazu Takata
From: Tim Abbott <tabbott@ksplice.com>
Subject: [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section.
Date: Sun, 06 Sep 2009 23:12:58 -0400
> Since these get squashed into the .data output section by the m32r
> linker script, it seems likely that they don't need their own input
> sections.
>
> I'd like an explicit confirmation from Hirokazu Takata that this is
> correct (in particular, that there isn't some hidden reason why there
> two structures need to be at the start of the .data output section).
There is no apparent reason. We've placed them at the start of .data
section, because they are for initial stack region.
I think it would be better that we place them to .init.data section.
Any comment?
> This patch is preparation for cleaning up the m32r architecture to use
> the new macros in vmlinux.lds.h; if these sections are indeed not
> needed, then we can use the RW_DATA_SECTION macro for m32r and save a
> bunch of redundant code.
>
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> Cc: Hirokazu Takata <takata@linux-m32r.org>
> ---
> arch/m32r/kernel/head.S | 4 ++--
> arch/m32r/kernel/vmlinux.lds.S | 2 --
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/m32r/kernel/head.S b/arch/m32r/kernel/head.S
> index 0a71944..fc4d769 100644
> --- a/arch/m32r/kernel/head.S
> +++ b/arch/m32r/kernel/head.S
> @@ -268,13 +268,13 @@ ENTRY(empty_zero_page)
> /*------------------------------------------------------------------------
> * Stack area
> */
> - .section .spi
> + .section .data
> ALIGN
> .global spi_stack_top
> .zero 1024
> spi_stack_top:
>
> - .section .spu
> + .section .data
> ALIGN
> .global spu_stack_top
> .zero 1024
> diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
> index eb3e425..1984b9f 100644
> --- a/arch/m32r/kernel/vmlinux.lds.S
> +++ b/arch/m32r/kernel/vmlinux.lds.S
> @@ -49,8 +49,6 @@ SECTIONS
>
> /* writeable */
> .data : { /* Data */
> - *(.spu)
> - *(.spi)
> DATA_DATA
> CONSTRUCTORS
> }
> --
> 1.6.3.3
>
-- Takata
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section.
2009-09-07 12:30 ` Hirokazu Takata
@ 2009-09-07 14:35 ` Tim Abbott
0 siblings, 0 replies; 10+ messages in thread
From: Tim Abbott @ 2009-09-07 14:35 UTC (permalink / raw)
To: Hirokazu Takata; +Cc: Linux Kernel Mailing List, Sam Ravnborg
On Mon, 7 Sep 2009, Hirokazu Takata wrote:
> From: Tim Abbott <tabbott@ksplice.com>
> Subject: [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section.
> Date: Sun, 06 Sep 2009 23:12:58 -0400
> > Since these get squashed into the .data output section by the m32r
> > linker script, it seems likely that they don't need their own input
> > sections.
> >
> > I'd like an explicit confirmation from Hirokazu Takata that this is
> > correct (in particular, that there isn't some hidden reason why there
> > two structures need to be at the start of the .data output section).
>
> There is no apparent reason. We've placed them at the start of .data
> section, because they are for initial stack region.
>
> I think it would be better that we place them to .init.data section.
> Any comment?
Assuming that they aren't used after the initial boot process, that's
probably the right choice.
-Tim Abbott
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 6/6] m32r: Cleanup linker script using new linker script macros.
2009-09-07 3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
` (3 preceding siblings ...)
2009-09-07 3:12 ` [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section Tim Abbott
@ 2009-09-07 3:12 ` Tim Abbott
4 siblings, 0 replies; 10+ messages in thread
From: Tim Abbott @ 2009-09-07 3:12 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata
This patch is largely a straightforward conversion. One thing to note
is that the new macros use fewer separate output sections than the old
code; this should have no functional impact but is relevant for people
objdumping vmlinux files.
Also note that it moves the .data.init_task output sections inside
_edata.
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
arch/m32r/kernel/vmlinux.lds.S | 67 +++++----------------------------------
1 files changed, 9 insertions(+), 58 deletions(-)
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index 1984b9f..b15ed63 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -4,6 +4,7 @@
#include <asm-generic/vmlinux.lds.h>
#include <asm/addrspace.h>
#include <asm/page.h>
+#include <asm/thread_info.h>
OUTPUT_ARCH(m32r)
#if defined(__LITTLE_ENDIAN__)
@@ -40,72 +41,22 @@ SECTIONS
#endif
_etext = .; /* End of text section */
- . = ALIGN(16); /* Exception table */
- __start___ex_table = .;
- __ex_table : { *(__ex_table) }
- __stop___ex_table = .;
-
+ EXCEPTION_TABLE(16)
RODATA
-
- /* writeable */
- .data : { /* Data */
- DATA_DATA
- CONSTRUCTORS
- }
-
- . = ALIGN(4096);
- __nosave_begin = .;
- .data_nosave : { *(.data.nosave) }
- . = ALIGN(4096);
- __nosave_end = .;
-
- . = ALIGN(32);
- .data.cacheline_aligned : { *(.data.cacheline_aligned) }
-
+ RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
_edata = .; /* End of data section */
- . = ALIGN(8192); /* init_task */
- .data.init_task : { *(.data.init_task) }
-
/* will be freed after init */
- . = ALIGN(4096); /* Init code and data */
+ . = ALIGN(PAGE_SIZE); /* Init code and data */
__init_begin = .;
- .init.text : {
- _sinittext = .;
- INIT_TEXT
- _einittext = .;
- }
- .init.data : { INIT_DATA }
- . = ALIGN(16);
- __setup_start = .;
- .init.setup : { *(.init.setup) }
- __setup_end = .;
- __initcall_start = .;
- .initcall.init : {
- INITCALLS
- }
- __initcall_end = .;
- __con_initcall_start = .;
- .con_initcall.init : { *(.con_initcall.init) }
- __con_initcall_end = .;
- SECURITY_INIT
-
-#ifdef CONFIG_BLK_DEV_INITRD
- . = ALIGN(4096);
- __initramfs_start = .;
- .init.ramfs : { *(.init.ramfs) }
- __initramfs_end = .;
-#endif
-
- PERCPU(4096)
- . = ALIGN(4096);
+ INIT_TEXT_SECTION(PAGE_SIZE)
+ INIT_DATA_SECTION(16)
+ PERCPU(PAGE_SIZE)
+ . = ALIGN(PAGE_SIZE);
__init_end = .;
/* freed after init ends here */
- __bss_start = .; /* BSS */
- .bss : { *(.bss) }
- . = ALIGN(4);
- __bss_stop = .;
+ BSS_SECTION(0, 0, 4)
_end = . ;
--
1.6.3.3
^ permalink raw reply [flat|nested] 10+ messages in thread