diff mbox series

util/util/cpuinfo-riscv.c: fix riscv64 build on musl libc

Message ID 20240905112440.10438-1-mps@arvanta.net
State New
Headers show
Series util/util/cpuinfo-riscv.c: fix riscv64 build on musl libc | expand

Commit Message

Milan P. Stanić Sept. 5, 2024, 11:24 a.m. UTC
build fails on musl libc (alpine linux) with this error:

../util/cpuinfo-riscv.c: In function 'cpuinfo_init':
../util/cpuinfo-riscv.c:63:21: error: '__NR_riscv_hwprobe' undeclared (first use in this function); did you mean 'riscv_hwprobe'?
   63 |         if (syscall(__NR_riscv_hwprobe, &pair, 1, 0, NULL, 0) == 0
      |                     ^~~~~~~~~~~~~~~~~~
      |                     riscv_hwprobe
../util/cpuinfo-riscv.c:63:21: note: each undeclared identifier is reported only once for each function it appears in
ninja: subcommand failed

add '#include "asm/unistd.h"' to util/cpuinfo-riscv.c fixes build

Signed-off-by: Milan P. Stanić <mps@arvanta.net>
---
 util/cpuinfo-riscv.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Peter Maydell Sept. 5, 2024, 1:45 p.m. UTC | #1
On Thu, 5 Sept 2024 at 14:19, Milan P. Stanić <mps@arvanta.net> wrote:
>
> build fails on musl libc (alpine linux) with this error:
>
> ../util/cpuinfo-riscv.c: In function 'cpuinfo_init':
> ../util/cpuinfo-riscv.c:63:21: error: '__NR_riscv_hwprobe' undeclared (first use in this function); did you mean 'riscv_hwprobe'?
>    63 |         if (syscall(__NR_riscv_hwprobe, &pair, 1, 0, NULL, 0) == 0
>       |                     ^~~~~~~~~~~~~~~~~~
>       |                     riscv_hwprobe
> ../util/cpuinfo-riscv.c:63:21: note: each undeclared identifier is reported only once for each function it appears in
> ninja: subcommand failed
>
> add '#include "asm/unistd.h"' to util/cpuinfo-riscv.c fixes build
>
> Signed-off-by: Milan P. Stanić <mps@arvanta.net>
> ---
>  util/cpuinfo-riscv.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/util/cpuinfo-riscv.c b/util/cpuinfo-riscv.c
> index 497ce12680..f4779ed1fb 100644
> --- a/util/cpuinfo-riscv.c
> +++ b/util/cpuinfo-riscv.c
> @@ -5,6 +5,7 @@
>
>  #include "qemu/osdep.h"
>  #include "host/cpuinfo.h"
> +#include "asm/unistd.h"
>
>  #ifdef CONFIG_ASM_HWPROBE_H
>  #include <asm/hwprobe.h>
> --

Hi; thanks for this patch. I think the new include line should
go inside the #ifdef CONFIG_ASM_HWPROBE_H block you can
see in the patch here, because the __NR_riscv_hwprobe symbol
we want from it is only used by code that's guarded by that ifdef.
(Otherwise we'll probably fail to compile on non-Linux hosts.)

System header includes should also use <...>, not "...".

thanks
-- PMM
Milan P. Stanić Sept. 5, 2024, 2:32 p.m. UTC | #2
Hi,

On Thu, 2024-09-05 at 14:45, Peter Maydell wrote:
> On Thu, 5 Sept 2024 at 14:19, Milan P. Stanić <mps@arvanta.net> wrote:
> >
> > build fails on musl libc (alpine linux) with this error:
> >
> > ../util/cpuinfo-riscv.c: In function 'cpuinfo_init':
> > ../util/cpuinfo-riscv.c:63:21: error: '__NR_riscv_hwprobe' undeclared (first use in this function); did you mean 'riscv_hwprobe'?
> >    63 |         if (syscall(__NR_riscv_hwprobe, &pair, 1, 0, NULL, 0) == 0
> >       |                     ^~~~~~~~~~~~~~~~~~
> >       |                     riscv_hwprobe
> > ../util/cpuinfo-riscv.c:63:21: note: each undeclared identifier is reported only once for each function it appears in
> > ninja: subcommand failed
> >
> > add '#include "asm/unistd.h"' to util/cpuinfo-riscv.c fixes build
> >
> > Signed-off-by: Milan P. Stanić <mps@arvanta.net>
> > ---
> >  util/cpuinfo-riscv.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/util/cpuinfo-riscv.c b/util/cpuinfo-riscv.c
> > index 497ce12680..f4779ed1fb 100644
> > --- a/util/cpuinfo-riscv.c
> > +++ b/util/cpuinfo-riscv.c
> > @@ -5,6 +5,7 @@
> >
> >  #include "qemu/osdep.h"
> >  #include "host/cpuinfo.h"
> > +#include "asm/unistd.h"
> >
> >  #ifdef CONFIG_ASM_HWPROBE_H
> >  #include <asm/hwprobe.h>
> > --
> 
> Hi; thanks for this patch. I think the new include line should
> go inside the #ifdef CONFIG_ASM_HWPROBE_H block you can
> see in the patch here, because the __NR_riscv_hwprobe symbol
> we want from it is only used by code that's guarded by that ifdef.
> (Otherwise we'll probably fail to compile on non-Linux hosts.)
> 
> System header includes should also use <...>, not "...".

Right. Will send patch v2 soon.

Thanks for help
diff mbox series

Patch

diff --git a/util/cpuinfo-riscv.c b/util/cpuinfo-riscv.c
index 497ce12680..f4779ed1fb 100644
--- a/util/cpuinfo-riscv.c
+++ b/util/cpuinfo-riscv.c
@@ -5,6 +5,7 @@ 
 
 #include "qemu/osdep.h"
 #include "host/cpuinfo.h"
+#include "asm/unistd.h"
 
 #ifdef CONFIG_ASM_HWPROBE_H
 #include <asm/hwprobe.h>