[PATCH v2 4/6] Add new INIT_TASK_DATA() linker script macro.
Tim Abbott
tabbott at MIT.EDU
Fri May 1 05:54:11 EST 2009
This patch is preparation for replacing most ".data.init_task" in the
kernel with macros, so that the section name can later be changed
without having to touch a lot of the kernel.
The long-term goal here is to be able to change the kernel's magic
section names to those that are compatible with -ffunction-sections
-fdata-sections. This requires renaming all magic sections with names
of the form ".data.foo".
Signed-off-by: Tim Abbott <tabbott at mit.edu>
Cc: Sam Ravnborg <sam at ravnborg.org>
---
include/asm-generic/vmlinux.lds.h | 4 ++++
include/linux/init_task.h | 3 +++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index fa7801b..4b020e8 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -135,6 +135,10 @@
. = ALIGN(alignment); \
*(.data.cacheline_aligned)
+#define INIT_TASK_DATA(alignment) \
+ . = ALIGN(alignment); \
+ *(.data.init_task)
+
#define RO_DATA(align) \
. = ALIGN((align)); \
.rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index d87247d..e555baa 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -184,5 +184,8 @@ extern struct cred init_cred;
LIST_HEAD_INIT(cpu_timers[2]), \
}
+/* Attach to the init_task data structure for proper alignment */
+#define __init_task_data __attribute__((__section__(".data.init_task")))
+
#endif
--
1.6.2.1
More information about the Linuxppc-dev
mailing list