![Thomas Petazzoni](/assets/img/avatar_default.png)
Commitebd97be635
('PCI: remove ARCH_SUPPORTS_MSI kconfig option') removes the ARCH_SUPPORTS_MSI Kconfig option that allowed architectures to indicate whether they support PCI MSI or not. Now, PCI MSI support can be compiled in on any architecture thanks to the use of weak functions thanks to4287d824f2
('PCI: use weak functions for MSI arch-specific functions'). So, architecture specific code is now responsible to ensure that its PCI MSI code builds in all cases, or be appropriately conditionally compiled. On Sparc, the MSI support is only provided for Sparc64, so the ARCH_SUPPORTS_MSI kconfig option was only selected for SPARC64, and not for the Sparc architecture as a whole. Therefore, removing ARCH_SUPPORTS_MSI broke Sparc32 configurations with CONFIG_PCI_MSI=y, because the Sparc-specific MSI code is not designed to be built on Sparc32. To solve this, this commit ensures that the Sparc MSI code is only built on Sparc64. This is done thanks to a new Kconfig Makefile helper option SPARC64_PCI_MSI, modeled after the existing SPARC64_PCI. The SPARC64_PCI_MSI option is an hidden option that is true when both Sparc64 PCI support is enabled and MSI is enabled. The arch/sparc/kernel/pci_msi.c file is now only built when SPARC64_PCI_MSI is true. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reported-by: Guenter Roeck <linux@roeck-us.net> Tested-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: David S. Miller <davem@davemloft.net>
120 lines
3.7 KiB
Makefile
120 lines
3.7 KiB
Makefile
|
|
#
|
|
# Makefile for the linux kernel.
|
|
#
|
|
|
|
asflags-y := -ansi
|
|
ccflags-y := -Werror
|
|
|
|
extra-y := head_$(BITS).o
|
|
|
|
# Undefine sparc when processing vmlinux.lds - it is used
|
|
# And teach CPP we are doing $(BITS) builds (for this case)
|
|
CPPFLAGS_vmlinux.lds := -Usparc -m$(BITS)
|
|
extra-y += vmlinux.lds
|
|
|
|
ifdef CONFIG_FUNCTION_TRACER
|
|
# Do not profile debug and lowlevel utilities
|
|
CFLAGS_REMOVE_ftrace.o := -pg
|
|
CFLAGS_REMOVE_time_$(BITS).o := -pg
|
|
CFLAGS_REMOVE_perf_event.o := -pg
|
|
CFLAGS_REMOVE_pcr.o := -pg
|
|
endif
|
|
|
|
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 sun4d_irq.o
|
|
|
|
obj-y += process_$(BITS).o
|
|
obj-y += signal_$(BITS).o
|
|
obj-y += sigutil_$(BITS).o
|
|
obj-$(CONFIG_SPARC32) += ioport.o
|
|
obj-y += setup_$(BITS).o
|
|
obj-y += idprom.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.o
|
|
obj-$(CONFIG_SPARC32) += devices.o
|
|
obj-$(CONFIG_SPARC32) += tadpole.o
|
|
obj-y += ptrace_$(BITS).o
|
|
obj-y += unaligned_$(BITS).o
|
|
obj-y += una_asm_$(BITS).o
|
|
obj-y += prom_common.o
|
|
obj-y += prom_$(BITS).o
|
|
obj-y += of_device_common.o
|
|
obj-y += of_device_$(BITS).o
|
|
obj-$(CONFIG_SPARC64) += prom_irqtrans.o
|
|
|
|
obj-$(CONFIG_SPARC32) += leon_kernel.o
|
|
obj-$(CONFIG_SPARC32) += leon_pmc.o
|
|
|
|
obj-$(CONFIG_SPARC64) += reboot.o
|
|
obj-$(CONFIG_SPARC64) += sysfs.o
|
|
obj-$(CONFIG_SPARC64) += iommu.o
|
|
obj-$(CONFIG_SPARC64) += central.o
|
|
obj-$(CONFIG_SPARC64) += starfire.o
|
|
obj-$(CONFIG_SPARC64) += power.o
|
|
obj-$(CONFIG_SPARC64) += sbus.o
|
|
obj-$(CONFIG_SPARC64) += ebus.o
|
|
obj-$(CONFIG_SPARC64) += visemul.o
|
|
obj-$(CONFIG_SPARC64) += hvapi.o
|
|
obj-$(CONFIG_SPARC64) += sstate.o
|
|
obj-$(CONFIG_SPARC64) += mdesc.o
|
|
obj-$(CONFIG_SPARC64) += pcr.o
|
|
obj-$(CONFIG_SPARC64) += nmi.o
|
|
obj-$(CONFIG_SPARC64_SMP) += cpumap.o
|
|
|
|
obj-y += dma.o
|
|
|
|
obj-$(CONFIG_PCIC_PCI) += pcic.o
|
|
obj-$(CONFIG_LEON_PCI) += leon_pci.o
|
|
obj-$(CONFIG_SPARC_GRPCI2)+= leon_pci_grpci2.o
|
|
obj-$(CONFIG_SPARC_GRPCI1)+= leon_pci_grpci1.o
|
|
|
|
obj-$(CONFIG_SMP) += trampoline_$(BITS).o smp_$(BITS).o
|
|
obj-$(CONFIG_SPARC32_SMP) += sun4m_smp.o sun4d_smp.o leon_smp.o
|
|
obj-$(CONFIG_SPARC64_SMP) += hvtramp.o
|
|
|
|
obj-y += auxio_$(BITS).o
|
|
obj-$(CONFIG_SUN_PM) += apc.o pmc.o
|
|
|
|
obj-$(CONFIG_MODULES) += module.o
|
|
obj-$(CONFIG_MODULES) += sparc_ksyms_$(BITS).o
|
|
obj-$(CONFIG_SPARC_LED) += led.o
|
|
obj-$(CONFIG_KGDB) += kgdb_$(BITS).o
|
|
|
|
|
|
obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
|
|
obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
|
|
|
|
obj-$(CONFIG_EARLYFB) += btext.o
|
|
obj-$(CONFIG_STACKTRACE) += stacktrace.o
|
|
# sparc64 PCI
|
|
obj-$(CONFIG_SPARC64_PCI) += pci.o pci_common.o psycho_common.o
|
|
obj-$(CONFIG_SPARC64_PCI) += pci_psycho.o pci_sabre.o pci_schizo.o
|
|
obj-$(CONFIG_SPARC64_PCI) += pci_sun4v.o pci_sun4v_asm.o pci_fire.o
|
|
obj-$(CONFIG_SPARC64_PCI_MSI) += pci_msi.o
|
|
|
|
obj-$(CONFIG_COMPAT) += sys32.o sys_sparc32.o signal32.o
|
|
|
|
obj-$(CONFIG_US3_MC) += chmc.o
|
|
|
|
obj-$(CONFIG_KPROBES) += kprobes.o
|
|
obj-$(CONFIG_SUN_LDOMS) += ldc.o vio.o viohs.o ds.o
|
|
|
|
obj-$(CONFIG_AUDIT) += audit.o
|
|
audit--$(CONFIG_AUDIT) := compat_audit.o
|
|
obj-$(CONFIG_COMPAT) += $(audit--y)
|
|
|
|
pc--$(CONFIG_PERF_EVENTS) := perf_event.o
|
|
obj-$(CONFIG_SPARC64) += $(pc--y)
|
|
|
|
obj-$(CONFIG_SPARC64) += jump_label.o
|