On 11/19/25 15:42, Minsoo Choo wrote:
On Wednesday, November 19th, 2025 at 2:51 PM, Ian FREISLICH 
<[email protected]> wrote:

On 11/19/25 14:24, Minsoo Choo wrote:

On Wednesday, November 19th, 2025 at 2:19 PM, Ian FREISLICH 
[email protected] wrote:

My kernel build started failing recently with the following error. I use
a custom kernel config but looking at NOTES, it's not clear that I've
missed an option that would make it compile.

In file included from /usr/src/sys/dev/nvme/nvme_util.c:34:
/usr/src/sys/dev/nvme/nvme.h:2012:2: error: call to undeclared function
'memmove'; ISO C99 and later do not support implicit function
declarations [-Werror,-Wimplicit-function-declaration]
2012 | memmove(sn, cdata->sn, NVME_SERIAL_NUMBER_LENGTH);

| ^
1 error generated.
*** Error code 1

I've also tried compiling after blowing away usr/obj.

Ian

memmove is declared in systm.h, but I don't see include statement for systm.h in 
nvme.h. Could you try including <sys/systm.h> in sys/dev/nvme/nvme.h and build 
again?


It builds with that, but coincidentally GENERIC builds without that change.

Ian

Could you send your kernel config? Maybe sys/systm.h is included under GENERIC 
but not under some configs.

--X--
cpu             HAMMER
ident           ROUTER

makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols

options         SCHED_ULE               # ULE scheduler
options NUMA # Non-Uniform Memory Architecture support
options         PREEMPTION              # Enable kernel thread preemption

options         INET                    # IPv6 communications protocols
options         INET6                   # IPv6 communications protocols
options         IPSEC
options         IPSEC_OFFLOAD           # Inline ipsec offload infra
options         ROUTE_MPATH             # Multipath routing support
options         FIB_ALGO                # Modular fib lookups
options         TCP_OFFLOAD             # TCP offload
options         TCP_BLACKBOX            # Enhanced TCP event logging
options         TCP_HHOOK               # hhook(9) framework for TCP
options         TCP_RFC7413             # TCP Fast Open
options         SCTP_SUPPORT            # Allow kldload of SCTP
options         KERN_TLS                # TLS transmit & receive offload
options         MAC
options         MAC_NTPD
options         MAC_PORTACL

options         FFS                     # Berkeley Fast Filesystem
options         SOFTUPDATES             # Enable FFS soft updates support
options         UFS_ACL                 # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options         ZFS
options         ZSTDIO
options PROCFS # Process filesystem (requires PSEUDOFS)
options         PSEUDOFS                # Pseudo-filesystem framework
options         TMPFS                   # Efficient memory filesystem
options         GEOM_LABEL              # Provides labelization
options         GEOM_PART_GPT
options         EFIRT                   # EFI Runtime Services support
options         COMPAT_FREEBSD32        # Compatible with i386 binaries
options         COMPAT_FREEBSD4         # Compatible with FreeBSD4
options         COMPAT_FREEBSD5         # Compatible with FreeBSD5
options         COMPAT_FREEBSD6         # Compatible with FreeBSD6
options         COMPAT_FREEBSD7         # Compatible with FreeBSD7
options         COMPAT_FREEBSD9         # Compatible with FreeBSD9
options         COMPAT_FREEBSD10        # Compatible with FreeBSD10
options         COMPAT_FREEBSD11        # Compatible with FreeBSD11
options         COMPAT_FREEBSD12        # Compatible with FreeBSD12
options         COMPAT_FREEBSD13        # Compatible with FreeBSD13
options         COMPAT_FREEBSD14        # Compatible with FreeBSD14
#options        COMPAT_FREEBSD15        # Compatible with FreeBSD15
options         KTRACE                  # ktrace(1) support
options         STACK                   # stack(9) support
options         SYSVSHM                 # SYSV-style shared memory
options         SYSVMSG                 # SYSV-style message queues
options         SYSVSEM                 # SYSV-style semaphores

options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
options         INCLUDE_CONFIG_FILE     # Include this file in kernel

# Debugging support.  Always need this:
options         KDB
options         KDB_UNATTENDED
options         DDB
options         GDB
options         KDB_TRACE
options         ALT_BREAK_TO_DEBUGGER

# Kernel dump features.
options         EKCD                    # Support for encrypted kernel dumps
options GZIO # gzip-compressed kernel and user dumps options ZSTDIO # zstd-compressed kernel and user dumps
options         DEBUGNET                # debugnet networking
options         NETDUMP                 # netdump(4) client support
options         NETGDB                  # netgdb(4) client support

device          pf
device          pflog
device          pfsync

# Make an SMP-capable kernel by default
options         SMP                     # Symmetric MultiProcessor Kernel
device          cpufreq

# Bus support.
device          acpi
device          acpi_wmi
device          smbios
device          smbus
device          ichsmb
device          iicbus
device          ig4
options         IOMMU
device          pci
options         PCI_HP                  # PCI-Express native HotPlug
options         PCI_IOV                 # PCI SR-IOV support


# ATA controllers
device          ahci                    # AHCI-compatible SATA controllers
device          scbus                   # SCSI bus (required for ATA/SCSI)
device          ch                      # SCSI media changers
device          da                      # Direct Access (disks)
device          sa                      # Sequential Access (tape etc)
device          cd                      # CD
device pass # Passthrough device (direct ATA/SCSI access) device ses # Enclosure Services (SES and SAF-TE)

# NVM Express (NVMe) support
device          nvme                    # base NVMe driver
device nvd # expose NVMe namespaces as disks, depends on nvme

# atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc                  # AT keyboard controller
device          atkbd                   # AT keyboard
device          kbdmux                  # keyboard multiplexer

# syscons is the legacy console driver, resembling an SCO console
#device         vga                     # VGA video card driver
#device splash # Splash screen and screen saver support
#device         sc
#options SC_PIXEL_MODE # add support for the raster text mode

# vt is the default video console driver
device          vt
device          vt_vga
device          vt_efifb
device          vt_vbefb

device          agp                     # support several AGP chipsets

options         PPS_SYNC
device          uart                    # Generic UART driver

device          superio
device          gpio
device          gpiopps

# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
device          iflib
device          igc                     # Intel I225 2.5G Ethernet
device          ix                      # Intel PRO/10GbE PCIE PF Ethernet

# Pseudo devices.
device          crypto                  # core crypto support
device          cryptodev
device          aesni                   # AES-NI OpenCrypto module
device          ossl
device          loop                    # Network loopback
device          rdrand_rng              # Intel Bull Mountain RNG
device          ether                   # Ethernet support
device          vlan                    # 802.1Q VLAN support
device          tuntap                  # Packet tunnel.
device          md                      # Memory "disks"
device          gif                     # IPv6 and IPv4 tunneling
device          firmware                # firmware assist module
device          xz                      # lzma decompression

options         EVDEV_SUPPORT
device          evdev
device          uinput

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device          bpf                     # Berkeley packet filter

# USB support
options         USB_DEBUG               # enable debug msgs
device          uhci                    # UHCI PCI->USB interface
device          ohci                    # OHCI PCI->USB interface
device          ehci                    # EHCI PCI->USB interface (USB 2.0)
device          xhci                    # XHCI PCI->USB interface (USB 3.0)
device          usb                     # USB Bus (required)
device          usbhid                  # USB HID Transport
device          hkbd                    # HID Keyboard
device          ukbd                    # USB Keyboard
device umass # Disks/Mass storage - Requires scbus and da

# Sound support
device          sound                   # Generic sound driver (required)
device          snd_hda                 # Intel High Definition Audio

# Netmap provides direct access to TX/RX rings on supported NICs
device          netmap                  # netmap(4) support

device          hid                     # Generic HID support
device          hidbus                  # Generic HID Bus

# EFI devices
device          efidev                  # EFI pseudo-device
device          efirtc                  # EFI RTC
--X--



Reply via email to