Skip to content

Commit

Permalink
sparc: prepare kernel/ for unification
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
sravnborg authored and davem330 committed Dec 4, 2008
1 parent 478b8fe commit d670bd4
Show file tree
Hide file tree
Showing 28 changed files with 77 additions and 24 deletions.
21 changes: 21 additions & 0 deletions arch/sparc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,17 @@ config EMULATED_CMPXCHG
Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
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
prompt "Kernel page size" if SPARC64
default SPARC64_PAGE_SIZE_8KB
Expand Down Expand Up @@ -505,6 +516,16 @@ config SUN_OPENPROMFS
Only choose N if you know in advance that you will not need to modify
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

Expand Down
4 changes: 2 additions & 2 deletions arch/sparc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ endif

endif

head-$(CONFIG_SPARC32) := arch/sparc/kernel/head.o
head-$(CONFIG_SPARC32) += arch/sparc/kernel/init_task.o
head-$(CONFIG_SPARC32) := arch/sparc/kernel/head_$(BITS).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/init_task.o

Expand Down
76 changes: 54 additions & 22 deletions arch/sparc/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,57 @@
# Makefile for the linux kernel.
#

extra-y := head.o init_task.o vmlinux.lds

EXTRA_AFLAGS := -ansi

IRQ_OBJS := irq.o sun4m_irq.o sun4c_irq.o sun4d_irq.o
obj-y := entry.o wof.o wuf.o etrap.o rtrap.o traps.o $(IRQ_OBJS) \
process.o signal.o ioport.o setup.o idprom.o \
sys_sparc.o systbls.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

obj-$(CONFIG_PCI) += pcic.o
obj-$(CONFIG_SMP) += trampoline.o smp.o sun4m_smp.o sun4d_smp.o
obj-$(CONFIG_SUN_AUXIO) += auxio.o
obj-$(CONFIG_SUN_PM) += apc.o pmc.o
obj-$(CONFIG_MODULES) += module.o sparc_ksyms.o
obj-$(CONFIG_SPARC_LED) += led.o
obj-$(CONFIG_KGDB) += kgdb.o
asflags-y := -ansi
ccflags-y := -Werror

extra-y := head_$(BITS).o
extra-y += init_task_$(BITS).o
extra-y += vmlinux.lds

obj-$(CONFIG_SPARC32) += entry.o wof.o wuf.o
obj-$(CONFIG_SPARC32) += etrap_32.o
obj-$(CONFIG_SPARC32) += rtrap_32.o
obj-y += traps_$(BITS).o

# IRQ
obj-y += irq_$(BITS).o
obj-$(CONFIG_SPARC32) += sun4m_irq.o sun4c_irq.o sun4d_irq.o

obj-y += process_$(BITS).o
obj-y += signal_$(BITS).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_MODULES) += module_$(BITS).o
obj-$(CONFIG_MODULES) += sparc_ksyms_$(BITS).o
obj-$(CONFIG_SPARC_LED) += led.o
obj-$(CONFIG_KGDB) += kgdb_$(BITS).o
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit d670bd4

Please sign in to comment.