* [PATCH] section name cleanup for cris
@ 2009-04-30 23:44 Tim Abbott
2009-04-30 23:44 ` [PATCH] cris: use new macros for .data.init_task Tim Abbott
0 siblings, 1 reply; 5+ messages in thread
From: Tim Abbott @ 2009-04-30 23:44 UTC (permalink / raw)
To: Sam Ravnborg
Cc: Linux kernel mailing list, Anders Kaseorg, Waseem Daher,
Denys Vlasenko, Jeff Arnold, Mikael Starvik, Jesper Nilsson,
dev-etrax, Tim Abbott
This patch series cleans up the section names on the cris
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):
cris: use new macros for .data.init_task.
arch/cris/kernel/process.c | 3 +--
arch/cris/kernel/vmlinux.lds.S | 4 +---
2 files changed, 2 insertions(+), 5 deletions(-)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] cris: use new macros for .data.init_task.
2009-04-30 23:44 [PATCH] section name cleanup for cris Tim Abbott
@ 2009-04-30 23:44 ` Tim Abbott
2009-06-23 9:06 ` Jesper Nilsson
0 siblings, 1 reply; 5+ messages in thread
From: Tim Abbott @ 2009-04-30 23:44 UTC (permalink / raw)
To: Sam Ravnborg
Cc: Linux kernel mailing list, Anders Kaseorg, Waseem Daher,
Denys Vlasenko, Jeff Arnold, Mikael Starvik, Jesper Nilsson,
dev-etrax, Tim Abbott
.data.init_task should not need a separate output section; this change
moves it into the .data section.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Jesper Nilsson <jesper.nilsson@axis.com>
Cc: dev-etrax@axis.com
---
arch/cris/kernel/process.c | 3 +--
arch/cris/kernel/vmlinux.lds.S | 4 +---
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/cris/kernel/process.c b/arch/cris/kernel/process.c
index 4df0b32..7a270c6 100644
--- a/arch/cris/kernel/process.c
+++ b/arch/cris/kernel/process.c
@@ -49,8 +49,7 @@ EXPORT_SYMBOL(init_mm);
* way process stacks are handled. This is done by having a special
* "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) };
/*
diff --git a/arch/cris/kernel/vmlinux.lds.S b/arch/cris/kernel/vmlinux.lds.S
index 0d2adfc..e4f7490 100644
--- a/arch/cris/kernel/vmlinux.lds.S
+++ b/arch/cris/kernel/vmlinux.lds.S
@@ -62,14 +62,12 @@ SECTIONS
___data_start = . ;
__Sdata = . ;
.data : { /* Data */
+ INIT_TASK_DATA(PAGE_SIZE)
DATA_DATA
}
__edata = . ; /* End of data section. */
_edata = . ;
- . = ALIGN(PAGE_SIZE); /* init_task and stack, must be aligned. */
- .data.init_task : { *(.data.init_task) }
-
. = ALIGN(PAGE_SIZE); /* Init code and data. */
__init_begin = .;
.init.text : {
--
1.6.2.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] cris: use new macros for .data.init_task.
2009-04-30 23:44 ` [PATCH] cris: use new macros for .data.init_task Tim Abbott
@ 2009-06-23 9:06 ` Jesper Nilsson
2009-06-23 21:12 ` Sam Ravnborg
0 siblings, 1 reply; 5+ messages in thread
From: Jesper Nilsson @ 2009-06-23 9:06 UTC (permalink / raw)
To: Tim Abbott
Cc: Sam Ravnborg, Linux kernel mailing list, Anders Kaseorg,
Waseem Daher, Denys Vlasenko, Jeff Arnold, Mikael Starvik
On Fri, May 01, 2009 at 01:44:37AM +0200, Tim Abbott wrote:
> .data.init_task should not need a separate output section; this change
> moves it into the .data section.
Hi,
Sorry about not picking this up earlier, but what's the status of
the prerequisite macros? From what I can see, the prerequisite for
the first part of the patch is now in mainline, but there seems to
be no users of INIT_TASK_DATA yet.
(And it looks a bit dodgy as it uses INIT_TASK without any argument...)
Should I split up your patch or is there any reason to keep them together?
/Jesper
> Signed-off-by: Tim Abbott <tabbott@mit.edu>
> Cc: Mikael Starvik <starvik@axis.com>
> Cc: Jesper Nilsson <jesper.nilsson@axis.com>
> Cc: dev-etrax@axis.com
> ---
> arch/cris/kernel/process.c | 3 +--
> arch/cris/kernel/vmlinux.lds.S | 4 +---
> 2 files changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/arch/cris/kernel/process.c b/arch/cris/kernel/process.c
> index 4df0b32..7a270c6 100644
> --- a/arch/cris/kernel/process.c
> +++ b/arch/cris/kernel/process.c
> @@ -49,8 +49,7 @@ EXPORT_SYMBOL(init_mm);
> * way process stacks are handled. This is done by having a special
> * "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) };
>
> /*
> diff --git a/arch/cris/kernel/vmlinux.lds.S b/arch/cris/kernel/vmlinux.lds.S
> index 0d2adfc..e4f7490 100644
> --- a/arch/cris/kernel/vmlinux.lds.S
> +++ b/arch/cris/kernel/vmlinux.lds.S
> @@ -62,14 +62,12 @@ SECTIONS
> ___data_start = . ;
> __Sdata = . ;
> .data : { /* Data */
> + INIT_TASK_DATA(PAGE_SIZE)
> DATA_DATA
> }
> __edata = . ; /* End of data section. */
> _edata = . ;
>
> - . = ALIGN(PAGE_SIZE); /* init_task and stack, must be aligned. */
> - .data.init_task : { *(.data.init_task) }
> -
> . = ALIGN(PAGE_SIZE); /* Init code and data. */
> __init_begin = .;
> .init.text : {
> --
> 1.6.2.1
/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper.nilsson@axis.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] cris: use new macros for .data.init_task.
2009-06-23 9:06 ` Jesper Nilsson
@ 2009-06-23 21:12 ` Sam Ravnborg
2009-06-23 22:53 ` [PATCH] Shuffle INIT_TASK* macro names in vmlinux.lds.h (was Re: [PATCH] cris: use new macros for .data.init_task.) Tim Abbott
0 siblings, 1 reply; 5+ messages in thread
From: Sam Ravnborg @ 2009-06-23 21:12 UTC (permalink / raw)
To: Jesper Nilsson
Cc: Tim Abbott, Linux kernel mailing list, Anders Kaseorg,
Waseem Daher, Denys Vlasenko, Jeff Arnold, Mikael Starvik
On Tue, Jun 23, 2009 at 11:06:14AM +0200, Jesper Nilsson wrote:
> On Fri, May 01, 2009 at 01:44:37AM +0200, Tim Abbott wrote:
> > .data.init_task should not need a separate output section; this change
> > moves it into the .data section.
>
> Hi,
>
> Sorry about not picking this up earlier, but what's the status of
> the prerequisite macros? From what I can see, the prerequisite for
> the first part of the patch is now in mainline, but there seems to
> be no users of INIT_TASK_DATA yet.
> (And it looks a bit dodgy as it uses INIT_TASK without any argument...)
I applied that patch already.
I have concentrated on the vmlinux.lds stuff.
And I hope Tim will look into the rest once more.
Tim - any news from your side?
Sam
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] Shuffle INIT_TASK* macro names in vmlinux.lds.h (was Re: [PATCH] cris: use new macros for .data.init_task.)
2009-06-23 21:12 ` Sam Ravnborg
@ 2009-06-23 22:53 ` Tim Abbott
0 siblings, 0 replies; 5+ messages in thread
From: Tim Abbott @ 2009-06-23 22:53 UTC (permalink / raw)
To: Sam Ravnborg
Cc: Jesper Nilsson, Linux kernel mailing list, Anders Kaseorg,
Waseem Daher, Denys Vlasenko, Jeff Arnold, Mikael Starvik,
David Howells
On Tue, 23 Jun 2009, Sam Ravnborg wrote:
> I have concentrated on the vmlinux.lds stuff.
> And I hope Tim will look into the rest once more.
>
> Tim - any news from your side?
I've been extremely busy and so I've not had time to rebase my patch
series for all the architectures for the changes made to the macros in
vmlinux.lds.h since my original patches were written. But I will find
time to send a new version of the prerequisite macros to the files other
than vmlinux.lds.h tonight, since the macros are just a few small patches.
> On Tue, Jun 23, 2009 at 11:06:14AM +0200, Jesper Nilsson wrote:
> > (And it looks a bit dodgy as it uses INIT_TASK without any argument...)
Also, Jesper's comment reveals a bug in the new macros we merged into
vmlinux.lds.h:
We recently added a INIT_TASK(align) in include/asm-generic/vmlinux.lds.h,
but there is already a macro INIT_TASK in include/linux/init_task.h, which
is quite confusing. We should switch the macro in the linker script to
INIT_TASK_DATA. (Sorry that I missed this in reviewing the patch). Since
the macros are new, there is only one user of the INIT_TASK in
vmlinux.lds.h, arch/mn10300/kernel/vmlinux.lds.S.
However, we are currently using INIT_TASK_DATA for laying down an entire
.data.init_task section. So rename that to INIT_TASK_DATA_SECTION.
I would be worried about changing the meaning of INIT_TASK_DATA, but the
old INIT_TASK_DATA implementation had no users, and in fact if anyone had
tried to use it, it would have failed to compile because it didn't pass
the alignment to the old INIT_TASK.
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: David Howells <dhowells@redhat.com>
---
arch/mn10300/kernel/vmlinux.lds.S | 2 +-
include/asm-generic/vmlinux.lds.h | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/mn10300/kernel/vmlinux.lds.S b/arch/mn10300/kernel/vmlinux.lds.S
index bcebcef..c96ba3d 100644
--- a/arch/mn10300/kernel/vmlinux.lds.S
+++ b/arch/mn10300/kernel/vmlinux.lds.S
@@ -61,7 +61,7 @@ SECTIONS
_edata = .; /* End of data section */
}
- .data.init_task : { INIT_TASK(THREAD_SIZE); }
+ .data.init_task : { INIT_TASK_DATA(THREAD_SIZE); }
/* might get freed after init */
. = ALIGN(PAGE_SIZE);
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 92b73b6..fb20e74 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -191,7 +191,7 @@
. = ALIGN(align); \
*(.data.cacheline_aligned)
-#define INIT_TASK(align) \
+#define INIT_TASK_DATA(align) \
. = ALIGN(align); \
*(.data.init_task)
@@ -434,10 +434,10 @@
/*
* Init task
*/
-#define INIT_TASK_DATA(align) \
+#define INIT_TASK_DATA_SECTION(align) \
. = ALIGN(align); \
.data.init_task : { \
- INIT_TASK \
+ INIT_TASK_DATA(align) \
}
#ifdef CONFIG_CONSTRUCTORS
@@ -707,7 +707,7 @@
#define RW_DATA_SECTION(cacheline, nosave, pagealigned, inittask) \
. = ALIGN(PAGE_SIZE); \
.data : AT(ADDR(.data) - LOAD_OFFSET) { \
- INIT_TASK(inittask) \
+ INIT_TASK_DATA(inittask) \
CACHELINE_ALIGNED_DATA(cacheline) \
READ_MOSTLY_DATA(cacheline) \
DATA_DATA \
--
1.6.3.1
-Tim Abbott
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-06-23 22:54 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-30 23:44 [PATCH] section name cleanup for cris Tim Abbott
2009-04-30 23:44 ` [PATCH] cris: use new macros for .data.init_task Tim Abbott
2009-06-23 9:06 ` Jesper Nilsson
2009-06-23 21:12 ` Sam Ravnborg
2009-06-23 22:53 ` [PATCH] Shuffle INIT_TASK* macro names in vmlinux.lds.h (was Re: [PATCH] cris: use new macros for .data.init_task.) Tim Abbott
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox