sparc: prepare kernel/ for unification

o sparc32 files with identical names to sparc64 renamed to <name>_32.S
o introduced a few Kconfig helpers to simplify Makefile logic
o refactored Makefile to prepare for unification
  - use obj-$(CONFIG_SPARC32) for sparc32 specific files
  - use <name>_$(BITS) for files where sparc64 has a _64 variant
  - sparc64 directly include a few files where sparc32 builds them,
    refer to these files directly (no BITS)
  - sneaked in -Werror as used by sparc64
o modified sparc/Makefile to use the new names for head/init_task

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Sam Ravnborg 2008-12-03 03:08:37 -08:00 коммит произвёл David S. Miller
Родитель 478b8fecda
Коммит d670bd4f80
28 изменённых файлов: 73 добавлений и 20 удалений

Просмотреть файл

@ -198,6 +198,17 @@ config EMULATED_CMPXCHG
Sparc32 does not have a CAS instruction like sparc64. cmpxchg() Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
is emulated, and therefore it is not completely atomic. is emulated, and therefore it is not completely atomic.
# Makefile helpers
config SPARC32_SMP
bool
default y
depends on SPARC32 && SMP
config SPARC64_SMP
bool
default y
depends on SPARC64 && SMP
choice choice
prompt "Kernel page size" if SPARC64 prompt "Kernel page size" if SPARC64
default SPARC64_PAGE_SIZE_8KB default SPARC64_PAGE_SIZE_8KB
@ -505,6 +516,16 @@ config SUN_OPENPROMFS
Only choose N if you know in advance that you will not need to modify Only choose N if you know in advance that you will not need to modify
OpenPROM settings on the running system. OpenPROM settings on the running system.
# Makefile helpers
config SPARC32_PCI
bool
default y
depends on SPARC32 && PCI
config SPARC64_PCI
bool
default y
depends on SPARC64 && PCI
endmenu endmenu

Просмотреть файл

@ -67,8 +67,8 @@ endif
endif endif
head-$(CONFIG_SPARC32) := arch/sparc/kernel/head.o head-$(CONFIG_SPARC32) := arch/sparc/kernel/head_$(BITS).o
head-$(CONFIG_SPARC32) += arch/sparc/kernel/init_task.o head-$(CONFIG_SPARC32) += arch/sparc/kernel/init_task_$(BITS).o
head-$(CONFIG_SPARC64) := arch/sparc64/kernel/head.o head-$(CONFIG_SPARC64) := arch/sparc64/kernel/head.o
head-$(CONFIG_SPARC64) += arch/sparc64/kernel/init_task.o head-$(CONFIG_SPARC64) += arch/sparc64/kernel/init_task.o

Просмотреть файл

@ -2,25 +2,57 @@
# Makefile for the linux kernel. # Makefile for the linux kernel.
# #
extra-y := head.o init_task.o vmlinux.lds asflags-y := -ansi
ccflags-y := -Werror
EXTRA_AFLAGS := -ansi extra-y := head_$(BITS).o
extra-y += init_task_$(BITS).o
extra-y += vmlinux.lds
IRQ_OBJS := irq.o sun4m_irq.o sun4c_irq.o sun4d_irq.o obj-$(CONFIG_SPARC32) += entry.o wof.o wuf.o
obj-y := entry.o wof.o wuf.o etrap.o rtrap.o traps.o $(IRQ_OBJS) \ obj-$(CONFIG_SPARC32) += etrap_32.o
process.o signal.o ioport.o setup.o idprom.o \ obj-$(CONFIG_SPARC32) += rtrap_32.o
sys_sparc.o systbls.o \ obj-y += traps_$(BITS).o
time.o windows.o cpu.o devices.o \
tadpole.o tick14.o ptrace.o \
unaligned.o una_asm.o muldiv.o \
prom.o of_device.o devres.o dma.o
devres-y = ../../../kernel/irq/devres.o # IRQ
obj-y += irq_$(BITS).o
obj-$(CONFIG_SPARC32) += sun4m_irq.o sun4c_irq.o sun4d_irq.o
obj-$(CONFIG_PCI) += pcic.o obj-y += process_$(BITS).o
obj-$(CONFIG_SMP) += trampoline.o smp.o sun4m_smp.o sun4d_smp.o obj-y += signal_$(BITS).o
obj-$(CONFIG_SUN_AUXIO) += auxio.o obj-$(CONFIG_SPARC32) += ioport.o
obj-y += setup_$(BITS).o
obj-y += idprom_$(BITS).o
obj-y += sys_sparc_$(BITS).o
obj-$(CONFIG_SPARC32) += systbls_32.o
obj-y += time_$(BITS).o
obj-$(CONFIG_SPARC32) += windows.o
obj-y += cpu_$(BITS).o
obj-$(CONFIG_SPARC32) += devices.o
obj-$(CONFIG_SPARC32) += tadpole.o
obj-$(CONFIG_SPARC32) += tick14.o
obj-y += ptrace_$(BITS).o
obj-y += unaligned_$(BITS).o
obj-y += una_asm_$(BITS).o
obj-$(CONFIG_SPARC32) += muldiv.o
obj-y += prom_$(BITS).o
obj-y += of_device_$(BITS).o
# sparc32 do not use GENERIC_HARDIRQS but uses the generic devres implementation
obj-$(CONFIG_SPARC32) += devres.o
devres-y := ../../../kernel/irq/devres.o
obj-$(CONFIG_SPARC32) += dma.o
obj-$(CONFIG_SPARC32_PCI) += pcic.o
obj-$(CONFIG_SMP) += trampoline_$(BITS).o smp_$(BITS).o
obj-$(CONFIG_SPARC32_SMP) += sun4m_smp.o sun4d_smp.o
obj-y += auxio_$(BITS).o
obj-$(CONFIG_SUN_PM) += apc.o pmc.o obj-$(CONFIG_SUN_PM) += apc.o pmc.o
obj-$(CONFIG_MODULES) += module.o sparc_ksyms.o
obj-$(CONFIG_MODULES) += module_$(BITS).o
obj-$(CONFIG_MODULES) += sparc_ksyms_$(BITS).o
obj-$(CONFIG_SPARC_LED) += led.o obj-$(CONFIG_SPARC_LED) += led.o
obj-$(CONFIG_KGDB) += kgdb.o obj-$(CONFIG_KGDB) += kgdb_$(BITS).o

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл