Re: nvme.c:2012:2: error: call to undeclared function 'memmove'

From: Minsoo Choo <minsoochoo0122_at_proton.me>
Date: Wed, 19 Nov 2025 20:42:41 UTC
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.