Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 May 2026 07:24:48 -0700
From:      Kevin Bowling <kevin.bowling@kev009.com>
To:        "Stephen J. Kiernan" <stevek@freebsd.org>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org,  dev-commits-src-main@freebsd.org
Subject:   Re: git: 01674e15dedb - main - bsd.endian.mk: Optimize the handling of big/little endian determination.
Message-ID:  <CAK7dMtCwU_u=mbLB4=aLoibgW2dw5EWrLfNTkhmR3bMU67eOhA@mail.gmail.com>
In-Reply-To: <CAK7dMtAMjrf7ROEpGnATuQg4TrPaaMG4vcxQ5rSLSPjmYUNUYw@mail.gmail.com>
References:  <69f6b1ec.181e8.27d0b938@gitrepo.freebsd.org> <CAK7dMtAMjrf7ROEpGnATuQg4TrPaaMG4vcxQ5rSLSPjmYUNUYw@mail.gmail.com>

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

I think the issue is M_ListToSkip isn't defined in some contexts but
I'm not sure why or where it might need to be set.

It's not just the kmod that failed, another sample for analysis:

===>  Building for libcsv-3.0.3_4
make: /usr/share/mk/bsd.endian.mk:25: Unknown modifier ":aarch64
amd64  armv7  i386  powerpc64le  riscv*"
       while evaluating indirect modifiers "aarch64  amd64  armv7
i386  powerpc64le  riscv*"
       while evaluating variable "_ENDIAN_ARCH" with value "amd64"
       in /usr/share/mk/bsd.endian.mk:25
       in .for loop from /usr/share/mk/bsd.compiler.mk:160 with cc =
CC, X_ = ${_empty_var_}
       in /usr/share/mk/bsd.own.mk:297
       in /usr/share/mk/bsd.init.mk:21
       in /usr/share/mk/bsd.lib.mk:16
       in /wrkdirs/usr/ports/textproc/libcsv/work/libcsv-3.0.3/Makefile.lib:13
make: /usr/share/mk/bsd.endian.mk:53: Don't know the endianness of
this architecture
       in .for loop from /usr/share/mk/bsd.compiler.mk:160 with cc =
CC, X_ = ${_empty_var_}
       in /usr/share/mk/bsd.own.mk:297
       in /usr/share/mk/bsd.init.mk:21
       in /usr/share/mk/bsd.lib.mk:16
       in /wrkdirs/usr/ports/textproc/libcsv/work/libcsv-3.0.3/Makefile.lib:13

On Sun, May 3, 2026 at 5:51 AM Kevin Bowling <kevin.bowling@kev009.com> wrote:
>
> On Sat, May 2, 2026 at 7:24 PM Stephen J. Kiernan <stevek@freebsd.org> wrote:
> >
> > The branch main has been updated by stevek:
> >
> > URL: https://cgit.FreeBSD.org/src/commit/?id=01674e15dedb15f8ce498af0680c50bb075c5482
> >
> > commit 01674e15dedb15f8ce498af0680c50bb075c5482
> > Author:     Stephen J. Kiernan <stevek@FreeBSD.org>
> > AuthorDate: 2024-04-03 23:25:19 +0000
> > Commit:     Stephen J. Kiernan <stevek@FreeBSD.org>
> > CommitDate: 2026-05-03 02:21:56 +0000
> >
> >     bsd.endian.mk: Optimize the handling of big/little endian determination.
> >
> >     Add variables to contain lists of MACHINE_ARCH values to use
> >     to determine little or big endian.
> >
> >     Only error out about not being able to determine endianess if
> >     TARGET_ENDIANNESS is empty and not cross-compiling.
> >
> >     Reviewed by:    sjg
> >     Obtained from:  Hewlett Packard Enterprise Development LP
> >     Differential Revision:  https://reviews.freebsd.org/D44629
> > ---
> >  share/mk/bsd.endian.mk | 39 +++++++++++++++++++++++++++++----------
> >  1 file changed, 29 insertions(+), 10 deletions(-)
> >
> > diff --git a/share/mk/bsd.endian.mk b/share/mk/bsd.endian.mk
> > index 0c5ebb7aeba2..2a617a1d2794 100644
> > --- a/share/mk/bsd.endian.mk
> > +++ b/share/mk/bsd.endian.mk
> > @@ -1,20 +1,35 @@
> >
> > -.if ${MACHINE_CPUARCH} == "aarch64" || \
> > -    ${MACHINE_CPUARCH} == "arm" || \
> > -    ${MACHINE_ARCH} == "amd64" || \
> > -    ${MACHINE_ARCH} == "i386" || \
> > -    ${MACHINE_ARCH} == "powerpc64le" || \
> > -    ${MACHINE_CPUARCH} == "riscv"
> > +MACHINE_ARCH_LIST.little = \
> > +       aarch64 \
> > +       amd64 \
> > +       armv7 \
> > +       i386 \
> > +       powerpc64le \
> > +       riscv*
> > +
> > +MACHINE_ARCH_LIST.big = \
> > +       powerpc \
> > +       powerpc64
> > +
> > +.for e in big little
> > +N_$e:= ${MACHINE_ARCH_LIST.$e:${M_ListToSkip}}
> > +.endfor
> > +
> > +# For the host, we need to look at the host architecture
> > +.if ${MACHINE:Nhost*} == ""
> > +_ENDIAN_ARCH=${_HOST_ARCH}
> > +.else
> > +_ENDIAN_ARCH=${MACHINE_ARCH}
> > +.endif
> > +
> > +.if ${_ENDIAN_ARCH:${N_little}} == ""
> >  TARGET_ENDIANNESS= 1234
> >  CAP_MKDB_ENDIAN= -l
> >  LOCALEDEF_ENDIAN= -l
> > -.elif ${MACHINE_ARCH} == "powerpc" || \
> > -    ${MACHINE_ARCH} == "powerpc64"
> > +.elif ${_ENDIAN_ARCH:${N_big}} == ""
> >  TARGET_ENDIANNESS= 4321
> >  CAP_MKDB_ENDIAN= -b
> >  LOCALEDEF_ENDIAN= -b
> > -.elif ${.MAKE.OS} == "FreeBSD"
> > -.error Don't know the endian of this architecture
> >  .else
> >  #
> >  # During bootstrapping on !FreeBSD OSes, we need to define some value.  Short of
> > @@ -33,3 +48,7 @@ TARGET_ENDIANNESS= 1234
> >  CAP_MKDB_ENDIAN= -B    # Poisoned value, invalid flags for both cap_mkdb
> >  LOCALEDEF_ENDIAN= -B   # and localedef.
> >  .endif
> > +
> > +.if empty(TARGET_ENDIANNESS) && ${.MAKE.OS} == "FreeBSD"
> > +.error Don't know the endianness of this architecture
> > +.endif
>
> This might be breaking poudriere pkg builds i.e.   graphics/drm-66-kmod:
>
> make[1]: /usr/share/mk/bsd.endian.mk:25: Unknown modifier ":aarch64
> amd64  armv7  i386  powerpc64le  riscv*"
>        while evaluating indirect modifiers "aarch64  amd64  armv7
> i386  powerpc64le  riscv*"
>        while evaluating variable "_ENDIAN_ARCH" with value "amd64"
>        in /usr/share/mk/bsd.endian.mk:25
>        in .for loop from /usr/share/mk/bsd.compiler.mk:160 with cc =
> CC, X_ = ${_empty_var_}
>        in /usr/share/mk/bsd.own.mk:297
>        in /usr/share/mk/bsd.init.mk:21
>        in /usr/src/sys/conf/kern.opts.mk:21
>        in /wrkdirs/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_10/Makefile:4
>        in make[1] in directory
> "/wrkdirs/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_10"
> make[1]: /usr/share/mk/bsd.endian.mk:53: Don't know the endianness of
> this architecture
>        in .for loop from /usr/share/mk/bsd.compiler.mk:160 with cc =
> CC, X_ = ${_empty_var_}
>        in /usr/share/mk/bsd.own.mk:297
>        in /usr/share/mk/bsd.init.mk:21
>        in /usr/src/sys/conf/kern.opts.mk:21
>        in /wrkdirs/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_10/Makefile:4
>        in make[1] in directory
> "/wrkdirs/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_10"
>
> make[1]: stopped making "obj" in
> /wrkdirs/usr/ports/graphics/drm-66-kmod/work/drm-kmod-drm_v6.6.25_10
> *** Error code 1


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAK7dMtCwU_u=mbLB4=aLoibgW2dw5EWrLfNTkhmR3bMU67eOhA>