From bdf1b0ca5d74bcd68d39f263cd49e5de204d0f01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 19 Dec 2025 16:44:01 +0100 Subject: [PATCH] [FREELDR:XBOX:PC98] Fix compilation dependencies and linking (#8512) Addendum to commit 9e64fa837d (PR #8510) CORE-16216, CORE-17977 pcmem.c: Surround more PC-specific routines in `!SARCH_XBOX || !SARCH_PC98`, so that they aren't compiled for XBOX or PC98. pcat.cmake: Inform that pcmem.c is used by pc98mem.c --- boot/freeldr/freeldr/arch/i386/pc/pcmem.c | 13 ++++++++++++- boot/freeldr/freeldr/arch/i386/xbox/xboxmem.c | 2 +- boot/freeldr/freeldr/pcat.cmake | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/boot/freeldr/freeldr/arch/i386/pc/pcmem.c b/boot/freeldr/freeldr/arch/i386/pc/pcmem.c index 54a88672448..ebaa043613a 100644 --- a/boot/freeldr/freeldr/arch/i386/pc/pcmem.c +++ b/boot/freeldr/freeldr/arch/i386/pc/pcmem.c @@ -37,7 +37,9 @@ DBG_DEFAULT_CHANNEL(MEMORY); BIOS_MEMORY_MAP PcBiosMemoryMap[MAX_BIOS_DESCRIPTORS]; ULONG PcBiosMapCount; -FREELDR_MEMORY_DESCRIPTOR PcMemoryMap[MAX_BIOS_DESCRIPTORS + 1]; +#if !defined(SARCH_XBOX) && !defined(SARCH_PC98) +static FREELDR_MEMORY_DESCRIPTOR PcMemoryMap[MAX_BIOS_DESCRIPTORS + 1]; +#endif ULONG PcMapCount; ULONG @@ -48,6 +50,9 @@ AddMemoryDescriptor( IN PFN_NUMBER PageCount, IN TYPE_OF_MEMORY MemoryType); +/* FIXME: Abstract things better so we don't need to place define here */ +#if !defined(SARCH_XBOX) && !defined(SARCH_PC98) + static BOOLEAN GetExtendedMemoryConfiguration(ULONG* pMemoryAtOneMB /* in KB */, ULONG* pMemoryAtSixteenMB /* in 64KB */) @@ -480,6 +485,8 @@ nextRange: return PcBiosMapCount; } +#endif // !SARCH_XBOX && !SARCH_PC98 + VOID ReserveMemory( PFREELDR_MEMORY_DESCRIPTOR MemoryMap, @@ -595,6 +602,9 @@ PcMemFinalizeMemoryMap( return PcMapCount; } +/* FIXME: Abstract things better so we don't need to place define here */ +#if !defined(SARCH_XBOX) && !defined(SARCH_PC98) + PFREELDR_MEMORY_DESCRIPTOR PcMemGetMemoryMap(ULONG *MemoryMapSize) { @@ -661,5 +671,6 @@ PcMemGetMemoryMap(ULONG *MemoryMapSize) return PcMemoryMap; } +#endif // !SARCH_XBOX && !SARCH_PC98 /* EOF */ diff --git a/boot/freeldr/freeldr/arch/i386/xbox/xboxmem.c b/boot/freeldr/freeldr/arch/i386/xbox/xboxmem.c index 8f4b3571965..d6bb6a59828 100644 --- a/boot/freeldr/freeldr/arch/i386/xbox/xboxmem.c +++ b/boot/freeldr/freeldr/arch/i386/xbox/xboxmem.c @@ -222,7 +222,7 @@ XboxMultibootMemoryType(ULONG Type) } } -FREELDR_MEMORY_DESCRIPTOR XboxMemoryMap[MAX_BIOS_DESCRIPTORS + 1]; +static FREELDR_MEMORY_DESCRIPTOR XboxMemoryMap[MAX_BIOS_DESCRIPTORS + 1]; PFREELDR_MEMORY_DESCRIPTOR XboxMemGetMemoryMap(ULONG *MemoryMapSize) diff --git a/boot/freeldr/freeldr/pcat.cmake b/boot/freeldr/freeldr/pcat.cmake index 51ec6dfca2c..5417964142b 100644 --- a/boot/freeldr/freeldr/pcat.cmake +++ b/boot/freeldr/freeldr/pcat.cmake @@ -89,7 +89,7 @@ if(ARCH STREQUAL "i386") elseif(SARCH STREQUAL "pc98") list(APPEND PCATLDR_ARC_SOURCE - arch/i386/pc/pcmem.c + arch/i386/pc/pcmem.c # pc98mem.c depends on it arch/i386/pc98/machpc98.c arch/i386/pc98/pc98beep.c arch/i386/pc98/pc98cons.c