* [PATCH v4 0/2] Linker script cleanup patches for arm
@ 2009-09-30 21:25 Tim Abbott
2009-09-30 21:25 ` [PATCH 1/2] arm: convert to use __HEAD and HEAD_TEXT macros Tim Abbott
2009-09-30 21:25 ` [PATCH 2/2] arm: Clean up linker script using new linker script macros Tim Abbott
0 siblings, 2 replies; 13+ messages in thread
From: Tim Abbott @ 2009-09-30 21:25 UTC (permalink / raw)
To: Russell King; +Cc: linux-arm-kernel, linux-kernel, Sam Ravnborg, Tim Abbott
This is an updated version of the patch series I sent in late July
cleaning up the arm architecture's linker scripts. Version 2 was
rebased on top of Linus's current master; version 3 contains a fix for
a problem with CONFIG_XIP_KERNEL noted by Russell King. Version 4
differs from version 3 only in being rebased on top of Linus' master.
This cross-architecture linker script cleanup project is in
preparation for adding support for building the kernel with
-ffunction-sections -fdata-sections, which is a prerequisite for
Ksplice.
-Tim Abbott
Nelson Elhage (1):
arm: Clean up linker script using new linker script macros.
Tim Abbott (1):
arm: convert to use __HEAD and HEAD_TEXT macros.
arch/arm/kernel/head-nommu.S | 2 +-
arch/arm/kernel/head.S | 2 +-
arch/arm/kernel/vmlinux.lds.S | 83 ++++++++++++-----------------------------
3 files changed, 26 insertions(+), 61 deletions(-)
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/2] arm: convert to use __HEAD and HEAD_TEXT macros.
2009-09-30 21:25 [PATCH v4 0/2] Linker script cleanup patches for arm Tim Abbott
@ 2009-09-30 21:25 ` Tim Abbott
2009-09-30 21:31 ` Sam Ravnborg
2009-09-30 21:25 ` [PATCH 2/2] arm: Clean up linker script using new linker script macros Tim Abbott
1 sibling, 1 reply; 13+ messages in thread
From: Tim Abbott @ 2009-09-30 21:25 UTC (permalink / raw)
To: Russell King
Cc: linux-arm-kernel, linux-kernel, Sam Ravnborg, Tim Abbott,
Russell King, Linus Torvalds
This has the consequence of changing the section name used for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
The .text.head output section is eliminated and the head text code is
included at the start of the .init output section.
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
---
arch/arm/kernel/head-nommu.S | 2 +-
arch/arm/kernel/head.S | 2 +-
arch/arm/kernel/vmlinux.lds.S | 8 +++-----
3 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
index e5dfc28..573b803 100644
--- a/arch/arm/kernel/head-nommu.S
+++ b/arch/arm/kernel/head-nommu.S
@@ -32,7 +32,7 @@
* numbers for r1.
*
*/
- .section ".text.head", "ax"
+ __HEAD
ENTRY(stext)
setmode PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode
@ and irqs disabled
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index 38ccbe1..eb62bf9 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -74,7 +74,7 @@
* crap here - that's what the boot loader (or in extreme, well justified
* circumstances, zImage) is for.
*/
- .section ".text.head", "ax"
+ __HEAD
ENTRY(stext)
setmode PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode
@ and irqs disabled
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index aecf87d..0902f80 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -24,13 +24,11 @@ SECTIONS
#else
. = PAGE_OFFSET + TEXT_OFFSET;
#endif
- .text.head : {
- _stext = .;
- _sinittext = .;
- *(.text.head)
- }
.init : { /* Init code and data */
+ _stext = .;
+ _sinittext = .;
+ HEAD_TEXT
INIT_TEXT
_einittext = .;
__proc_info_begin = .;
--
1.6.3.3
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/2] arm: Clean up linker script using new linker script macros.
2009-09-30 21:25 [PATCH v4 0/2] Linker script cleanup patches for arm Tim Abbott
2009-09-30 21:25 ` [PATCH 1/2] arm: convert to use __HEAD and HEAD_TEXT macros Tim Abbott
@ 2009-09-30 21:25 ` Tim Abbott
2009-09-30 21:39 ` Sam Ravnborg
1 sibling, 1 reply; 13+ messages in thread
From: Tim Abbott @ 2009-09-30 21:25 UTC (permalink / raw)
To: Russell King
Cc: linux-arm-kernel, linux-kernel, Sam Ravnborg, Nelson Elhage,
Russell King, Tim Abbott
From: Nelson Elhage <nelhage@ksplice.com>
This patch is mostly a straightforward translation. The primary side
effect to the resulting vmlinux should be to increase the alignment on
the initramfs to the standard PAGE_SIZE from 32 bytes.
Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
---
arch/arm/kernel/vmlinux.lds.S | 75 +++++++++++-----------------------------
1 files changed, 21 insertions(+), 54 deletions(-)
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index 0902f80..d5bc5be 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -40,43 +40,31 @@ SECTIONS
__tagtable_begin = .;
*(.taglist.init)
__tagtable_end = .;
- . = ALIGN(16);
- __setup_start = .;
- *(.init.setup)
- __setup_end = .;
+
+ INIT_SETUP(16)
+
__early_begin = .;
*(.early_param.init)
__early_end = .;
- __initcall_start = .;
- INITCALLS
- __initcall_end = .;
- __con_initcall_start = .;
- *(.con_initcall.init)
- __con_initcall_end = .;
- __security_initcall_start = .;
- *(.security_initcall.init)
- __security_initcall_end = .;
-#ifdef CONFIG_BLK_DEV_INITRD
- . = ALIGN(32);
- __initramfs_start = .;
- usr/built-in.o(.init.ramfs)
- __initramfs_end = .;
-#endif
- . = ALIGN(PAGE_SIZE);
- __per_cpu_load = .;
- __per_cpu_start = .;
- *(.data.percpu.page_aligned)
- *(.data.percpu)
- *(.data.percpu.shared_aligned)
- __per_cpu_end = .;
+
+ INIT_CALLS
+ CON_INITCALL
+ SECURITY_INITCALL
+ INIT_RAM_FS
+
#ifndef CONFIG_XIP_KERNEL
__init_begin = _stext;
INIT_DATA
- . = ALIGN(PAGE_SIZE);
- __init_end = .;
#endif
}
+ PERCPU(PAGE_SIZE)
+
+#ifndef CONFIG_XIP_KERNEL
+ . = ALIGN(PAGE_SIZE);
+ __init_end = .;
+#endif
+
/DISCARD/ : { /* Exit code and data */
EXIT_TEXT
EXIT_DATA
@@ -155,7 +143,7 @@ SECTIONS
* first, the init task union, aligned
* to an 8192 byte boundary.
*/
- *(.data.init_task)
+ INIT_TASK_DATA(THREAD_SIZE)
#ifdef CONFIG_XIP_KERNEL
. = ALIGN(PAGE_SIZE);
@@ -165,17 +153,8 @@ SECTIONS
__init_end = .;
#endif
- . = ALIGN(PAGE_SIZE);
- __nosave_begin = .;
- *(.data.nosave)
- . = ALIGN(PAGE_SIZE);
- __nosave_end = .;
-
- /*
- * then the cacheline aligned data
- */
- . = ALIGN(32);
- *(.data.cacheline_aligned)
+ NOSAVE_DATA
+ CACHELINE_ALIGNED_DATA(32)
/*
* The exception fixup table (might need resorting at runtime)
@@ -254,20 +233,8 @@ SECTIONS
}
#endif
- .bss : {
- __bss_start = .; /* BSS */
- *(.bss)
- *(COMMON)
- __bss_stop = .;
- _end = .;
- }
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
+ BSS_SECTION(0, 0, 0)
+ STABS_DEBUG
.comment 0 : { *(.comment) }
}
--
1.6.3.3
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] arm: convert to use __HEAD and HEAD_TEXT macros.
2009-09-30 21:25 ` [PATCH 1/2] arm: convert to use __HEAD and HEAD_TEXT macros Tim Abbott
@ 2009-09-30 21:31 ` Sam Ravnborg
0 siblings, 0 replies; 13+ messages in thread
From: Sam Ravnborg @ 2009-09-30 21:31 UTC (permalink / raw)
To: Tim Abbott; +Cc: Russell King, linux-arm-kernel, linux-kernel, Linus Torvalds
On Wed, Sep 30, 2009 at 05:25:34PM -0400, Tim Abbott wrote:
> This has the consequence of changing the section name used for head
> code from ".text.head" to ".head.text". Since this commit changes all
> users in the architecture, this change should be harmless.
>
> The .text.head output section is eliminated and the head text code is
> included at the start of the .init output section.
>
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> Cc: Russell King <rmk+kernel@arm.linux.org.uk>
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] arm: Clean up linker script using new linker script macros.
2009-09-30 21:25 ` [PATCH 2/2] arm: Clean up linker script using new linker script macros Tim Abbott
@ 2009-09-30 21:39 ` Sam Ravnborg
2009-10-01 12:56 ` Russell King - ARM Linux
0 siblings, 1 reply; 13+ messages in thread
From: Sam Ravnborg @ 2009-09-30 21:39 UTC (permalink / raw)
To: Tim Abbott; +Cc: Russell King, linux-arm-kernel, linux-kernel, Nelson Elhage
On Wed, Sep 30, 2009 at 05:25:35PM -0400, Tim Abbott wrote:
> From: Nelson Elhage <nelhage@ksplice.com>
>
> This patch is mostly a straightforward translation. The primary side
> effect to the resulting vmlinux should be to increase the alignment on
> the initramfs to the standard PAGE_SIZE from 32 bytes.
>
> Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
> Cc: Russell King <rmk+kernel@arm.linux.org.uk>
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> ---
> arch/arm/kernel/vmlinux.lds.S | 75 +++++++++++-----------------------------
> 1 files changed, 21 insertions(+), 54 deletions(-)
>
>
> - .bss : {
> - __bss_start = .; /* BSS */
> - *(.bss)
> - *(COMMON)
> - __bss_stop = .;
> - _end = .;
Where is _end in the new layout?
I think we lost it.
> - }
> - /* Stabs debugging sections. */
> - .stab 0 : { *(.stab) }
> - .stabstr 0 : { *(.stabstr) }
> - .stab.excl 0 : { *(.stab.excl) }
> - .stab.exclstr 0 : { *(.stab.exclstr) }
> - .stab.index 0 : { *(.stab.index) }
> - .stab.indexstr 0 : { *(.stab.indexstr) }
> + BSS_SECTION(0, 0, 0)
> + STABS_DEBUG
> .comment 0 : { *(.comment) }
> }
Other than that.
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Sam
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] arm: Clean up linker script using new linker script macros.
2009-09-30 21:39 ` Sam Ravnborg
@ 2009-10-01 12:56 ` Russell King - ARM Linux
2009-10-02 20:32 ` Tim Abbott
0 siblings, 1 reply; 13+ messages in thread
From: Russell King - ARM Linux @ 2009-10-01 12:56 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: Tim Abbott, linux-kernel, linux-arm-kernel, Nelson Elhage
On Wed, Sep 30, 2009 at 11:39:25PM +0200, Sam Ravnborg wrote:
> On Wed, Sep 30, 2009 at 05:25:35PM -0400, Tim Abbott wrote:
> > From: Nelson Elhage <nelhage@ksplice.com>
> >
> > This patch is mostly a straightforward translation. The primary side
> > effect to the resulting vmlinux should be to increase the alignment on
> > the initramfs to the standard PAGE_SIZE from 32 bytes.
> >
> > Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
> > Cc: Russell King <rmk+kernel@arm.linux.org.uk>
> > Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> > ---
> > arch/arm/kernel/vmlinux.lds.S | 75 +++++++++++-----------------------------
> > 1 files changed, 21 insertions(+), 54 deletions(-)
> >
> >
> > - .bss : {
> > - __bss_start = .; /* BSS */
> > - *(.bss)
> > - *(COMMON)
> > - __bss_stop = .;
> > - _end = .;
>
> Where is _end in the new layout?
> I think we lost it.
You're right - this will cause a build failure since _end is used in
several core ARM files. Tim?
PS, please ensure that all patches are at the very least build tested,
or say when they aren't.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] arm: Clean up linker script using new linker script macros.
2009-10-01 12:56 ` Russell King - ARM Linux
@ 2009-10-02 20:32 ` Tim Abbott
2009-10-02 20:32 ` [PATCH v4 1/2] arm: convert to use __HEAD and HEAD_TEXT macros Tim Abbott
2009-10-02 20:32 ` [PATCH v4 2/2] arm: Clean up linker script using new linker script macros Tim Abbott
0 siblings, 2 replies; 13+ messages in thread
From: Tim Abbott @ 2009-10-02 20:32 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Sam Ravnborg, linux-kernel, linux-arm-kernel, Nelson Elhage
On Thu, 1 Oct 2009, Russell King - ARM Linux wrote:
> On Wed, Sep 30, 2009 at 11:39:25PM +0200, Sam Ravnborg wrote:
> >
> > Where is _end in the new layout?
> > I think we lost it.
>
> You're right - this will cause a build failure since _end is used in
> several core ARM files. Tim?
It's supposed to be after BSS_SECTION. I'll send you a new pair of
patches with this fixed and Sam's acks added shortly.
> PS, please ensure that all patches are at the very least build tested,
> or say when they aren't.
These were build-tested originally; it seems I introduced this bug when
rebasing the patch past the recent DISCARD changes, and failed to retest.
Sorry about that (I think you are right that it was more generally a
mistake to not clearly tag these patches as build-but-not-run tested in
the first place. I'll do that in the future).
My cross-compile environment is unavailable at present, so the new version
will be completely untested as well.
-Tim Abbott
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v4 1/2] arm: convert to use __HEAD and HEAD_TEXT macros.
2009-10-02 20:32 ` Tim Abbott
@ 2009-10-02 20:32 ` Tim Abbott
2009-10-02 20:32 ` [PATCH v4 2/2] arm: Clean up linker script using new linker script macros Tim Abbott
1 sibling, 0 replies; 13+ messages in thread
From: Tim Abbott @ 2009-10-02 20:32 UTC (permalink / raw)
To: Russell King
Cc: linux-arm-kernel, linux-kernel, Sam Ravnborg, Tim Abbott,
Russell King, Linus Torvalds
This has the consequence of changing the section name used for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
The .text.head output section is eliminated and the head text code is
included at the start of the .init output section.
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
---
arch/arm/kernel/head-nommu.S | 2 +-
arch/arm/kernel/head.S | 2 +-
arch/arm/kernel/vmlinux.lds.S | 8 +++-----
3 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
index e5dfc28..573b803 100644
--- a/arch/arm/kernel/head-nommu.S
+++ b/arch/arm/kernel/head-nommu.S
@@ -32,7 +32,7 @@
* numbers for r1.
*
*/
- .section ".text.head", "ax"
+ __HEAD
ENTRY(stext)
setmode PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode
@ and irqs disabled
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index 38ccbe1..eb62bf9 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -74,7 +74,7 @@
* crap here - that's what the boot loader (or in extreme, well justified
* circumstances, zImage) is for.
*/
- .section ".text.head", "ax"
+ __HEAD
ENTRY(stext)
setmode PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode
@ and irqs disabled
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index aecf87d..0902f80 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -24,13 +24,11 @@ SECTIONS
#else
. = PAGE_OFFSET + TEXT_OFFSET;
#endif
- .text.head : {
- _stext = .;
- _sinittext = .;
- *(.text.head)
- }
.init : { /* Init code and data */
+ _stext = .;
+ _sinittext = .;
+ HEAD_TEXT
INIT_TEXT
_einittext = .;
__proc_info_begin = .;
--
1.6.4.3
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v4 2/2] arm: Clean up linker script using new linker script macros.
2009-10-02 20:32 ` Tim Abbott
2009-10-02 20:32 ` [PATCH v4 1/2] arm: convert to use __HEAD and HEAD_TEXT macros Tim Abbott
@ 2009-10-02 20:32 ` Tim Abbott
2009-10-12 14:41 ` Tim Abbott
1 sibling, 1 reply; 13+ messages in thread
From: Tim Abbott @ 2009-10-02 20:32 UTC (permalink / raw)
To: Russell King
Cc: linux-arm-kernel, linux-kernel, Sam Ravnborg, Nelson Elhage,
Russell King, Tim Abbott
From: Nelson Elhage <nelhage@ksplice.com>
This patch is mostly a straightforward translation. The primary side
effect to the resulting vmlinux should be to increase the alignment on
the initramfs to the standard PAGE_SIZE from 32 bytes.
Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
---
arch/arm/kernel/vmlinux.lds.S | 77 ++++++++++++----------------------------
1 files changed, 23 insertions(+), 54 deletions(-)
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index 0902f80..71151bd 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -40,43 +40,31 @@ SECTIONS
__tagtable_begin = .;
*(.taglist.init)
__tagtable_end = .;
- . = ALIGN(16);
- __setup_start = .;
- *(.init.setup)
- __setup_end = .;
+
+ INIT_SETUP(16)
+
__early_begin = .;
*(.early_param.init)
__early_end = .;
- __initcall_start = .;
- INITCALLS
- __initcall_end = .;
- __con_initcall_start = .;
- *(.con_initcall.init)
- __con_initcall_end = .;
- __security_initcall_start = .;
- *(.security_initcall.init)
- __security_initcall_end = .;
-#ifdef CONFIG_BLK_DEV_INITRD
- . = ALIGN(32);
- __initramfs_start = .;
- usr/built-in.o(.init.ramfs)
- __initramfs_end = .;
-#endif
- . = ALIGN(PAGE_SIZE);
- __per_cpu_load = .;
- __per_cpu_start = .;
- *(.data.percpu.page_aligned)
- *(.data.percpu)
- *(.data.percpu.shared_aligned)
- __per_cpu_end = .;
+
+ INIT_CALLS
+ CON_INITCALL
+ SECURITY_INITCALL
+ INIT_RAM_FS
+
#ifndef CONFIG_XIP_KERNEL
__init_begin = _stext;
INIT_DATA
- . = ALIGN(PAGE_SIZE);
- __init_end = .;
#endif
}
+ PERCPU(PAGE_SIZE)
+
+#ifndef CONFIG_XIP_KERNEL
+ . = ALIGN(PAGE_SIZE);
+ __init_end = .;
+#endif
+
/DISCARD/ : { /* Exit code and data */
EXIT_TEXT
EXIT_DATA
@@ -155,7 +143,7 @@ SECTIONS
* first, the init task union, aligned
* to an 8192 byte boundary.
*/
- *(.data.init_task)
+ INIT_TASK_DATA(THREAD_SIZE)
#ifdef CONFIG_XIP_KERNEL
. = ALIGN(PAGE_SIZE);
@@ -165,17 +153,8 @@ SECTIONS
__init_end = .;
#endif
- . = ALIGN(PAGE_SIZE);
- __nosave_begin = .;
- *(.data.nosave)
- . = ALIGN(PAGE_SIZE);
- __nosave_end = .;
-
- /*
- * then the cacheline aligned data
- */
- . = ALIGN(32);
- *(.data.cacheline_aligned)
+ NOSAVE_DATA
+ CACHELINE_ALIGNED_DATA(32)
/*
* The exception fixup table (might need resorting at runtime)
@@ -254,20 +233,10 @@ SECTIONS
}
#endif
- .bss : {
- __bss_start = .; /* BSS */
- *(.bss)
- *(COMMON)
- __bss_stop = .;
- _end = .;
- }
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
+ BSS_SECTION(0, 0, 0)
+ _end = .;
+
+ STABS_DEBUG
.comment 0 : { *(.comment) }
}
--
1.6.4.3
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 2/2] arm: Clean up linker script using new linker script macros.
2009-10-02 20:32 ` [PATCH v4 2/2] arm: Clean up linker script using new linker script macros Tim Abbott
@ 2009-10-12 14:41 ` Tim Abbott
2009-10-13 8:50 ` Uwe Kleine-König
0 siblings, 1 reply; 13+ messages in thread
From: Tim Abbott @ 2009-10-12 14:41 UTC (permalink / raw)
To: Russell King; +Cc: linux-arm-kernel, linux-kernel, Sam Ravnborg, Nelson Elhage
Can someone with an arm machine test this patch? I'd really appreciate
it.
-Tim Abbott
On Fri, 2 Oct 2009, Tim Abbott wrote:
> From: Nelson Elhage <nelhage@ksplice.com>
>
> This patch is mostly a straightforward translation. The primary side
> effect to the resulting vmlinux should be to increase the alignment on
> the initramfs to the standard PAGE_SIZE from 32 bytes.
>
> Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
> Cc: Russell King <rmk+kernel@arm.linux.org.uk>
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> Acked-by: Sam Ravnborg <sam@ravnborg.org>
> ---
> arch/arm/kernel/vmlinux.lds.S | 77 ++++++++++++----------------------------
> 1 files changed, 23 insertions(+), 54 deletions(-)
>
> diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
> index 0902f80..71151bd 100644
> --- a/arch/arm/kernel/vmlinux.lds.S
> +++ b/arch/arm/kernel/vmlinux.lds.S
> @@ -40,43 +40,31 @@ SECTIONS
> __tagtable_begin = .;
> *(.taglist.init)
> __tagtable_end = .;
> - . = ALIGN(16);
> - __setup_start = .;
> - *(.init.setup)
> - __setup_end = .;
> +
> + INIT_SETUP(16)
> +
> __early_begin = .;
> *(.early_param.init)
> __early_end = .;
> - __initcall_start = .;
> - INITCALLS
> - __initcall_end = .;
> - __con_initcall_start = .;
> - *(.con_initcall.init)
> - __con_initcall_end = .;
> - __security_initcall_start = .;
> - *(.security_initcall.init)
> - __security_initcall_end = .;
> -#ifdef CONFIG_BLK_DEV_INITRD
> - . = ALIGN(32);
> - __initramfs_start = .;
> - usr/built-in.o(.init.ramfs)
> - __initramfs_end = .;
> -#endif
> - . = ALIGN(PAGE_SIZE);
> - __per_cpu_load = .;
> - __per_cpu_start = .;
> - *(.data.percpu.page_aligned)
> - *(.data.percpu)
> - *(.data.percpu.shared_aligned)
> - __per_cpu_end = .;
> +
> + INIT_CALLS
> + CON_INITCALL
> + SECURITY_INITCALL
> + INIT_RAM_FS
> +
> #ifndef CONFIG_XIP_KERNEL
> __init_begin = _stext;
> INIT_DATA
> - . = ALIGN(PAGE_SIZE);
> - __init_end = .;
> #endif
> }
>
> + PERCPU(PAGE_SIZE)
> +
> +#ifndef CONFIG_XIP_KERNEL
> + . = ALIGN(PAGE_SIZE);
> + __init_end = .;
> +#endif
> +
> /DISCARD/ : { /* Exit code and data */
> EXIT_TEXT
> EXIT_DATA
> @@ -155,7 +143,7 @@ SECTIONS
> * first, the init task union, aligned
> * to an 8192 byte boundary.
> */
> - *(.data.init_task)
> + INIT_TASK_DATA(THREAD_SIZE)
>
> #ifdef CONFIG_XIP_KERNEL
> . = ALIGN(PAGE_SIZE);
> @@ -165,17 +153,8 @@ SECTIONS
> __init_end = .;
> #endif
>
> - . = ALIGN(PAGE_SIZE);
> - __nosave_begin = .;
> - *(.data.nosave)
> - . = ALIGN(PAGE_SIZE);
> - __nosave_end = .;
> -
> - /*
> - * then the cacheline aligned data
> - */
> - . = ALIGN(32);
> - *(.data.cacheline_aligned)
> + NOSAVE_DATA
> + CACHELINE_ALIGNED_DATA(32)
>
> /*
> * The exception fixup table (might need resorting at runtime)
> @@ -254,20 +233,10 @@ SECTIONS
> }
> #endif
>
> - .bss : {
> - __bss_start = .; /* BSS */
> - *(.bss)
> - *(COMMON)
> - __bss_stop = .;
> - _end = .;
> - }
> - /* Stabs debugging sections. */
> - .stab 0 : { *(.stab) }
> - .stabstr 0 : { *(.stabstr) }
> - .stab.excl 0 : { *(.stab.excl) }
> - .stab.exclstr 0 : { *(.stab.exclstr) }
> - .stab.index 0 : { *(.stab.index) }
> - .stab.indexstr 0 : { *(.stab.indexstr) }
> + BSS_SECTION(0, 0, 0)
> + _end = .;
> +
> + STABS_DEBUG
> .comment 0 : { *(.comment) }
> }
>
> --
> 1.6.4.3
>
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 2/2] arm: Clean up linker script using new linker script macros.
2009-10-12 14:41 ` Tim Abbott
@ 2009-10-13 8:50 ` Uwe Kleine-König
2009-10-13 16:47 ` Tim Abbott
0 siblings, 1 reply; 13+ messages in thread
From: Uwe Kleine-König @ 2009-10-13 8:50 UTC (permalink / raw)
To: Tim Abbott
Cc: Russell King, Nelson Elhage, Sam Ravnborg, linux-kernel,
linux-arm-kernel
On Mon, Oct 12, 2009 at 10:41:10AM -0400, Tim Abbott wrote:
> Can someone with an arm machine test this patch? I'd really appreciate
> it.
Compiles and is running fine on eco920.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 2/2] arm: Clean up linker script using new linker script macros.
2009-10-13 8:50 ` Uwe Kleine-König
@ 2009-10-13 16:47 ` Tim Abbott
0 siblings, 0 replies; 13+ messages in thread
From: Tim Abbott @ 2009-10-13 16:47 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Russell King, Nelson Elhage, Sam Ravnborg, linux-kernel,
linux-arm-kernel
[-- Attachment #1: Type: TEXT/PLAIN, Size: 553 bytes --]
On Tue, 13 Oct 2009, Uwe Kleine-König wrote:
> On Mon, Oct 12, 2009 at 10:41:10AM -0400, Tim Abbott wrote:
> > Can someone with an arm machine test this patch? I'd really appreciate
> > it.
> Compiles and is running fine on eco920.
Thanks!
Russell, are you willing to take this patch series for 2.6.32? It would
make life a lot easier for my work on building the kernel with
-ffunction-sections -fdata-sections targeted at 2.6.33 if these linker
script cleanups for the last couple architectures made it into 2.6.32.
-Tim Abbott
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/2] arm: Clean up linker script using new linker script macros.
2009-07-31 20:56 [PATCH 1/2] arm: convert to use __HEAD and HEAD_TEXT macros Tim Abbott
@ 2009-07-31 20:56 ` Tim Abbott
0 siblings, 0 replies; 13+ messages in thread
From: Tim Abbott @ 2009-07-31 20:56 UTC (permalink / raw)
To: Linux Kernel Mailing List
Cc: Sam Ravnborg, Anders Kaseorg, Nelson Elhage, Russell King
From: Nelson Elhage <nelhage@ksplice.com>
This patch is mostly a straightforward translation. The primary side
effect to the resulting vmlinux should be to increase the alignment on
the initramfs to the standard PAGE_SIZE from 32 bytes.
Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
---
arch/arm/kernel/vmlinux.lds.S | 76 +++++++++++-----------------------------
1 files changed, 21 insertions(+), 55 deletions(-)
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index 86c44e6..3e709e1 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -40,43 +40,29 @@ SECTIONS
__tagtable_begin = .;
*(.taglist.init)
__tagtable_end = .;
- . = ALIGN(16);
- __setup_start = .;
- *(.init.setup)
- __setup_end = .;
+
+ INIT_SETUP(16)
+
__early_begin = .;
*(.early_param.init)
__early_end = .;
- __initcall_start = .;
- INITCALLS
- __initcall_end = .;
- __con_initcall_start = .;
- *(.con_initcall.init)
- __con_initcall_end = .;
- __security_initcall_start = .;
- *(.security_initcall.init)
- __security_initcall_end = .;
-#ifdef CONFIG_BLK_DEV_INITRD
- . = ALIGN(32);
- __initramfs_start = .;
- usr/built-in.o(.init.ramfs)
- __initramfs_end = .;
-#endif
- . = ALIGN(PAGE_SIZE);
- __per_cpu_load = .;
- __per_cpu_start = .;
- *(.data.percpu.page_aligned)
- *(.data.percpu)
- *(.data.percpu.shared_aligned)
- __per_cpu_end = .;
+
+ INIT_CALLS
+ CON_INITCALL
+ SECURITY_INITCALL
+ INIT_RAM_FS
+
#ifndef CONFIG_XIP_KERNEL
__init_begin = _stext;
INIT_DATA
- . = ALIGN(PAGE_SIZE);
- __init_end = .;
#endif
}
+ PERCPU(PAGE_SIZE)
+
+ . = ALIGN(PAGE_SIZE);
+ __init_end = .;
+
/DISCARD/ : { /* Exit code and data */
EXIT_TEXT
EXIT_DATA
@@ -154,7 +140,7 @@ SECTIONS
* first, the init task union, aligned
* to an 8192 byte boundary.
*/
- *(.data.init_task)
+ INIT_TASK_DATA(THREAD_SIZE)
#ifdef CONFIG_XIP_KERNEL
. = ALIGN(PAGE_SIZE);
@@ -164,17 +150,8 @@ SECTIONS
__init_end = .;
#endif
- . = ALIGN(PAGE_SIZE);
- __nosave_begin = .;
- *(.data.nosave)
- . = ALIGN(PAGE_SIZE);
- __nosave_end = .;
-
- /*
- * then the cacheline aligned data
- */
- . = ALIGN(32);
- *(.data.cacheline_aligned)
+ NOSAVE_DATA
+ CACHELINE_ALIGNED_DATA(32)
/*
* The exception fixup table (might need resorting at runtime)
@@ -196,21 +173,10 @@ SECTIONS
}
_edata_loc = __data_loc + SIZEOF(.data);
- .bss : {
- __bss_start = .; /* BSS */
- *(.bss)
- *(COMMON)
- __bss_stop = .;
- _end = .;
- }
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
+ BSS_SECTION(0, 0, 0)
+ _end = .;
+
+ STABS_DEBUG
}
/*
--
1.6.3.3
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2009-10-13 16:49 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-30 21:25 [PATCH v4 0/2] Linker script cleanup patches for arm Tim Abbott
2009-09-30 21:25 ` [PATCH 1/2] arm: convert to use __HEAD and HEAD_TEXT macros Tim Abbott
2009-09-30 21:31 ` Sam Ravnborg
2009-09-30 21:25 ` [PATCH 2/2] arm: Clean up linker script using new linker script macros Tim Abbott
2009-09-30 21:39 ` Sam Ravnborg
2009-10-01 12:56 ` Russell King - ARM Linux
2009-10-02 20:32 ` Tim Abbott
2009-10-02 20:32 ` [PATCH v4 1/2] arm: convert to use __HEAD and HEAD_TEXT macros Tim Abbott
2009-10-02 20:32 ` [PATCH v4 2/2] arm: Clean up linker script using new linker script macros Tim Abbott
2009-10-12 14:41 ` Tim Abbott
2009-10-13 8:50 ` Uwe Kleine-König
2009-10-13 16:47 ` Tim Abbott
-- strict thread matches above, loose matches on Subject: below --
2009-07-31 20:56 [PATCH 1/2] arm: convert to use __HEAD and HEAD_TEXT macros Tim Abbott
2009-07-31 20:56 ` [PATCH 2/2] arm: Clean up linker script using new linker script macros Tim Abbott
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®