[Bug 300205] smbios, ipmi require EFIRT-option

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 28 Oct 2026 17:14:52 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=300205

            Bug ID: 300205
           Summary: smbios, ipmi require EFIRT-option
           Product: Base System
           Version: 15.1-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: mi@FreeBSD.org

Created attachment 276637
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=276637&action=edit
Only use EFI-bits, if EFIRT is enabled

smbios-device requires EFIRT option on systems, where ARCH_MAY_USE_EFI is true.
Most do not feel it, because EFIRT is enabled in kernel -- but systems not
using EFI may want a kernel without the option enabled, and that is currently
impossible -- since about 2021:

  linking kernel.full
  ld: error: undefined symbol: active_efi_ops
  >>> referenced by efi.h:307 (/usr/src/sys/sys/efi.h:307)
  >>>               smbios.o:(smbios_identify)
  >>> referenced by efi.h:307 (/usr/src/sys/sys/efi.h:307)
  >>>               smbios.o:(smbios_identify)
  *** [kernel.full] Error code 1

The history of how it happened, courtesy of Claude Opus:

- base a29bff7a5216 (2021-04-07), "smbios: support getting address from EFI":
smbios.c started calling efi_get_table() unconditionally under
ARCH_MAY_USE_EFI, and gained MODULE_DEPEND(smbios, efirt, …). That covered the
module case, but nobody made the built-in case conditional on EFIRT.
- base ee8b757a949a (2021-04-29), "ipmi: support getting address from EFI": the
same pattern was added to ipmi_smbios.c.

-- 
You are receiving this mail because:
You are the assignee for the bug.