Message ID | 20231212010228.2701544-1-raj.khem@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v2] vfio: Include libgen.h for basename API | expand |
Hello, On 12/12/23 02:02, Khem Raj wrote: > Glibc has two implementation one based on POSIX which is used when > libgen.h is included and second implementation is GNU implementation > which is used when string.h is included. The functions are no identical > in behavior. Musl C library does not implement the GNU version, but it > has provided a declaration in string.h but this has been corrected in > latest musl [1] which exposes places where it was being used from > string.h to error out especially when -Wimplicit-function-declaration is > treated as error. > > | ../qemu-8.1.2/hw/vfio/pci.c:3030:18: error: call to undeclared function 'basename'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] > | 3030 | group_name = basename(group_path); > > clang-17 treats this warning as error by default > > [1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > v2: Add missing link for [1] Thanks for the fix. The upstream code has changed though and I think we should be using g_path_get_basename() instead. Could you please rebase ? Or I will do it in the QEMU 9.0 cycle. This is too late for QEMU 8.2 anyhow. Thanks, C. > > hw/vfio/pci.c | 1 + > hw/vfio/platform.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c > index c62c02f7b6..f043c93b9e 100644 > --- a/hw/vfio/pci.c > +++ b/hw/vfio/pci.c > @@ -19,6 +19,7 @@ > */ > > #include "qemu/osdep.h" > +#include <libgen.h> > #include <linux/vfio.h> > #include <sys/ioctl.h> > > diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c > index 8e3d4ac458..a835ab03be 100644 > --- a/hw/vfio/platform.c > +++ b/hw/vfio/platform.c > @@ -16,6 +16,7 @@ > > #include "qemu/osdep.h" > #include "qapi/error.h" > +#include <libgen.h> > #include <sys/ioctl.h> > #include <linux/vfio.h> >
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index c62c02f7b6..f043c93b9e 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -19,6 +19,7 @@ */ #include "qemu/osdep.h" +#include <libgen.h> #include <linux/vfio.h> #include <sys/ioctl.h> diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c index 8e3d4ac458..a835ab03be 100644 --- a/hw/vfio/platform.c +++ b/hw/vfio/platform.c @@ -16,6 +16,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" +#include <libgen.h> #include <sys/ioctl.h> #include <linux/vfio.h>
Glibc has two implementation one based on POSIX which is used when libgen.h is included and second implementation is GNU implementation which is used when string.h is included. The functions are no identical in behavior. Musl C library does not implement the GNU version, but it has provided a declaration in string.h but this has been corrected in latest musl [1] which exposes places where it was being used from string.h to error out especially when -Wimplicit-function-declaration is treated as error. | ../qemu-8.1.2/hw/vfio/pci.c:3030:18: error: call to undeclared function 'basename'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] | 3030 | group_name = basename(group_path); clang-17 treats this warning as error by default [1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 Signed-off-by: Khem Raj <raj.khem@gmail.com> --- v2: Add missing link for [1] hw/vfio/pci.c | 1 + hw/vfio/platform.c | 1 + 2 files changed, 2 insertions(+)