On Mon, Sep 15, 2025, 1:26 PM Bjoern A. Zeeb <b...@freebsd.org> wrote:

> On Mon, 15 Sep 2025, Warner Losh wrote:
>
> > The branch main has been updated by imp:
> >
> > URL:
> https://cgit.FreeBSD.org/src/commit/?id=5e0a4859f28ad4869f7a73faf42debc355a370bf
> >
> > commit 5e0a4859f28ad4869f7a73faf42debc355a370bf
> > Author:     Warner Losh <i...@freebsd.org>
> > AuthorDate: 2025-09-14 18:03:16 +0000
> > Commit:     Warner Losh <i...@freebsd.org>
> > CommitDate: 2025-09-15 03:03:45 +0000
> >
> >    iwlwifi: Don't compile for gcc before 14
> >
> >    gcc 13 and earlier don't have __builtin_bitcountg. The linux wifi kpi
> >    uses this unconditionally. While in this one use, it might not be
> >    needed, I opted to not compile iwlwifi when building gcc12 or 13
> rather
> >    than risk breaking it for everbody else.
> >
> >    With this change gcc12 builds the kernel. Maybe this will stop jenkins
> >    email for every commit I make.
> >
> >    Sponsored by:           Netflix
> > ---
> > sys/modules/Makefile | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/sys/modules/Makefile b/sys/modules/Makefile
> > index 5315d518afd8..f9fdbca78869 100644
> > --- a/sys/modules/Makefile
> > +++ b/sys/modules/Makefile
> > @@ -576,7 +576,10 @@ _mlx5ib= mlx5ib
> >     ${MACHINE_CPUARCH} == "i386"
> > _ena=         ena
> > _gve=         gve
> > +# gcc13 and earlier lack __builtin_bitcountg used by linux emulation
>
> (a) I beleive there is no __builtin_bitcountg but you mean
> __builtin_popcountg
> both here and in the commit message.
>

Yes.

(b) That was introduced in 7cbc4d875971860d941cc15d7f42e6cfeffbfe66 for DRM
>
> (c) There is no direct use in any LinuxKPI based wireless driver:
> % grep -r __builtin_popcountg sys/contrib/dev
> %
>
> (4) iwlwifi only uses HWEIGHT32, which was changed by the aforementioned
> commit
>      in LinuxKPI.
>

Yes. I noticed all that. Didn't see a trivial way to fix it right.

(5) Please do it right and in the place where it is actually defined to be
> used,
>      in LinuxKPI, and not here as it can be easily fixed there with an
> #ifdef or
>      otherwise as there were alternatives on the review if I remember
> correctly.
>

Knock yourselves out. I was tired of the CI jobs whining and this was the
easiest way to make that stop. I've got too many things on my plate to
refine this more. If you want to support older gcc for this driver, that's
up to you. The ci jobs have been failing for weeks if not longer

I am Cc:ing dumbbell as well as he needed the change for DRM.
>
> PS: we also need to fix this in sys/sys at some point and save us some
> trouble.
>

What's to fix? Creating the Generic wrapper around builtin_popcount?

Warner


> > +.if !(${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} < 140000)
> > _iwlwifi=     iwlwifi
> > +.endif
> > _rtw88=               rtw88
> > _rtw89=               rtw89
> > _vmware=      vmware
> >
>
> --
> Bjoern A. Zeeb                                                     r15:7
>

Reply via email to