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@xxxxxxx> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx> --- 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