]> err.no Git - linux-2.6/commitdiff
[POWERPC] Fix modpost warnings from head*.S on ppc32
authorKumar Gala <galak@kernel.crashing.org>
Thu, 13 Sep 2007 20:42:35 +0000 (15:42 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Fri, 14 Sep 2007 13:53:36 +0000 (08:53 -0500)
We get warnings like the following from the various ppc32 head*.S files:

WARNING: vmlinux.o(.text+0x358): Section mismatch: reference to .init.text:early_init (between 'skpinv' and 'interrupt_base')
WARNING: vmlinux.o(.text+0x380): Section mismatch: reference to .init.text:machine_init (between 'skpinv' and 'interrupt_base')
WARNING: vmlinux.o(.text+0x384): Section mismatch: reference to .init.text:MMU_init (between 'skpinv' and 'interrupt_base')
WARNING: vmlinux.o(.text+0x3aa): Section mismatch: reference to .init.text:start_kernel (between 'skpinv' and 'interrupt_base')
WARNING: vmlinux.o(.text+0x3ae): Section mismatch: reference to .init.text:start_kernel (between 'skpinv' and 'interrupt_base')

Added a .text.head section simliar to what other architectures do since
modpost already excludes this from its warnings.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/kernel/head_32.S
arch/powerpc/kernel/head_40x.S
arch/powerpc/kernel/head_44x.S
arch/powerpc/kernel/head_8xx.S
arch/powerpc/kernel/head_fsl_booke.S
arch/powerpc/kernel/vmlinux.lds.S
include/asm-powerpc/ppc_asm.h

index 0e3df1f55febd26a47da3579dc09b58c074f3907..12febfe43de64a9463b14006fe2113e608c484c7 100644 (file)
        mtspr   SPRN_DBAT##n##L,RB;     \
 1:
 
-       .text
+       .section        .text.head, "ax"
        .stabs  "arch/powerpc/kernel/",N_SO,0,0,0f
        .stabs  "head_32.S",N_SO,0,0,0f
 0:
-       .globl  _stext
-_stext:
+_ENTRY(_stext);
 
 /*
  * _start is defined this way because the XCOFF loader in the OpenFirmware
  * on the powermac expects the entry point to be a procedure descriptor.
  */
-       .text
-       .globl  _start
-_start:
+_ENTRY(_start);
        /*
         * These are here for legacy reasons, the kernel used to
         * need to look like a coff function entry for the pmac
@@ -841,7 +838,7 @@ relocate_kernel:
  * r3 = dest addr, r4 = source addr, r5 = copy limit, r6 = start offset
  * on exit, r3, r4, r5 are unchanged, r6 is updated to be >= r5.
  */
-_GLOBAL(copy_and_flush)
+_ENTRY(copy_and_flush)
        addi    r5,r5,-4
        addi    r6,r6,-4
 4:     li      r0,L1_CACHE_BYTES/4
@@ -954,9 +951,9 @@ __secondary_start:
  * included in CONFIG_6xx
  */
 #if !defined(CONFIG_6xx)
-_GLOBAL(__save_cpu_setup)
+_ENTRY(__save_cpu_setup)
        blr
-_GLOBAL(__restore_cpu_setup)
+_ENTRY(__restore_cpu_setup)
        blr
 #endif /* !defined(CONFIG_6xx) */
 
@@ -1080,7 +1077,7 @@ start_here:
 /*
  * Set up the segment registers for a new context.
  */
-_GLOBAL(set_context)
+_ENTRY(set_context)
        mulli   r3,r3,897       /* multiply context by skew factor */
        rlwinm  r3,r3,4,8,27    /* VSID = (context & 0xfffff) << 4 */
        addis   r3,r3,0x6000    /* Set Ks, Ku bits */
index a8e045773a928ec3332912d7ccd3b1d052ad71d8..00bdb6d1c724fcf4d5ebe0d713f56845035fcc37 100644 (file)
@@ -52,9 +52,9 @@
  *
  * This is all going to change RSN when we add bi_recs.......  -- Dan
  */
-       .text
-_GLOBAL(_stext)
-_GLOBAL(_start)
+       .section        .text.head, "ax"
+_ENTRY(_stext);
+_ENTRY(_start);
 
        /* Save parameters we are passed.
        */
@@ -89,9 +89,9 @@ turn_on_mmu:
  */
        . = 0xc0
 crit_save:
-_GLOBAL(crit_r10)
+_ENTRY(crit_r10)
        .space  4
-_GLOBAL(crit_r11)
+_ENTRY(crit_r11)
        .space  4
 
 /*
@@ -814,7 +814,7 @@ finish_tlb_load:
  * The PowerPC 4xx family of processors do not have an FPU, so this just
  * returns.
  */
-_GLOBAL(giveup_fpu)
+_ENTRY(giveup_fpu)
        blr
 
 /* This is where the main kernel code starts.
index e26d26e31813699ec36807b3cdc870d3bea2190b..a3dc0e4d0456c1e9e11fe031a40f2a5b734d0650 100644 (file)
@@ -50,9 +50,9 @@
  *   r7 - End of kernel command line string
  *
  */
-       .text
-_GLOBAL(_stext)
-_GLOBAL(_start)
+       .section        .text.head, "ax"
+_ENTRY(_stext);
+_ENTRY(_start);
        /*
         * Reserve a word at a fixed location to store the address
         * of abatron_pteptrs
index 901be47a02a98c65350038049c3cf7ddeec4870f..a6ecdd643167eb9c9ac12fa1788ab3ac808a6a43 100644 (file)
 #else
 #define DO_8xx_CPU6(val, reg)
 #endif
-       .text
-       .globl  _stext
-_stext:
-       .text
-       .globl  _start
-_start:
+       .section        .text.head, "ax"
+_ENTRY(_stext);
+_ENTRY(_start);
 
 /* MPC8xx
  * This port was done on an MBX board with an 860.  Right now I only
index 1f155d399d576859ab502f0149bf2032285f3e49..d83cbbb264e2fbf75563839e7335825bc4e5c159 100644 (file)
@@ -52,9 +52,9 @@
  *   r7 - End of kernel command line string
  *
  */
-       .text
-_GLOBAL(_stext)
-_GLOBAL(_start)
+       .section        .text.head, "ax"
+_ENTRY(_stext);
+_ENTRY(_start);
        /*
         * Reserve a word at a fixed location to store the address
         * of abatron_pteptrs
index 0c458556399fc9bc194ca37e834fcb2d72011b70..823a8cbd60b5bffd1025cff71ee2b56e0c751f76 100644 (file)
@@ -34,6 +34,8 @@ SECTIONS
 
        /* Text and gots */
        .text : {
+               ALIGN_FUNCTION();
+               *(.text.head)
                _text = .;
                TEXT_TEXT
                SCHED_TEXT
index 211fdaeeef84abe74fbcf5d8ee4bac5e44859ea4..2dbd4e7884faee59e96e53b391e1495bee1307e2 100644 (file)
@@ -209,6 +209,10 @@ GLUE(.,name):
 
 #else /* 32-bit */
 
+#define _ENTRY(n)      \
+       .globl n;       \
+n:
+
 #define _GLOBAL(n)     \
        .text;          \
        .stabs __stringify(n:F-1),N_FUN,0,0,n;\