i386: select correct components for no-board build
The local APIC is a part of the CPU and has callbacks that are invoked from multiple accelerators. The IOAPIC on the other hand is optional, but ioapic_eoi_broadcast is used by common x86 code to implement the IOAPIC's implicit EOI mode. Add a stub in case the IOAPIC device is not included but the APIC is. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Zhao Liu <zhao1.liu@intel.com> Message-ID: <20240509170044.190795-13-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
d0be0ac2c3
commit
1b1badf3c5
@ -650,7 +650,7 @@ build-tci:
|
||||
# Check our reduced build configurations
|
||||
# requires libfdt: aarch64, arm, i386, loongarch64, microblaze, microblazeel,
|
||||
# mips64el, or1k, ppc, ppc64, riscv32, riscv64, rx, x86_64
|
||||
# does not build without boards: i386, x86_64
|
||||
# fails qtest without boards: i386, x86_64
|
||||
build-without-defaults:
|
||||
extends: .native_build_job_template
|
||||
needs:
|
||||
|
29
hw/intc/ioapic-stub.c
Normal file
29
hw/intc/ioapic-stub.c
Normal file
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* ioapic.c IOAPIC emulation logic
|
||||
*
|
||||
* Copyright (c) 2004-2005 Fabrice Bellard
|
||||
*
|
||||
* Split the ioapic logic from apic.c
|
||||
* Xiantao Zhang <xiantao.zhang@intel.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "qapi/error.h"
|
||||
#include "hw/intc/ioapic.h"
|
||||
|
||||
void ioapic_eoi_broadcast(int vector)
|
||||
{
|
||||
}
|
@ -20,7 +20,7 @@ system_ss.add(when: 'CONFIG_GOLDFISH_PIC', if_true: files('goldfish_pic.c'))
|
||||
system_ss.add(when: 'CONFIG_HEATHROW_PIC', if_true: files('heathrow_pic.c'))
|
||||
system_ss.add(when: 'CONFIG_I8259', if_true: files('i8259_common.c', 'i8259.c'))
|
||||
system_ss.add(when: 'CONFIG_IMX', if_true: files('imx_avic.c', 'imx_gpcv2.c'))
|
||||
system_ss.add(when: 'CONFIG_IOAPIC', if_true: files('ioapic_common.c'))
|
||||
system_ss.add(when: 'CONFIG_IOAPIC', if_true: files('ioapic_common.c'), if_false: files('ioapic-stub.c'))
|
||||
system_ss.add(when: 'CONFIG_OMAP', if_true: files('omap_intc.c'))
|
||||
system_ss.add(when: 'CONFIG_OPENPIC', if_true: files('openpic.c'))
|
||||
system_ss.add(when: 'CONFIG_PL190', if_true: files('pl190.c'))
|
||||
|
@ -1,5 +1,6 @@
|
||||
config I386
|
||||
bool
|
||||
select APIC
|
||||
# kvm_arch_fixup_msi_route() needs to access PCIDevice
|
||||
select PCI if KVM
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user