CI exposed some compile failures with xen build.
Fix provided allows compilation for any combination involving:
--enable-ncpus=1 --enable-platform=xen
SMP on xen is not yet implemented.
---
i386/Makefrag.am | 6 ++----
i386/i386/cpu_number.h | 4 +++-
i386/i386/irq.h | 4 ++++
i386/i386at/model_dep.c | 2 ++
x86_64/Makefrag.am | 6 +++---
5 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/i386/Makefrag.am b/i386/Makefrag.am
index e5e2cd80..85333d1e 100644
--- a/i386/Makefrag.am
+++ b/i386/Makefrag.am
@@ -30,8 +30,6 @@ if HOST_ix86
#
libkernel_a_SOURCES += \
- i386/i386at/acpi_parse_apic.h \
- i386/i386at/acpi_parse_apic.c \
i386/i386at/autoconf.c \
i386/i386at/autoconf.h \
i386/i386at/biosmem.c \
@@ -53,6 +51,7 @@ libkernel_a_SOURCES += \
i386/i386at/com.h \
i386/i386at/comreg.h \
i386/i386at/cram.h \
+ i386/i386/cpuboot.S \
i386/i386at/disk.h \
i386/i386at/i8250.h \
i386/i386at/immc.c \
@@ -99,8 +98,7 @@ libkernel_a_SOURCES += \
i386/i386/locore.S \
i386/i386/percpu.c \
i386/i386/percpu.h \
- i386/i386/spl.S \
- i386/i386/cpuboot.S
+ i386/i386/spl.S
if PLATFORM_at
libkernel_a_SOURCES += \
diff --git a/i386/i386/cpu_number.h b/i386/i386/cpu_number.h
index 0f090d2e..4b4ac6c3 100644
--- a/i386/i386/cpu_number.h
+++ b/i386/i386/cpu_number.h
@@ -110,13 +110,15 @@
#ifndef __ASSEMBLER__
#include <kern/cpu_number.h>
-#include <i386/apic.h>
#include <i386/percpu.h>
+#ifdef APIC
+#include <i386/apic.h>
static inline int cpu_number_slow(void)
{
return cpu_id_lut[apic_get_current_cpu()];
}
+#endif
static inline int cpu_number(void)
{
diff --git a/i386/i386/irq.h b/i386/i386/irq.h
index 9c54e18c..a5b4b5bc 100644
--- a/i386/i386/irq.h
+++ b/i386/i386/irq.h
@@ -15,6 +15,8 @@
#ifndef _I386_IRQ_H
#define _I386_IRQ_H
+#ifndef MACH_XEN
+
#ifdef APIC
# include <i386/apic.h>
#else
@@ -30,4 +32,6 @@ void __disable_irq (irq_t irq);
extern struct irqdev irqtab;
extern int pic_mode;
+#endif /* MACH_XEN */
+
#endif
diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c
index 1c70acc2..eea98754 100644
--- a/i386/i386at/model_dep.c
+++ b/i386/i386at/model_dep.c
@@ -217,6 +217,7 @@ void machine_init(void)
pmap_unmap_page_zero();
#endif
+#ifndef MACH_XEN
#if NCPUS > 1
/*
* Patch the realmode gdt with the correct offset and the first jmp to
@@ -233,6 +234,7 @@ void machine_init(void)
*(uint32_t *)phystokv(&apboot_jmp_offset) += apboot_addr;
#endif
#endif
+#endif
#ifdef APIC
/*
diff --git a/x86_64/Makefrag.am b/x86_64/Makefrag.am
index 4cf1b1f2..36b5fa38 100644
--- a/x86_64/Makefrag.am
+++ b/x86_64/Makefrag.am
@@ -28,8 +28,6 @@ if HOST_x86_64
#
libkernel_a_SOURCES += \
- i386/i386at/acpi_parse_apic.h \
- i386/i386at/acpi_parse_apic.c \
i386/i386at/autoconf.c \
i386/i386at/autoconf.h \
i386/i386at/biosmem.c \
@@ -44,11 +42,14 @@ libkernel_a_SOURCES += \
if PLATFORM_at
libkernel_a_SOURCES += \
+ i386/i386at/acpi_parse_apic.h \
+ i386/i386at/acpi_parse_apic.c \
x86_64/boothdr.S \
i386/i386at/com.c \
i386/i386at/com.h \
i386/i386at/comreg.h \
i386/i386at/cram.h \
+ x86_64/cpuboot.S \
i386/i386at/disk.h \
i386/i386at/i8250.h \
i386/i386at/immc.c \
@@ -92,7 +93,6 @@ libkernel_a_SOURCES += \
i386/i386/percpu.h \
i386/i386/percpu.c \
x86_64/cswitch.S \
- x86_64/cpuboot.S \
x86_64/debug_trace.S \
x86_64/idt_inittab.S \
x86_64/locore.S \
--
2.51.0