public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH kvmtool 0/2] Fix compilation with musl-libc based toolchains
@ 2024-07-27  8:11 J. Neuschäfer
  2024-07-27  8:11 ` [PATCH kvmtool 1/2] Get basename() from <libgen.h> for musl compat J. Neuschäfer
  2024-07-27  8:11 ` [PATCH kvmtool 2/2] Get __WORDSIZE from <sys/reg.h> " J. Neuschäfer
  0 siblings, 2 replies; 5+ messages in thread
From: J. Neuschäfer @ 2024-07-27  8:11 UTC (permalink / raw)
  To: kvm; +Cc: J. Neuschäfer

This patchset enables kvmtool to build on musl-libc.
I have also tested that it still builds on glibc.

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
---
J. Neuschäfer (2):
      Get basename() from <libgen.h> for musl compat
      Get __WORDSIZE from <sys/reg.h> for musl compat

 include/linux/bitops.h | 2 +-
 vfio/core.c            | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)
---
base-commit: ca31abf5d9c3453c852b263ccb451751b29b944b
change-id: 20240727-musl-853c66deb931

Best regards,
--
J. Neuschäfer <j.neuschaefer@gmx.net>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH kvmtool 1/2] Get basename() from <libgen.h> for musl compat
  2024-07-27  8:11 [PATCH kvmtool 0/2] Fix compilation with musl-libc based toolchains J. Neuschäfer
@ 2024-07-27  8:11 ` J. Neuschäfer
  2024-07-27 10:58   ` Alyssa Ross
  2024-07-27  8:11 ` [PATCH kvmtool 2/2] Get __WORDSIZE from <sys/reg.h> " J. Neuschäfer
  1 sibling, 1 reply; 5+ messages in thread
From: J. Neuschäfer @ 2024-07-27  8:11 UTC (permalink / raw)
  To: kvm; +Cc: J. Neuschäfer

According to the manpage, basename is defined in <libgen.h>.
Not including it results in a compilation failure on musl-libc:

vfio/core.c:538:22: error: implicit declaration of function 'basename' [-Werror=implicit-function-declaration]
  538 |         group_name = basename(group_path);
      |                      ^~~~~~~~

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
---
 vfio/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/vfio/core.c b/vfio/core.c
index 3ff2c0b..8f88489 100644
--- a/vfio/core.c
+++ b/vfio/core.c
@@ -3,6 +3,7 @@
 #include "kvm/ioport.h"

 #include <linux/list.h>
+#include <libgen.h>

 #define VFIO_DEV_DIR		"/dev/vfio"
 #define VFIO_DEV_NODE		VFIO_DEV_DIR "/vfio"

--
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH kvmtool 2/2] Get __WORDSIZE from <sys/reg.h> for musl compat
  2024-07-27  8:11 [PATCH kvmtool 0/2] Fix compilation with musl-libc based toolchains J. Neuschäfer
  2024-07-27  8:11 ` [PATCH kvmtool 1/2] Get basename() from <libgen.h> for musl compat J. Neuschäfer
@ 2024-07-27  8:11 ` J. Neuschäfer
  1 sibling, 0 replies; 5+ messages in thread
From: J. Neuschäfer @ 2024-07-27  8:11 UTC (permalink / raw)
  To: kvm; +Cc: J. Neuschäfer

musl-libc doesn't provide <bits/wordsize.h>, but it defines __WORDSIZE
in <sys/reg.h> and <sys/user.h>.

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
---
 include/linux/bitops.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/bitops.h b/include/linux/bitops.h
index ae33922..4f133ba 100644
--- a/include/linux/bitops.h
+++ b/include/linux/bitops.h
@@ -1,7 +1,7 @@
 #ifndef _KVM_LINUX_BITOPS_H_
 #define _KVM_LINUX_BITOPS_H_

-#include <bits/wordsize.h>
+#include <sys/reg.h>

 #include <linux/kernel.h>
 #include <linux/compiler.h>

--
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH kvmtool 1/2] Get basename() from <libgen.h> for musl compat
  2024-07-27  8:11 ` [PATCH kvmtool 1/2] Get basename() from <libgen.h> for musl compat J. Neuschäfer
@ 2024-07-27 10:58   ` Alyssa Ross
  2024-07-27 16:43     ` J. Neuschäfer
  0 siblings, 1 reply; 5+ messages in thread
From: Alyssa Ross @ 2024-07-27 10:58 UTC (permalink / raw)
  To: J. Neuschäfer; +Cc: kvm

[-- Attachment #1: Type: text/plain, Size: 1035 bytes --]

On Sat, Jul 27, 2024 at 10:11:14AM GMT, J. Neuschäfer wrote:
> According to the manpage, basename is defined in <libgen.h>.
> Not including it results in a compilation failure on musl-libc:

That's not quite what the man page says — there are two versions of
basename, the POSIX version and the GNU version, with differing
behaviour.

> vfio/core.c:538:22: error: implicit declaration of function 'basename' [-Werror=implicit-function-declaration]
>   538 |         group_name = basename(group_path);
>       |                      ^~~~~~~~

In this case, it should be safe to switch to the POSIX version, because
group_path is writeable and not used after this, so

Reviewed-by: Alyssa Ross <hi@alyssa.is>

but it would be nicer if the commit message was clearer, because it
currently reads like it's just including a missing header, rather than
changing the behaviour of the function.

> Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
> ---
>  vfio/core.c | 1 +
>  1 file changed, 1 insertion(+)


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH kvmtool 1/2] Get basename() from <libgen.h> for musl compat
  2024-07-27 10:58   ` Alyssa Ross
@ 2024-07-27 16:43     ` J. Neuschäfer
  0 siblings, 0 replies; 5+ messages in thread
From: J. Neuschäfer @ 2024-07-27 16:43 UTC (permalink / raw)
  To: Alyssa Ross; +Cc: J. Neuschäfer, kvm

[-- Attachment #1: Type: text/plain, Size: 1084 bytes --]

On Sat, Jul 27, 2024 at 12:58:37PM +0200, Alyssa Ross wrote:
> On Sat, Jul 27, 2024 at 10:11:14AM GMT, J. Neuschäfer wrote:
> > According to the manpage, basename is defined in <libgen.h>.
> > Not including it results in a compilation failure on musl-libc:
> 
> That's not quite what the man page says — there are two versions of
> basename, the POSIX version and the GNU version, with differing
> behaviour.

Right, thanks for catching that!

> > vfio/core.c:538:22: error: implicit declaration of function 'basename' [-Werror=implicit-function-declaration]
> >   538 |         group_name = basename(group_path);
> >       |                      ^~~~~~~~
> 
> In this case, it should be safe to switch to the POSIX version, because
> group_path is writeable and not used after this, so
> 
> Reviewed-by: Alyssa Ross <hi@alyssa.is>
> 
> but it would be nicer if the commit message was clearer, because it
> currently reads like it's just including a missing header, rather than
> changing the behaviour of the function.

I'll update and respin.


-- jn

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-07-27 16:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-27  8:11 [PATCH kvmtool 0/2] Fix compilation with musl-libc based toolchains J. Neuschäfer
2024-07-27  8:11 ` [PATCH kvmtool 1/2] Get basename() from <libgen.h> for musl compat J. Neuschäfer
2024-07-27 10:58   ` Alyssa Ross
2024-07-27 16:43     ` J. Neuschäfer
2024-07-27  8:11 ` [PATCH kvmtool 2/2] Get __WORDSIZE from <sys/reg.h> " J. Neuschäfer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox