On Mon, Apr 28, 2025 at 06:14:18PM -0700, Caleb Sander Mateos wrote:
> On Mon, Apr 28, 2025 at 4:11 PM Uday Shankar <ushan...@purestorage.com> wrote:
> >
> > Building kublk currently fails (with a "could not find linux/ublk_cmd.h"
> > error message) if kernel headers are not installed in a system-global
> > location (i.e. somewhere in the compiler's default include search path).
> > This failure is unnecessary, as make kselftest installs kernel headers
> > in the build tree - kublk's build just isn't looking for them properly.
> > There is an include path in kublk's CFLAGS which is probably intended to
> > find the kernel headers installed in the build tree; fix it so that it
> > can actually find them.
> >
> > This introduces some macro redefinition issues between glibc-provided
> > headers and kernel headers; fix those by eliminating one include in
> > kublk.
> 
> I'm curious what symbol was redefined. struct iovec? Anyways,

The RWF_* flags. Here's an example error:

In file included from 
/root/linux/tools/testing/selftests/../../../usr/include/linux/io_uring.h:11,
                 from kublk.h:25,
                 from kublk.c:6:
/root/linux/tools/testing/selftests/../../../usr/include/linux/fs.h:318: error: 
"RWF_HIPRI" redefined [-Werror]
  318 | #define RWF_HIPRI       ((__kernel_rwf_t)0x00000001)
      |
In file included from /usr/include/sys/uio.h:179,
                 from kublk.h:22,
                 from kublk.c:6:
/usr/include/bits/uio-ext.h:45: note: this is the location of the previous 
definition
   45 | #define RWF_HIPRI       0x00000001 /* High priority request.  */
      |

Reply via email to