[<prev] [next>] [day] [month] [year] [list]
Message-Id: <200807020241.35406.vda.linux@googlemail.com>
Date: Wed, 2 Jul 2008 02:41:35 +0200
From: Denys Vlasenko <vda.linux@...glemail.com>
To: linux-arch@...r.kernel.org
Cc: Russell King <rmk@....linux.org.uk>,
David Howells <dhowells@...hat.com>,
Ralf Baechle <ralf@...ux-mips.org>,
Lennert Buytenhek <kernel@...tstofly.org>,
Josh Boyer <jwboyer@...ux.vnet.ibm.com>,
Paul Mackerras <paulus@...ba.org>,
David Woodhouse <dwmw2@...radead.org>,
Andi Kleen <andi@...stfloor.org>,
torvalds@...ux-foundation.org, akpm@...ux-foundation.org,
Paul Gortmaker <paul.gortmaker@...driver.com>,
linux-embedded@...r.kernel.org, linux-kernel@...r.kernel.org,
Tim Bird <tim.bird@...sony.com>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
Dave Miller <davem@...emloft.net>
Subject: [PATCH 19/23] make section names compatible with -ffunction-sections -fdata-sections: sparc
The purpose of this patch is to make kernel buildable
with "gcc -ffunction-sections -fdata-sections".
This patch fixes sparc architecture.
Signed-off-by: Denys Vlasenko <vda.linux@...glemail.com>
--
vda
--- 0.org/arch/sparc/boot/btfixupprep.c Wed Jul 2 00:40:42 2008
+++ 1.fixname/arch/sparc/boot/btfixupprep.c Wed Jul 2 00:45:57 2008
@@ -171,7 +171,7 @@
}
} else if (buffer[nbase+4] != '_')
continue;
- if (!strcmp (sect, ".text.exit"))
+ if (!strcmp (sect, ".exit.text"))
continue;
if (strcmp (sect, ".text") &&
strcmp (sect, ".init.text") &&
@@ -325,7 +325,7 @@
(*rr)->next = NULL;
}
printf("! Generated by btfixupprep. Do not edit.\n\n");
- printf("\t.section\t\".data.init\",#alloc,#write\n\t.align\t4\n\n");
+ printf("\t.section\t\".init.data\",#alloc,#write\n\t.align\t4\n\n");
printf("\t.global\t___btfixup_start\n___btfixup_start:\n\n");
for (i = 0; i < last; i++) {
f = array + i;
--- 0.org/arch/sparc/kernel/head.S Wed Jul 2 00:40:42 2008
+++ 1.fixname/arch/sparc/kernel/head.S Wed Jul 2 00:44:28 2008
@@ -742,7 +742,7 @@
nop
/* The code above should be at beginning and we have to take care about
- * short jumps, as branching to .text.init section from .text is usually
+ * short jumps, as branching to .init.text section from .text is usually
* impossible */
__INIT
/* Acquire boot time privileged register values, this will help debugging.
--- 0.org/arch/sparc/kernel/vmlinux.lds.S Wed Jul 2 00:40:42 2008
+++ 1.fixname/arch/sparc/kernel/vmlinux.lds.S Wed Jul 2 00:45:51 2008
@@ -86,12 +86,12 @@
. = ALIGN(PAGE_SIZE);
__init_end = .;
. = ALIGN(32);
- .data.cacheline_aligned : {
- *(.data.cacheline_aligned)
+ .cacheline_aligned.data : {
+ *(.cacheline_aligned.data)
}
. = ALIGN(32);
- .data.read_mostly : {
- *(.data.read_mostly)
+ .read_mostly.data : {
+ *(.read_mostly.data)
}
__bss_start = .;
--- 0.org/arch/sparc64/kernel/head.S Wed Jul 2 00:40:42 2008
+++ 1.fixname/arch/sparc64/kernel/head.S Wed Jul 2 00:44:28 2008
@@ -466,7 +466,7 @@
jmpl %g2 + %g0, %g0
nop
- .section .text.init.refok
+ .section .init.refok.text
sun4u_init:
BRANCH_IF_SUN4V(g1, sun4v_init)
--- 0.org/arch/sparc64/kernel/vmlinux.lds.S Wed Jul 2 00:40:42 2008
+++ 1.fixname/arch/sparc64/kernel/vmlinux.lds.S Wed Jul 2 00:45:51 2008
@@ -32,12 +32,12 @@
*(.data1)
}
. = ALIGN(64);
- .data.cacheline_aligned : {
- *(.data.cacheline_aligned)
+ .cacheline_aligned.data : {
+ *(.cacheline_aligned.data)
}
. = ALIGN(64);
- .data.read_mostly : {
- *(.data.read_mostly)
+ .read_mostly.data : {
+ *(.read_mostly.data)
}
_edata = .;
PROVIDE (edata = .);
--- 0.org/include/asm-sparc/cache.h Wed Jul 2 00:40:51 2008
+++ 1.fixname/include/asm-sparc/cache.h Wed Jul 2 00:45:45 2008
@@ -19,7 +19,7 @@
#define SMP_CACHE_BYTES (1 << SMP_CACHE_BYTES_SHIFT)
-#define __read_mostly __attribute__((__section__(".data.read_mostly")))
+#define __read_mostly __attribute__((__section__(".read_mostly.data")))
#ifdef CONFIG_SPARC32
#include <asm/asi.h>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists