[Qemu-devel] [PATCH] riscv: requires libfdt

KONRAD Frederic posted 1 patch 5 years, 11 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1524135103-30477-1-git-send-email-frederic.konrad@adacore.com
Test checkpatch passed
Test docker-build@min-glib passed
Test docker-mingw@fedora passed
Test s390x passed
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Qemu-devel] [PATCH] riscv: requires libfdt
Posted by KONRAD Frederic 5 years, 11 months ago
When compiling on a machine without libfdt installed the configure script
should try to get libfdt from the git or should die because otherwise
CONFIG_LIBFDT is not set and the build process end in an error in the link
phase.. eg:

hw/riscv/virt.o: In function `riscv_virt_board_init':
qemu/src/hw/riscv/virt.c:317: undefined reference to `qemu_fdt_setprop_cell'
qemu/src/hw/riscv/virt.c:319: undefined reference to `qemu_fdt_setprop_cell'
qemu/src/hw/riscv/virt.c:345: undefined reference to `qemu_fdt_dumpdtb'
collect2: error: ld returned 1 exit status
make[1]: *** [qemu-system-riscv64] Error 1
make: *** [subdir-riscv64-softmmu] Error 2

Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure b/configure
index 0a19b03..1587f08 100755
--- a/configure
+++ b/configure
@@ -3732,7 +3732,7 @@ fi
 fdt_required=no
 for target in $target_list; do
   case $target in
-    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu)
+    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu|riscv64-softmmu)
       fdt_required=yes
     ;;
   esac
-- 
1.8.3.1


Re: [Qemu-devel] [PATCH] riscv: requires libfdt
Posted by Paolo Bonzini 5 years, 11 months ago
On 19/04/2018 12:51, KONRAD Frederic wrote:
> When compiling on a machine without libfdt installed the configure script
> should try to get libfdt from the git or should die because otherwise
> CONFIG_LIBFDT is not set and the build process end in an error in the link
> phase.. eg:
> 
> hw/riscv/virt.o: In function `riscv_virt_board_init':
> qemu/src/hw/riscv/virt.c:317: undefined reference to `qemu_fdt_setprop_cell'
> qemu/src/hw/riscv/virt.c:319: undefined reference to `qemu_fdt_setprop_cell'
> qemu/src/hw/riscv/virt.c:345: undefined reference to `qemu_fdt_dumpdtb'
> collect2: error: ld returned 1 exit status
> make[1]: *** [qemu-system-riscv64] Error 1
> make: *** [subdir-riscv64-softmmu] Error 2
> 
> Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
> ---
>  configure | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 0a19b03..1587f08 100755
> --- a/configure
> +++ b/configure
> @@ -3732,7 +3732,7 @@ fi
>  fdt_required=no
>  for target in $target_list; do
>    case $target in
> -    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu)
> +    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu|riscv64-softmmu)
>        fdt_required=yes
>      ;;
>    esac
> 

Maybe good for 2.12, even though it would make the final rc and final
release different?

Thanks,

Paolo

Re: [Qemu-devel] [PATCH] riscv: requires libfdt
Posted by KONRAD Frederic 5 years, 11 months ago

On 04/19/2018 02:00 PM, Paolo Bonzini wrote:
> On 19/04/2018 12:51, KONRAD Frederic wrote:
>> When compiling on a machine without libfdt installed the configure script
>> should try to get libfdt from the git or should die because otherwise
>> CONFIG_LIBFDT is not set and the build process end in an error in the link
>> phase.. eg:
>>
>> hw/riscv/virt.o: In function `riscv_virt_board_init':
>> qemu/src/hw/riscv/virt.c:317: undefined reference to `qemu_fdt_setprop_cell'
>> qemu/src/hw/riscv/virt.c:319: undefined reference to `qemu_fdt_setprop_cell'
>> qemu/src/hw/riscv/virt.c:345: undefined reference to `qemu_fdt_dumpdtb'
>> collect2: error: ld returned 1 exit status
>> make[1]: *** [qemu-system-riscv64] Error 1
>> make: *** [subdir-riscv64-softmmu] Error 2
>>
>> Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
>> ---
>>   configure | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/configure b/configure
>> index 0a19b03..1587f08 100755
>> --- a/configure
>> +++ b/configure
>> @@ -3732,7 +3732,7 @@ fi
>>   fdt_required=no
>>   for target in $target_list; do
>>     case $target in
>> -    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu)
>> +    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu|riscv64-softmmu)
>>         fdt_required=yes
>>       ;;
>>     esac
>>
> 
> Maybe good for 2.12, even though it would make the final rc and final
> release different?
> 
> Thanks,
> 
> Paolo
> 

On my side it doesn't matter much if it is 2.12 or 2.13, up to
you guys.

Thanks,
Fred

Re: [Qemu-devel] [PATCH] riscv: requires libfdt
Posted by Peter Maydell 5 years, 11 months ago
On 19 April 2018 at 13:00, Paolo Bonzini <pbonzini@redhat.com> wrote:
> On 19/04/2018 12:51, KONRAD Frederic wrote:
>> --- a/configure
>> +++ b/configure
>> @@ -3732,7 +3732,7 @@ fi
>>  fdt_required=no
>>  for target in $target_list; do
>>    case $target in
>> -    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu)
>> +    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu|riscv64-softmmu)
>>        fdt_required=yes
>>      ;;
>>    esac
>>
>
> Maybe good for 2.12, even though it would make the final rc and final
> release different?

I strongly prefer not to have changes between final rc and actual
release, and I don't think this rises to the level of justifying
another rc, since there is an easy user workaround for it (pass
--enable-fdt to configure).

thanks
-- PMM

Re: [Qemu-devel] [PATCH] riscv: requires libfdt
Posted by KONRAD Frederic 5 years, 11 months ago

On 04/19/2018 12:51 PM, KONRAD Frederic wrote:
> When compiling on a machine without libfdt installed the configure script
> should try to get libfdt from the git or should die because otherwise
> CONFIG_LIBFDT is not set and the build process end in an error in the link
> phase.. eg:
> 
> hw/riscv/virt.o: In function `riscv_virt_board_init':
> qemu/src/hw/riscv/virt.c:317: undefined reference to `qemu_fdt_setprop_cell'
> qemu/src/hw/riscv/virt.c:319: undefined reference to `qemu_fdt_setprop_cell'
> qemu/src/hw/riscv/virt.c:345: undefined reference to `qemu_fdt_dumpdtb'
> collect2: error: ld returned 1 exit status
> make[1]: *** [qemu-system-riscv64] Error 1
> make: *** [subdir-riscv64-softmmu] Error 2
> 
> Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
> ---
>   configure | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 0a19b03..1587f08 100755
> --- a/configure
> +++ b/configure
> @@ -3732,7 +3732,7 @@ fi
>   fdt_required=no
>   for target in $target_list; do
>     case $target in
> -    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu)
> +    aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu|riscv64-softmmu)

I just realized that riscv32 use it too so I'll correct with
riscv*-softmmu.

Cheers,
Fred

>         fdt_required=yes
>       ;;
>     esac
> 

Re: [Qemu-devel] [PATCH] riscv: requires libfdt
Posted by Philippe Mathieu-Daudé 5 years, 11 months ago
> On 04/19/2018 12:51 PM, KONRAD Frederic wrote:
>> When compiling on a machine without libfdt installed the configure script
>> should try to get libfdt from the git or should die because otherwise
>> CONFIG_LIBFDT is not set and the build process end in an error in the
>> link
>> phase.. eg:
>>
>> hw/riscv/virt.o: In function `riscv_virt_board_init':
>> qemu/src/hw/riscv/virt.c:317: undefined reference to
>> `qemu_fdt_setprop_cell'
>> qemu/src/hw/riscv/virt.c:319: undefined reference to
>> `qemu_fdt_setprop_cell'
>> qemu/src/hw/riscv/virt.c:345: undefined reference to `qemu_fdt_dumpdtb'
>> collect2: error: ld returned 1 exit status
>> make[1]: *** [qemu-system-riscv64] Error 1
>> make: *** [subdir-riscv64-softmmu] Error 2
>>
>> Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
>> ---
>>   configure | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/configure b/configure
>> index 0a19b03..1587f08 100755
>> --- a/configure
>> +++ b/configure
>> @@ -3732,7 +3732,7 @@ fi
>>   fdt_required=no
>>   for target in $target_list; do
>>     case $target in
>> -   
>> aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu)
>>
>> +   
>> aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu|riscv64-softmmu)
>>
> 
> I just realized that riscv32 use it too so I'll correct with
> riscv*-softmmu.

Using "riscv*-softmmu":

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

>>         fdt_required=yes
>>       ;;
>>     esac
>>
> 

Re: [Qemu-devel] [PATCH] riscv: requires libfdt
Posted by Michael Clark 5 years, 11 months ago
On Fri, Apr 20, 2018 at 4:56 AM, Philippe Mathieu-Daudé <f4bug@amsat.org>
wrote:

> > On 04/19/2018 12:51 PM, KONRAD Frederic wrote:
> >> When compiling on a machine without libfdt installed the configure
> script
> >> should try to get libfdt from the git or should die because otherwise
> >> CONFIG_LIBFDT is not set and the build process end in an error in the
> >> link
> >> phase.. eg:
> >>
> >> hw/riscv/virt.o: In function `riscv_virt_board_init':
> >> qemu/src/hw/riscv/virt.c:317: undefined reference to
> >> `qemu_fdt_setprop_cell'
> >> qemu/src/hw/riscv/virt.c:319: undefined reference to
> >> `qemu_fdt_setprop_cell'
> >> qemu/src/hw/riscv/virt.c:345: undefined reference to `qemu_fdt_dumpdtb'
> >> collect2: error: ld returned 1 exit status
> >> make[1]: *** [qemu-system-riscv64] Error 1
> >> make: *** [subdir-riscv64-softmmu] Error 2
> >>
> >> Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
> >> ---
> >>   configure | 2 +-
> >>   1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/configure b/configure
> >> index 0a19b03..1587f08 100755
> >> --- a/configure
> >> +++ b/configure
> >> @@ -3732,7 +3732,7 @@ fi
> >>   fdt_required=no
> >>   for target in $target_list; do
> >>     case $target in
> >> -
> >> aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-
> softmmu|mips64el-softmmu)
> >>
> >> +
> >> aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-
> softmmu|mips64el-softmmu|riscv64-softmmu)
> >>
> >
> > I just realized that riscv32 use it too so I'll correct with
> > riscv*-softmmu.
>
> Using "riscv*-softmmu":
>

Indeed.

We had this fix in our tree before one of the rebases against upstream:

https://github.com/riscv/riscv-qemu/commit/90cdfb86e81c54c1df42412b10b86fd83a6dee82

It must have somehow got dropped when we forward ported to QEMU master in
December 2017. My apologies.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>

Reviewed-by: Michael Clark <mjc@sifive.com>

>>         fdt_required=yes
> >>       ;;
> >>     esac
> >>
> >
>
Re: [Qemu-devel] [PATCH] riscv: requires libfdt
Posted by Bastian Koppelmann 5 years, 11 months ago
On 04/19/2018 12:51 PM, KONRAD Frederic wrote:
> When compiling on a machine without libfdt installed the configure script
> should try to get libfdt from the git or should die because otherwise
> CONFIG_LIBFDT is not set and the build process end in an error in the link
> phase.. eg:
> 
> hw/riscv/virt.o: In function `riscv_virt_board_init':
> qemu/src/hw/riscv/virt.c:317: undefined reference to `qemu_fdt_setprop_cell'
> qemu/src/hw/riscv/virt.c:319: undefined reference to `qemu_fdt_setprop_cell'
> qemu/src/hw/riscv/virt.c:345: undefined reference to `qemu_fdt_dumpdtb'
> collect2: error: ld returned 1 exit status
> make[1]: *** [qemu-system-riscv64] Error 1
> make: *** [subdir-riscv64-softmmu] Error 2
> 
> Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
> ---

Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>

Cheers,
Bastian