ifeq ($(CONFIG_PPC32),y)
 head-$(CONFIG_6xx)             += arch/powerpc/kernel/idle_6xx.o
-head-$(CONFIG_POWER4)          += arch/powerpc/kernel/idle_power4.o
 head-$(CONFIG_PPC_FPU)         += arch/powerpc/kernel/fpu.o
 endif
 
 
 # Makefile for the linux kernel.
 #
 
+ifeq ($(CONFIG_PPC64),y)
+EXTRA_CFLAGS   += -mno-minimal-toc
+endif
+
 extra-$(CONFIG_PPC_STD_MMU)    := head.o
 extra_$(CONFIG_PPC64)          := head_64.o
 extra-$(CONFIG_40x)            := head_4xx.o
 extra-$(CONFIG_FSL_BOOKE)      := head_fsl_booke.o
 extra-$(CONFIG_8xx)            := head_8xx.o
 extra-$(CONFIG_6xx)            += idle_6xx.o
-extra-$(CONFIG_POWER4)         += idle_power4.o
 extra-$(CONFIG_PPC_FPU)                += fpu.o
 extra-y                                += vmlinux.lds
 
-obj-y                          := semaphore.o traps.o process.o
+obj-y                          := traps.o
+obj-$(CONFIG_PPC32)            += semaphore.o process.o
+obj-$(CONFIG_PPC64)            += idle_power4.o
+ifeq ($(CONFIG_PPC32),y)
 obj-$(CONFIG_MODULES)          += ppc_ksyms.o
+endif
 obj-$(CONFIG_ALTIVEC)          += vecemu.o vector.o
 
 head-y := arch/ppc64/kernel/head.o
 
 libs-y                         += arch/ppc64/lib/
-core-y                         += arch/ppc64/kernel/
+core-y                         += arch/ppc64/kernel/ arch/powerpc/kernel/
 core-y                         += arch/ppc64/mm/
 core-y                         += arch/powerpc/platforms/
 core-$(CONFIG_XMON)            += arch/ppc64/xmon/
 
 EXTRA_CFLAGS   += -mno-minimal-toc
 extra-y                := head.o vmlinux.lds
 
-obj-y               := setup.o entry.o traps.o irq.o idle.o dma.o \
+obj-y               := setup.o entry.o irq.o idle.o dma.o \
                        time.o process.o signal.o syscalls.o misc.o ptrace.o \
                        align.o semaphore.o bitops.o pacaData.o \
                        udbg.o binfmt_elf32.o sys_ppc32.o ioctl32.o \
                        ptrace32.o signal32.o rtc.o init_task.o \
-                       lmb.o cputable.o cpu_setup_power4.o idle_power4.o \
+                       lmb.o cputable.o cpu_setup_power4.o \
                        iommu.o sysfs.o vdso.o pmc.o firmware.o prom.o
 obj-y += vdso32/ vdso64/
 
 obj-$(CONFIG_PPC_MAPLE)                += smp-tbsync.o
 endif
 
-obj-$(CONFIG_ALTIVEC)          += vecemu.o vector.o
 obj-$(CONFIG_KPROBES)          += kprobes.o
 
 CFLAGS_ioctl32.o += -Ifs/
 AFLAGS_head.o += -Iarch/powerpc/platforms/iseries
 endif
 
-# These are here while we do the architecture merge
-vecemu-y                       += ../../powerpc/kernel/vecemu.o
-vector-y                       += ../../powerpc/kernel/vector.o
-idle_power4-y                  += ../../powerpc/kernel/idle_power4.o
-traps-y                                += ../../powerpc/kernel/traps.o
-
 else
 
 endif