On Mon, Apr 27, 2026, Jason Gunthorpe wrote:
> On Tue, Mar 17, 2026 at 01:55:17PM +0000, Matt Evans wrote:
> > Hi Ted,
> > 
> > On 03/02/2026 01:23, Ted Logan wrote:
> > > Only build vfio self-tests on arm64 and x86_64; these are the only
> > > architectures where the vfio self-tests are run. Addresses compiler
> > > warnings for format and conversions on i386.
> > > 
> > > Reported-by: kernel test robot <[email protected]>
> > > Closes: 
> > > https://lore.kernel.org/oe-kbuild-all/[email protected]/
> > > Signed-off-by: Ted Logan <[email protected]>
> > > ---
> > > Do not build vfio self-tests for 32-bit architectures, where they're
> > > untested and unmaintained. Only build these tests for arm64 and x86_64,
> > > where they're regularly tested.
> > > 
> > > Compiler warning fixed by patch:
> > > 
> > >    In file included from 
> > > tools/testing/selftests/vfio/lib/include/libvfio.h:6:
> > >    tools/testing/selftests/vfio/lib/include/libvfio/iommu.h:49:2: 
> > > warning: format specifies type 'unsigned long' but the argument has type 
> > > 'u64' (aka 'unsigned long long') [-Wformat]
> > >       49 |         VFIO_ASSERT_EQ(__iommu_unmap(iommu, region, NULL), 0);
> > >          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > >    tools/testing/selftests/vfio/lib/include/libvfio/assert.h:32:37: note: 
> > > expanded from macro 'VFIO_ASSERT_EQ'
> > >       32 | #define VFIO_ASSERT_EQ(_a, _b, ...) VFIO_ASSERT_OP(_a, _b, ==, 
> > > ##__VA_ARGS__)
> > >          |                                     
> > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > >    tools/testing/selftests/vfio/lib/include/libvfio/assert.h:27:22: note: 
> > > expanded from macro 'VFIO_ASSERT_OP'
> > >       26 |         fprintf(stderr, "  Observed: %#lx %s %#lx\n",          
> > >                  \
> > >          |                                              ~~~~
> > >       27 |                         (u64)__lhs, #_op, (u64)__rhs);         
> > >                  \
> > >          |                                           ^~~~~~~~~~
> > > ---
> > > Changes in v2:
> > > - Add white space around arch checks
> > > - Clean up uname command
> > > - Link to v1: 
> > > https://lore.kernel.org/r/[email protected]
> > > ---
> > >  tools/testing/selftests/vfio/Makefile | 9 +++++++++
> > >  1 file changed, 9 insertions(+)
> > > 
> > > diff --git a/tools/testing/selftests/vfio/Makefile 
> > > b/tools/testing/selftests/vfio/Makefile
> > > index ead27892ab65..8e90e409e91d 100644
> > > --- a/tools/testing/selftests/vfio/Makefile
> > > +++ b/tools/testing/selftests/vfio/Makefile
> > > @@ -1,3 +1,10 @@
> > > +ARCH ?= $(shell uname -m)
> > > +
> > > +ifeq (,$(filter $(ARCH),arm64 x86_64))
> > 
> > This fails to build (i.e. elides the build) on my local arm64 machine,
> > because uname -m returns 'aarch64', not 'arm64'.
> 
> I have the same issue on x86! The kernel uses x86 is the ARCH when you
> run it straight from the top level make
> 
> make[4]: Entering directory 
> '/home/jgg/oss/wip/mlx5st/tools/testing/selftests/vfio'
> Makefile:1: "Saw ARCH=x86"
> 
> Even though this is a 64 bit build.

Heh, it's much funnier when it's happening to someone else.  :-)

KVM selftests went through these exact pains.  I'm pretty sure these are the
relevant commits (the empty targets one may or may not apply to VFIO).

9af04539d474dda4984ff4909d4568e6123c8cba KVM: selftests: Override ARCH for 
x86_64 instead of using ARCH_DIR
67730e6c53d70fb31618230f81c4acee9f72eaa3 KVM: selftests: Use canonical $(ARCH) 
paths for KVM selftests directories
43fbd8cd389faa9760c5152b1c58e893c812953b KVM: selftests: Provide empty 'all' 
and 'clean' targets for unsupported ARCHs

Reply via email to