[PATCH-for-6.0] hw/mem/meson: Fix linking sparse-mem device with fuzzer

Philippe Mathieu-Daudé posted 1 patch 1 week ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210406133944.4193691-1-philmd@redhat.com
hw/mem/meson.build | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

[PATCH-for-6.0] hw/mem/meson: Fix linking sparse-mem device with fuzzer

Posted by Philippe Mathieu-Daudé 1 week ago
sparse-mem.c is added to the 'mem_ss' source set, which itself
is conditionally added to softmmu_ss if CONFIG_MEM_DEVICE is
selected.
But if CONFIG_MEM_DEVICE isn't selected, we get a link failure
even if CONFIG_FUZZ is selected:

  /usr/bin/ld: tests_qtest_fuzz_generic_fuzz.c.o: in function `generic_pre_fuzz':
  tests/qtest/fuzz/generic_fuzz.c:826: undefined reference to `sparse_mem_init'
  clang-10: error: linker command failed with exit code 1 (use -v to see invocation)

Fix by adding sparse-mem.c directly to the softmmu_ss set.

Fixes: 230376d285b ("memory: add a sparse memory device for fuzzing")
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/mem/meson.build | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/hw/mem/meson.build b/hw/mem/meson.build
index ef79e046787..3c8fdef9f9e 100644
--- a/hw/mem/meson.build
+++ b/hw/mem/meson.build
@@ -1,8 +1,9 @@
 mem_ss = ss.source_set()
 mem_ss.add(files('memory-device.c'))
-mem_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
 mem_ss.add(when: 'CONFIG_DIMM', if_true: files('pc-dimm.c'))
 mem_ss.add(when: 'CONFIG_NPCM7XX', if_true: files('npcm7xx_mc.c'))
 mem_ss.add(when: 'CONFIG_NVDIMM', if_true: files('nvdimm.c'))
 
 softmmu_ss.add_all(when: 'CONFIG_MEM_DEVICE', if_true: mem_ss)
+
+softmmu_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
-- 
2.26.3

Re: [PATCH-for-6.0] hw/mem/meson: Fix linking sparse-mem device with fuzzer

Posted by Alexander Bulekov 1 week ago
On 210406 1539, Philippe Mathieu-Daudé wrote:
> sparse-mem.c is added to the 'mem_ss' source set, which itself
> is conditionally added to softmmu_ss if CONFIG_MEM_DEVICE is
> selected.
> But if CONFIG_MEM_DEVICE isn't selected, we get a link failure
> even if CONFIG_FUZZ is selected:
> 
>   /usr/bin/ld: tests_qtest_fuzz_generic_fuzz.c.o: in function `generic_pre_fuzz':
>   tests/qtest/fuzz/generic_fuzz.c:826: undefined reference to `sparse_mem_init'
>   clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
> 
> Fix by adding sparse-mem.c directly to the softmmu_ss set.
> 
> Fixes: 230376d285b ("memory: add a sparse memory device for fuzzing")
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Oops..
Reviewed-by: Alexander Bulekov <alxndr@bu.edu>

> ---
>  hw/mem/meson.build | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/mem/meson.build b/hw/mem/meson.build
> index ef79e046787..3c8fdef9f9e 100644
> --- a/hw/mem/meson.build
> +++ b/hw/mem/meson.build
> @@ -1,8 +1,9 @@
>  mem_ss = ss.source_set()
>  mem_ss.add(files('memory-device.c'))
> -mem_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
>  mem_ss.add(when: 'CONFIG_DIMM', if_true: files('pc-dimm.c'))
>  mem_ss.add(when: 'CONFIG_NPCM7XX', if_true: files('npcm7xx_mc.c'))
>  mem_ss.add(when: 'CONFIG_NVDIMM', if_true: files('nvdimm.c'))
>  
>  softmmu_ss.add_all(when: 'CONFIG_MEM_DEVICE', if_true: mem_ss)
> +
> +softmmu_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
> -- 
> 2.26.3
> 
> 

Re: [PATCH-for-6.0] hw/mem/meson: Fix linking sparse-mem device with fuzzer

Posted by Philippe Mathieu-Daudé 1 day, 19 hours ago
ping?

On 4/6/21 4:39 PM, Alexander Bulekov wrote:
> On 210406 1539, Philippe Mathieu-Daudé wrote:
>> sparse-mem.c is added to the 'mem_ss' source set, which itself
>> is conditionally added to softmmu_ss if CONFIG_MEM_DEVICE is
>> selected.
>> But if CONFIG_MEM_DEVICE isn't selected, we get a link failure
>> even if CONFIG_FUZZ is selected:
>>
>>   /usr/bin/ld: tests_qtest_fuzz_generic_fuzz.c.o: in function `generic_pre_fuzz':
>>   tests/qtest/fuzz/generic_fuzz.c:826: undefined reference to `sparse_mem_init'
>>   clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
>>
>> Fix by adding sparse-mem.c directly to the softmmu_ss set.
>>
>> Fixes: 230376d285b ("memory: add a sparse memory device for fuzzing")
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> 
> Oops..
> Reviewed-by: Alexander Bulekov <alxndr@bu.edu>
> 
>> ---
>>  hw/mem/meson.build | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/mem/meson.build b/hw/mem/meson.build
>> index ef79e046787..3c8fdef9f9e 100644
>> --- a/hw/mem/meson.build
>> +++ b/hw/mem/meson.build
>> @@ -1,8 +1,9 @@
>>  mem_ss = ss.source_set()
>>  mem_ss.add(files('memory-device.c'))
>> -mem_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
>>  mem_ss.add(when: 'CONFIG_DIMM', if_true: files('pc-dimm.c'))
>>  mem_ss.add(when: 'CONFIG_NPCM7XX', if_true: files('npcm7xx_mc.c'))
>>  mem_ss.add(when: 'CONFIG_NVDIMM', if_true: files('nvdimm.c'))
>>  
>>  softmmu_ss.add_all(when: 'CONFIG_MEM_DEVICE', if_true: mem_ss)
>> +
>> +softmmu_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
>> -- 
>> 2.26.3
>>
>>
> 


Re: [PATCH-for-6.0] hw/mem/meson: Fix linking sparse-mem device with fuzzer

Posted by Philippe Mathieu-Daudé 1 week ago
+Alex

On 4/6/21 3:39 PM, Philippe Mathieu-Daudé wrote:
> sparse-mem.c is added to the 'mem_ss' source set, which itself
> is conditionally added to softmmu_ss if CONFIG_MEM_DEVICE is
> selected.
> But if CONFIG_MEM_DEVICE isn't selected, we get a link failure
> even if CONFIG_FUZZ is selected:
> 
>   /usr/bin/ld: tests_qtest_fuzz_generic_fuzz.c.o: in function `generic_pre_fuzz':
>   tests/qtest/fuzz/generic_fuzz.c:826: undefined reference to `sparse_mem_init'
>   clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
> 
> Fix by adding sparse-mem.c directly to the softmmu_ss set.
> 
> Fixes: 230376d285b ("memory: add a sparse memory device for fuzzing")
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  hw/mem/meson.build | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/mem/meson.build b/hw/mem/meson.build
> index ef79e046787..3c8fdef9f9e 100644
> --- a/hw/mem/meson.build
> +++ b/hw/mem/meson.build
> @@ -1,8 +1,9 @@
>  mem_ss = ss.source_set()
>  mem_ss.add(files('memory-device.c'))
> -mem_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
>  mem_ss.add(when: 'CONFIG_DIMM', if_true: files('pc-dimm.c'))
>  mem_ss.add(when: 'CONFIG_NPCM7XX', if_true: files('npcm7xx_mc.c'))
>  mem_ss.add(when: 'CONFIG_NVDIMM', if_true: files('nvdimm.c'))
>  
>  softmmu_ss.add_all(when: 'CONFIG_MEM_DEVICE', if_true: mem_ss)
> +
> +softmmu_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
>