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
  * 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
  * 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) */
 
 /*
  * 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 */
 
  *
  * 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.
        */
  */
        . = 0xc0
 crit_save:
-_GLOBAL(crit_r10)
+_ENTRY(crit_r10)
        .space  4
-_GLOBAL(crit_r11)
+_ENTRY(crit_r11)
        .space  4
 
 /*
  * 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.