Re: git: 2d6114f6d26b - main - libifconfig: Add an SR-IOV VF status query

From: Herbert J. Skuhra <herbert_at_gojira.at>
Date: Sun, 09 Aug 2026 07:20:16 UTC
On Sun, 09 Aug 2026 08:47:45 +0200, Kevin Bowling wrote:
> 
> The branch main has been updated by kbowling:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=2d6114f6d26bf7dfa5ad94e1db9b09ee7108dc7a
> 
> commit 2d6114f6d26bf7dfa5ad94e1db9b09ee7108dc7a
> Author:     Kevin Bowling <kbowling@FreeBSD.org>
> AuthorDate: 2026-08-09 02:03:20 +0000
> Commit:     Kevin Bowling <kbowling@FreeBSD.org>
> CommitDate: 2026-08-09 06:46:41 +0000
> 
>     libifconfig: Add an SR-IOV VF status query
>     
>     Provide a public helper which retrieves, unpacks, and validates the
>     versioned VF status nvlist.  Validate the required VF indices and the
>     shape and version of driver-specific extension namespaces while allowing
>     unknown optional fields.
>     
>     The ioctl argument is not copied back when the command returns EFBIG.
>     Start with a practical buffer and grow it geometrically rather than
>     relying on the required length being observable.
>     
>     Use the helper in ifconfig so other consumers share the same transport
>     and validation behavior.
> ---
>  lib/libifconfig/Makefile      |   2 +-
>  lib/libifconfig/Symbol.map    |   4 ++
>  lib/libifconfig/libifconfig.c | 129 ++++++++++++++++++++++++++++++++++++++++++
>  lib/libifconfig/libifconfig.h |  11 ++++
>  sbin/ifconfig/ifvfstatus.c    |  60 +++-----------------
>  share/mk/src.libnames.mk      |   4 +-
>  6 files changed, 154 insertions(+), 56 deletions(-)

This breaks buildworld:

>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_get_vf_status) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a

>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a
>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a
>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a

ld.lld: error: undefined symbol: FreeBSD_nvlist_get_number
>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a

ld.lld: error: undefined symbol: FreeBSD_nvlist_exists_nvlist_array
>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a

ld.lld: error: undefined symbol: FreeBSD_nvlist_get_nvlist_array
>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a

ld.lld: error: undefined symbol: FreeBSD_nvlist_exists
>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a

ld.lld: error: undefined symbol: FreeBSD_nvlist_exists_nvlist
>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a

ld.lld: error: undefined symbol: FreeBSD_nvlist_get_nvlist
>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a
>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a

ld.lld: error: undefined symbol: FreeBSD_nvlist_next
>>> referenced by libifconfig.c
>>>               libifconfig.o:(ifconfig_vf_status_validate) in archive /usr/obj/home/herbert/sources/freebsd/main/src/amd64.amd64/lib/libifconfig/libifconfig.a
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** [rescue] Error code 1