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

Signed-off-by: Denys Vlasenko
--
vda


--- 0.org/arch/s390/kernel/head.S Wed Jul 2 00:40:42 2008
+++ 1.fixname/arch/s390/kernel/head.S Wed Jul 2 00:44:22 2008
@@ -35,7 +35,7 @@
#define ARCH_OFFSET 0
#endif

-.section ".text.head","ax"
+.section ".head.text","ax"
#ifndef CONFIG_IPL
.org 0
.long 0x00080000,0x80000000+startup # Just a restart PSW
--- 0.org/arch/s390/kernel/init_task.c Wed Jul 2 00:40:42 2008
+++ 1.fixname/arch/s390/kernel/init_task.c Wed Jul 2 00:45:57 2008
@@ -31,7 +31,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/s390/kernel/vmlinux.lds.S Wed Jul 2 00:40:42 2008
+++ 1.fixname/arch/s390/kernel/vmlinux.lds.S Wed Jul 2 00:46:32 2008
@@ -28,7 +28,7 @@
. = 0x00000000;
.text : {
_text = .; /* Text and read-only data */
- *(.text.head)
+ *(.head.text)
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
@@ -66,30 +66,30 @@
. = ALIGN(PAGE_SIZE);
.data_nosave : {
__nosave_begin = .;
- *(.data.nosave)
+ *(.nosave.data)
}
. = ALIGN(PAGE_SIZE);
__nosave_end = .;

. = ALIGN(PAGE_SIZE);
- .data.page_aligned : {
- *(.data.idt)
+ .page_aligned.data : {
+ *(.idt.data)
}

. = ALIGN(0x100);
- .data.cacheline_aligned : {
- *(.data.cacheline_aligned)
+ .cacheline_aligned.data : {
+ *(.cacheline_aligned.data)
}

. = ALIGN(0x100);
- .data.read_mostly : {
- *(.data.read_mostly)
+ .read_mostly.data : {
+ *(.read_mostly.data)
}
_edata = .; /* End of data section */

. = ALIGN(2 * PAGE_SIZE); /* init_task */
- .data.init_task : {
- *(.data.init_task)
+ .init_task.data : {
+ *(.init_task.data)
}

/* will be freed after init */
--- 0.org/include/asm-s390/cache.h Wed Jul 2 00:40:50 2008
+++ 1.fixname/include/asm-s390/cache.h Wed Jul 2 00:45:45 2008
@@ -14,6 +14,6 @@
#define L1_CACHE_BYTES 256
#define L1_CACHE_SHIFT 8

-#define __read_mostly __attribute__((__section__(".data.read_mostly")))
+#define __read_mostly __attribute__((__section__(".read_mostly.data")))

#endif
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/