2009-05-01 00:08:30

by Tim Abbott

[permalink] [raw]
Subject: [PATCH] section name cleanup for um

This patch series cleans up the section names on the um
architecture. It requires the architecture-independent macro
definitions from this patch series:

<http://www.spinics.net/lists/mips/msg33499.html>

The long-term goal here is to add support for building the kernel with
-ffunction-sections -fdata-sections. This requires renaming all the
magic section names in the kernel of the form .text.foo, .data.foo,
.bss.foo, and .rodata.foo to not have collisions with sections
generated for code like:

static int nosave = 0; /* -fdata-sections places in .data.nosave */
static void head(); /* -ffunction-sections places in .text.head */

Note that these patches have not been boot-tested (aside from testing
the analogous changes on x86), since I don't have access to the
appropriate hardware.

-Tim Abbott


Tim Abbott (1):
um: use new macros for .data.init_task.

arch/um/kernel/dyn.lds.S | 3 +--
arch/um/kernel/init_task.c | 3 +--
arch/um/kernel/uml.lds.S | 3 +--
3 files changed, 3 insertions(+), 6 deletions(-)


2009-05-01 00:30:31

by Tim Abbott

[permalink] [raw]
Subject: [PATCH] um: use new macros for .data.init_task.

Signed-off-by: Tim Abbott <[email protected]>
Cc: Jeff Dike <[email protected]>
Cc: [email protected]
---
arch/um/kernel/dyn.lds.S | 3 +--
arch/um/kernel/init_task.c | 3 +--
arch/um/kernel/uml.lds.S | 3 +--
3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S
index 9975e1a..901f703 100644
--- a/arch/um/kernel/dyn.lds.S
+++ b/arch/um/kernel/dyn.lds.S
@@ -96,8 +96,7 @@ SECTIONS
.init_array : { *(.init_array) }
.fini_array : { *(.fini_array) }
.data : {
- . = ALIGN(KERNEL_STACK_SIZE); /* init_task */
- *(.data.init_task)
+ INIT_TASK_DATA(KERNEL_STACK_SIZE)
. = ALIGN(KERNEL_STACK_SIZE);
*(.data.init_irqstack)
DATA_DATA
diff --git a/arch/um/kernel/init_task.c b/arch/um/kernel/init_task.c
index 806d381..0d4657f 100644
--- a/arch/um/kernel/init_task.c
+++ b/arch/um/kernel/init_task.c
@@ -33,8 +33,7 @@ EXPORT_SYMBOL(init_task);
* "init_task" linker map entry..
*/

-union thread_union init_thread_union
- __attribute__((__section__(".data.init_task"))) =
+union thread_union init_thread_union __init_task_data =
{ INIT_THREAD_INFO(init_task) };

union thread_union cpu0_irqstack
diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S
index 11b8352..e4394a5 100644
--- a/arch/um/kernel/uml.lds.S
+++ b/arch/um/kernel/uml.lds.S
@@ -52,8 +52,7 @@ SECTIONS
init.data : { INIT_DATA }
.data :
{
- . = ALIGN(KERNEL_STACK_SIZE); /* init_task */
- *(.data.init_task)
+ INIT_TASK_DATA(KERNEL_STACK_SIZE)
. = ALIGN(KERNEL_STACK_SIZE);
*(.data.init_irqstack)
DATA_DATA
--
1.6.2.1