[PATCH 15/23] make section names compatible with -ffunction-sections -fdata-sections: powerpc

From: Denys Vlasenko
Date: Tue Jul 01 2008 - 18:39:54 EST


The purpose of this patch is to make kernel buildable
with "gcc -ffunction-sections -fdata-sections".
This patch fixes powerpc architecture.

Signed-off-by: Denys Vlasenko <vda.linux@xxxxxxxxxxxxxx>
--
vda


--- 0.org/arch/powerpc/kernel/head_32.S Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/head_32.S Wed Jul 2 00:44:22 2008
@@ -49,7 +49,7 @@
mtspr SPRN_DBAT##n##L,RB; \
1:

- .section .text.head, "ax"
+ .section .head.text, "ax"
.stabs "arch/powerpc/kernel/",N_SO,0,0,0f
.stabs "head_32.S",N_SO,0,0,0f
0:
--- 0.org/arch/powerpc/kernel/head_40x.S Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/head_40x.S Wed Jul 2 00:44:22 2008
@@ -52,7 +52,7 @@
*
* This is all going to change RSN when we add bi_recs....... -- Dan
*/
- .section .text.head, "ax"
+ .section .head.text, "ax"
_ENTRY(_stext);
_ENTRY(_start);

--- 0.org/arch/powerpc/kernel/head_44x.S Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/head_44x.S Wed Jul 2 00:44:22 2008
@@ -50,7 +50,7 @@
* r7 - End of kernel command line string
*
*/
- .section .text.head, "ax"
+ .section .head.text, "ax"
_ENTRY(_stext);
_ENTRY(_start);
/*
--- 0.org/arch/powerpc/kernel/head_8xx.S Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/head_8xx.S Wed Jul 2 00:44:22 2008
@@ -38,7 +38,7 @@
#else
#define DO_8xx_CPU6(val, reg)
#endif
- .section .text.head, "ax"
+ .section .head.text, "ax"
_ENTRY(_stext);
_ENTRY(_start);

--- 0.org/arch/powerpc/kernel/head_fsl_booke.S Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/head_fsl_booke.S Wed Jul 2 00:44:22 2008
@@ -52,7 +52,7 @@
* r7 - End of kernel command line string
*
*/
- .section .text.head, "ax"
+ .section .head.text, "ax"
_ENTRY(_stext);
_ENTRY(_start);
/*
--- 0.org/arch/powerpc/kernel/init_task.c Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/init_task.c Wed Jul 2 00:45:57 2008
@@ -22,7 +22,7 @@
* "init_task" linker map entry..
*/
union thread_union init_thread_union
- __attribute__((__section__(".data.init_task"))) =
+ __attribute__((__section__(".init_task.data"))) =
{ INIT_THREAD_INFO(init_task) };

/*
--- 0.org/arch/powerpc/kernel/machine_kexec_64.c Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/machine_kexec_64.c Wed Jul 2 00:45:57 2008
@@ -250,7 +250,7 @@
* current, but that audit has not been performed.
*/
union thread_union kexec_stack
- __attribute__((__section__(".data.init_task"))) = { };
+ __attribute__((__section__(".init_task.data"))) = { };

/* Our assembly helper, in kexec_stub.S */
extern NORET_TYPE void kexec_sequence(void *newstack, unsigned long start,
--- 0.org/arch/powerpc/kernel/vdso.c Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/vdso.c Wed Jul 2 00:46:09 2008
@@ -74,7 +74,7 @@
static union {
struct vdso_data data;
u8 page[PAGE_SIZE];
-} vdso_data_store __attribute__((__section__(".data.page_aligned")));
+} vdso_data_store __attribute__((__section__(".page_aligned.data")));
struct vdso_data *vdso_data = &vdso_data_store.data;

/* Format of the patch table */
--- 0.org/arch/powerpc/kernel/vdso32/vdso32_wrapper.S Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/vdso32/vdso32_wrapper.S Wed Jul 2 00:46:09 2008
@@ -1,7 +1,7 @@
#include <linux/init.h>
#include <asm/page.h>

- .section ".data.page_aligned"
+ .section ".page_aligned.data"

.globl vdso32_start, vdso32_end
.balign PAGE_SIZE
--- 0.org/arch/powerpc/kernel/vdso64/vdso64_wrapper.S Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/vdso64/vdso64_wrapper.S Wed Jul 2 00:46:09 2008
@@ -1,7 +1,7 @@
#include <linux/init.h>
#include <asm/page.h>

- .section ".data.page_aligned"
+ .section ".page_aligned.data"

.globl vdso64_start, vdso64_end
.balign PAGE_SIZE
--- 0.org/arch/powerpc/kernel/vmlinux.lds.S Wed Jul 2 00:40:41 2008
+++ 1.fixname/arch/powerpc/kernel/vmlinux.lds.S Wed Jul 2 00:54:28 2008
@@ -33,9 +33,9 @@
/* Text and gots */
.text : AT(ADDR(.text) - LOAD_OFFSET) {
ALIGN_FUNCTION();
- *(.text.head)
+ *(.head.text)
_text = .;
- *(.text .fixup .text.init.refok .exit.text.refok)
+ *(.text .fixup .init.refok.text .exit.refok.text)
SCHED_TEXT
LOCK_TEXT
KPROBES_TEXT
@@ -144,10 +144,10 @@
}
#endif
. = ALIGN(PAGE_SIZE);
- .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) {
+ .percpu.data : AT(ADDR(.percpu.data) - LOAD_OFFSET) {
__per_cpu_start = .;
- *(.data.percpu)
- *(.data.percpu.shared_aligned)
+ *(.percpu.data)
+ *(.percpu.shared_aligned.data)
__per_cpu_end = .;
}

@@ -204,28 +204,28 @@
#else
. = ALIGN(16384);
#endif
- .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
- *(.data.init_task)
+ .init_task.data : AT(ADDR(.init_task.data) - LOAD_OFFSET) {
+ *(.init_task.data)
}

. = ALIGN(PAGE_SIZE);
- .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
- *(.data.page_aligned)
+ .page_aligned.data : AT(ADDR(.page_aligned.data) - LOAD_OFFSET) {
+ *(.page_aligned.data)
}

- .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {
- *(.data.cacheline_aligned)
+ .cacheline_aligned.data : AT(ADDR(.cacheline_aligned.data) - LOAD_OFFSET) {
+ *(.cacheline_aligned.data)
}

. = ALIGN(L1_CACHE_BYTES);
- .data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) {
- *(.data.read_mostly)
+ .read_mostly.data : AT(ADDR(.read_mostly.data) - LOAD_OFFSET) {
+ *(.read_mostly.data)
}

. = ALIGN(PAGE_SIZE);
.data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
__nosave_begin = .;
- *(.data.nosave)
+ *(.nosave.data)
. = ALIGN(PAGE_SIZE);
__nosave_end = .;
}
--- 0.org/include/asm-powerpc/cache.h Wed Jul 2 00:40:50 2008
+++ 1.fixname/include/asm-powerpc/cache.h Wed Jul 2 00:45:45 2008
@@ -35,7 +35,7 @@
#endif /* __powerpc64__ && ! __ASSEMBLY__ */

#if !defined(__ASSEMBLY__)
-#define __read_mostly __attribute__((__section__(".data.read_mostly")))
+#define __read_mostly __attribute__((__section__(".read_mostly.data")))
#endif

#endif /* __KERNEL__ */
--- 0.org/include/asm-powerpc/page_64.h Wed Jul 2 00:40:50 2008
+++ 1.fixname/include/asm-powerpc/page_64.h Wed Jul 2 00:46:09 2008
@@ -150,7 +150,7 @@
#else
#define __page_aligned \
__attribute__((__aligned__(PAGE_SIZE), \
- __section__(".data.page_aligned")))
+ __section__(".page_aligned.data")))
#endif

#define VM_DATA_DEFAULT_FLAGS \
--- 0.org/include/asm-powerpc/ppc_asm.h Wed Jul 2 00:40:50 2008
+++ 1.fixname/include/asm-powerpc/ppc_asm.h Wed Jul 2 00:44:28 2008
@@ -156,7 +156,7 @@
GLUE(.,name):

#define _INIT_GLOBAL(name) \
- .section ".text.init.refok"; \
+ .section ".init.refok.text"; \
.align 2 ; \
.globl name; \
.globl GLUE(.,name); \
@@ -196,7 +196,7 @@
GLUE(.,name):

#define _INIT_STATIC(name) \
- .section ".text.init.refok"; \
+ .section ".init.refok.text"; \
.align 2 ; \
.section ".opd","aw"; \
name: \
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/