Skip to content

MdeModulePkg: CxlDxe: Fix IA32 Build Break#12696

Open
os-d wants to merge 1 commit into
tianocore:masterfrom
os-d:cxl_ia32
Open

MdeModulePkg: CxlDxe: Fix IA32 Build Break#12696
os-d wants to merge 1 commit into
tianocore:masterfrom
os-d:cxl_ia32

Conversation

@os-d

@os-d os-d commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Description

CxlDxe is currently compiled as part of the MdeModulePkg IA32 CI. When running CI with VS2022 version 14.44.35228.0, the CI build fails with:

CxlDxe.lib(CxlDxe.obj) : unresolved external symbol __allmul
CxlDxe(CxlDxe.obj) : unresolved external symbol __allshl

CxlDxe is not intended to run on IA32 DXE systems, as such systems are legacy, but until edk2 drops build support for IA32 DXE (or at least CI for it), the build needs to work.

This fixes the 64 bit multiplication/shifting that occurs in CxlDxe to use the BaseLib functions that avoid the compiler intrinsics.

  • Breaking change?
    • Breaking change - Does this PR cause a break in build or boot behavior?
    • Examples: Does it add a new library class or move a module to a different repo.
  • Impacts security?
    • Security - Does this PR have a direct security impact?
    • Examples: Crypto algorithm change or buffer overflow fix.
  • Includes tests?
    • Tests - Does this PR include any explicit test code?
    • Examples: Unit tests or integration tests.

How This Was Tested

stuart_ci_build -c .pytool\CISettings.py TOOL_CHAIN_TAG=VS2022 -a IA32 -p MdeModulePkg -t NOOPT BUILDMODULE=MdeModulePkg\Bus\Pci\CxlDxe\CxlDxe.inf

Failed before this change, succeeds with it.

Integration Instructions

N/A.

@os-d os-d requested a review from makubacki June 18, 2026 17:54
Comment thread MdeModulePkg/Bus/Pci/CxlDxe/CxlDxe.c Outdated
Comment thread MdeModulePkg/Bus/Pci/CxlDxe/CxlDxe.c Outdated
CxlDxe is currently compiled as part of the MdeModulePkg
IA32 CI. When running CI with VS2022 version 14.44.35228.0,
the CI build fails with:

CxlDxe.lib(CxlDxe.obj) : unresolved external symbol __allmul
CxlDxe(CxlDxe.obj) : unresolved external symbol __allshl

CxlDxe is not intended to run on IA32 DXE systems, as such
systems are legacy, but until edk2 drops build support for
IA32 DXE (or at least CI for it), the build needs to work.

This fixes the 64 bit multiplication/shifting that occurs
in CxlDxe to use the BaseLib functions that avoid the
compiler intrinsics.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants