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

Reply via email to