Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Nov 2025 17:24:16 -0500
From:      Ian FREISLICH <ianfreislich@gmail.com>
To:        Minsoo Choo <minsoochoo0122@proton.me>
Cc:        FreeBSD Current <current@freebsd.org>
Subject:   Re: nvme.c:2012:2: error: call to undeclared function 'memmove'
Message-ID:  <531224d3-acaf-4f97-b39c-02b09dcd297c@gmail.com>
In-Reply-To: <vSrD5BIXbG60VzaarV7hIxm2KqHRowF2D-OaxFIbpcTc83TOvjibwjvl9o7mEU46ZofIAsmmZqoMyDQy5vzZNr9Ng8mv_hZMiZC33wrSyhE=@proton.me>
References:  <814ce2bc-2a95-444b-9ab7-7e680a024c68@gmail.com> <M3bbYahqeDlLQCLnCmns8l9CbUCowcNRDFhkazE3oMEkZIQk9PZSJGHipQeEwSERs285Tqez72g5lK0iVmITrxQHnLJiBouXyuKWgK3lUtE=@proton.me> <60449f55-58e7-4f8b-aa0e-3f288dab5146@gmail.com> <vSrD5BIXbG60VzaarV7hIxm2KqHRowF2D-OaxFIbpcTc83TOvjibwjvl9o7mEU46ZofIAsmmZqoMyDQy5vzZNr9Ng8mv_hZMiZC33wrSyhE=@proton.me>

next in thread | previous in thread | raw e-mail | index | archive | help

On 11/19/25 15:42, Minsoo Choo wrote:
> On Wednesday, November 19th, 2025 at 2:51 PM, Ian FREISLICH <ianfreislich@gmail.com> wrote:
> 
>> On 11/19/25 14:24, Minsoo Choo wrote:
>>
>>> On Wednesday, November 19th, 2025 at 2:19 PM, Ian FREISLICH ianfreislich@gmail.com 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--





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?531224d3-acaf-4f97-b39c-02b09dcd297c>