Re: machine/endian.h' file not found

From: Dave Cottlehuber <dch_at_skunkwerks.at>
Date: Thu, 18 Jul 2024 10:59:07 UTC
On Thu, 18 Jul 2024, at 10:37, LuMiWa wrote:
> Hi,
>
> I did try to compile drm-515-kmod from ports on FreeBSD 14.1-RELEASE p2
> which is upgraded from 14.0 (freebsd-update upgrade) and I got:
>
> --- dma-buf-kmod.o ---
> In file included from 
> /usr/ports/graphics/drm-515-kmod/work/drm-kmod-drm_v5.15.160_0/drivers/dma-buf/dma-buf-kmod.c:30:
> In file included from /usr/src/sys/sys/param.h:116:
> /usr/src/sys/sys/types.h:45:10: fatal error: 'machine/endian.h' file 
> not found
>    45 | #include <machine/endian.h>
>       |          ^~~~~~~~~~~~~~~~~~
> 1 error generated.
> *** [dma-buf-kmod.o] Error code 1

hi lumiwa

this should be in /usr/include/machine/endian.h (along with a lot of other things in /usr/include). This needs to match /usr/src obviously as well to the running kernel.

running `freebsd-update IDS` may help you find out what's missing, `freebsd-version -kru` will tell you if the running kernel and userland match or not.

The reference files can be grabbed from https://download.freebsd.org/ftp/releases/amd64/amd64/14.1-RELEASE/src.txz & https://download.freebsd.org/ftp/releases/amd64/amd64/14.1-RELEASE/base.txz but you'll need to be avoid unpacking these over the top of a running system to avoid breaking things. `tar -C /tmp/...` is helpful.
 
A+
Dave