On Tue, Feb 03, 2026 at 02:40:11PM -0800, Jakub Kicinski wrote:
> On Tue, 3 Feb 2026 12:42:22 +0100 Thomas Weißschuh wrote:
> > > FWIW the typelimits change broke compilation of ethtool, we'll see if
> > > anyone "outside kernel community itself" complains.  
> > 
> > Can you point me to that breakage? I was unable to find it.
> 
> Not reported on the ML, and it's kinda annoying to repro because 
> the uAPI header sync script isn't committed :/ You have to check 
> this out
> 
>  https://git.kernel.org/pub/scm/network/ethtool/ethtool.git/
> 
> and run a script like this to sync headers from the kernel (then build):
> 
> #!/bin/bash -e
> 
> sn="${0##*/}"
> export ARCH="x86_64"
> 
> if [ ! -d "$LINUX_GIT" ]; then
>     echo "${sn}: LINUX_GIT not set" >&2
>     exit 1
> fi
> 
> pushd "$LINUX_GIT"
> if [ -n "$1" ]; then
>     git checkout "$1"
> fi
> desc=$(git describe --exact-match 2>/dev/null \
>        || git show -s --abbrev=12 --pretty='commit %h')
> kobj=$(mktemp -d)

> make -j16 O="$kobj" allmodconfig
> make -j16 O="$kobj" prepare

These are not necessary.
The UAPI generation does not need a kernel configuration.

> make -j16 O="$kobj" INSTALL_HDR_PATH="${kobj}/hdr" headers_install
> popd
> 
> pushd uapi
> find . -type f -name '*.h' -exec cp -v "${kobj}/hdr/include/{}" {} \;

Here only those headers which already exist in ethtool's uapi/ directory
are copied. As linux/typelimits.h is new, it is now missing.
Honestly, if a user fiddles with the internals of the UAPI headers like
this, it is on them to update their code if the internal structure
changes. In your case a simple 'touch uapi/linux/typelimits.h'
before running the script will be enough. Also internal.h now requires
an explicit inclusion of <limits.h>, as that is not satisfied by the
UAPI anymore.

> popd
> rm -rf "$kobj"
> 
> git add uapi
> git commit -s -F - <<EOT
> update UAPI header copies
> 
> Update to kernel ${desc}.
> 
> EOT

Reply via email to