ChangeSet 1.2080, 2005/03/12 09:15:57-08:00, [EMAIL PROTECTED]
[PATCH] PA-RISC GCC-3.4 build fix
fix problem with building 64-bit kernels with gcc-3.4
Signed-off-by: Randolph Chung <[EMAIL PROTECTED]>
Signed-off-by: Matthew Wilcox <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
init_task.c | 12 ++++++++----
vmlinux.lds.S | 3 +++
2 files changed, 11 insertions(+), 4 deletions(-)
diff -Nru a/arch/parisc/kernel/init_task.c b/arch/parisc/kernel/init_task.c
--- a/arch/parisc/kernel/init_task.c 2005-03-12 21:43:35 -08:00
+++ b/arch/parisc/kernel/init_task.c 2005-03-12 21:43:35 -08:00
@@ -55,11 +55,15 @@
#ifdef __LP64__
/* NOTE: This layout exactly conforms to the hybrid L2/L3 page table layout
- * with the first pmd adjacent to the pgd and below it */
-pmd_t pmd0[PTRS_PER_PMD] __attribute__ ((aligned(PAGE_SIZE))) = { {0}, };
+ * with the first pmd adjacent to the pgd and below it. gcc doesn't actually
+ * guarantee that global objects will be laid out in memory in the same order
+ * as the order of declaration, so put these in different sections and use
+ * the linker script to order them. */
+pmd_t pmd0[PTRS_PER_PMD] __attribute__ ((aligned(PAGE_SIZE))) __attribute__
((__section__ (".data.vm0.pmd"))) = { {0}, };
+
#endif
-pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__ ((aligned(PAGE_SIZE))) = {
{0}, };
-pte_t pg0[PT_INITIAL * PTRS_PER_PTE] __attribute__ ((aligned(PAGE_SIZE))) = {
{0}, };
+pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__ ((aligned(PAGE_SIZE)))
__attribute__ ((__section__ (".data.vm0.pgd"))) = { {0}, };
+pte_t pg0[PT_INITIAL * PTRS_PER_PTE] __attribute__ ((aligned(PAGE_SIZE)))
__attribute__ ((__section__ (".data.vm0.pte"))) = { {0}, };
/*
* Initial task structure.
diff -Nru a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S
--- a/arch/parisc/kernel/vmlinux.lds.S 2005-03-12 21:43:35 -08:00
+++ b/arch/parisc/kernel/vmlinux.lds.S 2005-03-12 21:43:35 -08:00
@@ -84,6 +84,9 @@
.data : { /* Data */
*(.data)
+ *(.data.vm0.pmd)
+ *(.data.vm0.pgd)
+ *(.data.vm0.pte)
CONSTRUCTORS
}
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html