[PULL v3 00/38] Misc patches (buildsys, i386, fuzzing) for 2021-01-29

Paolo Bonzini posted 38 patches 3 years, 2 months ago
Only 0 patches received!
There is a newer version of this series
.gitmodules                              |   4 +-
MAINTAINERS                              |   1 +
accel/kvm/kvm-all.c                      |  21 ++-
accel/tcg/tcg-cpus-icount.c              |   8 +-
backends/hostmem.c                       |  10 ++
configure                                |   9 +-
docs/devel/build-system.rst              |   2 +-
docs/devel/fuzzing.rst                   |  35 +++-
docs/meson.build                         |   6 +-
hw/scsi/virtio-scsi-dataplane.c          |   8 +-
include/exec/memory.h                    |   8 +-
include/exec/memory_ldst_cached.h.inc    |   6 +-
include/qemu/event_notifier.h            |   1 +
memory_ldst.c.inc                        |   8 +-
meson.build                              | 277 ++++++++++++++-----------------
meson_options.txt                        |   2 +-
pc-bios/descriptors/meson.build          |   2 +-
pc-bios/meson.build                      |   1 +
qapi/meson.build                         |  34 ++--
qemu-options.hx                          |  26 ++-
scripts/oss-fuzz/minimize_qtest_trace.py |   2 +-
slirp                                    |   1 -
softmmu/memory.c                         |   5 +-
softmmu/physmem.c                        |   4 +-
stubs/meson.build                        |   2 +
stubs/qdev.c                             |  23 +++
subprojects/libslirp                     |   1 +
target/i386/cpu.c                        |  15 +-
target/i386/cpu.h                        |  29 ++--
target/i386/helper.c                     |   3 +
target/i386/hvf/hvf.c                    |   4 +
target/i386/machine.c                    |  24 ++-
target/i386/tcg/excp_helper.c            |  32 ++--
target/i386/tcg/misc_helper.c            |  14 ++
target/i386/tcg/translate.c              |   2 +-
tests/meson.build                        |  11 +-
tests/qtest/fuzz/fuzz.c                  |  11 +-
tests/qtest/fuzz/generic_fuzz.c          |  19 ++-
tests/qtest/fuzz/generic_fuzz_configs.h  |  41 ++++-
util/event_notifier-posix.c              |  16 ++
40 files changed, 476 insertions(+), 252 deletions(-)
delete mode 160000 slirp
create mode 100644 stubs/qdev.c
create mode 160000 subprojects/libslirp
[PULL v3 00/38] Misc patches (buildsys, i386, fuzzing) for 2021-01-29
Posted by Paolo Bonzini 3 years, 2 months ago
The following changes since commit 74208cd252c5da9d867270a178799abd802b9338:

  Merge remote-tracking branch 'remotes/berrange-gitlab/tags/misc-fixes-pull-request' into staging (2021-01-29 19:51:25 +0000)

are available in the Git repository at:

  https://gitlab.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to a365bda83444f142bb1b9c1b5fdcdefade87981d:

  pc-bios/descriptors: fix paths in json files (2021-02-01 17:30:52 +0100)

----------------------------------------------------------------
* Fuzzing improvements (Qiuhao, Alexander)
* i386: Fix BMI decoding for instructions with the 0x66 prefix (David)
* slirp update (Marc-André)
* initial attempt at fixing event_notifier emulation (Maxim)
* i386: PKS emulation, fix for "qemu-system-i386 -cpu host" (myself)
* meson: RBD test fixes (myself)
* meson: TCI warnings (Philippe)
* Leaner build for --disable-guest-agent, --disable-system and
  --disable-tools (Philippe, Stefan)
* --enable-tcg-interpreter fix (Richard)
* i386: SVM feature bits (Wei)
* HVF bugfix (Alex)
* KVM bugfix (Thomas)

----------------------------------------------------------------

v1->v2: two extra bugfix patches, do move slirp/ to subprojects/libslirp/.

v2->v3: rebased

Alexander Bulekov (7):
      fuzz: ignore address_space_map is_write flag
      fuzz: refine the ide/ahci fuzzer configs
      docs/fuzz: fix pre-meson path
      fuzz: log the arguments used to initialize QEMU
      fuzz: enable dynamic args for generic-fuzz configs
      docs/fuzz: add some information about OSS-Fuzz
      fuzz: add virtio-9p configurations for fuzzing

Alexander Graf (1):
      hvf: Fetch cr4 before evaluating CPUID(1)

David Greenaway (1):
      target/i386: Fix decoding of certain BMI instructions

Igor Mammedov (1):
      machine: add missing doc for memory-backend option

Marc-André Lureau (1):
      slirp: update to git master

Maxim Levitsky (2):
      virtio-scsi: don't uninitialize queues that we didn't initialize
      event_notifier: handle initialization failure better

Paolo Bonzini (5):
      target/i386: do not set LM for 32-bit emulation "-cpu host/max"
      meson: accept either shared or static libraries if --disable-static
      meson: honor --enable-rbd if cc.links test fails
      target/i86: implement PKS
      build-sys: make libslirp a meson subproject

Pavel Dovgalyuk (1):
      replay: fix replay of the interrupts

Philippe Mathieu-Daudé (13):
      configure: Improve TCI feature description
      meson: Explicit TCG backend used
      meson: Warn when TCI is selected but TCG backend is available
      tests/meson: Only build softfloat objects if TCG is selected
      pc-bios/meson: Only install EDK2 blob firmwares with system emulation
      meson: Restrict block subsystem processing
      meson: Merge trace_events_subdirs array
      meson: Restrict some trace event directories to user/system emulation
      meson: Restrict emulation code
      qapi/meson: Restrict qdev code to system-mode emulation
      qapi/meson: Remove QMP from user-mode emulation
      qapi/meson: Restrict system-mode specific modules
      qapi/meson: Restrict UI module to system emulation and tools

Qiuhao Li (1):
      fuzz: fix wrong index in clear_bits

Richard Henderson (1):
      configure: Fix --enable-tcg-interpreter

Sergei Trofimovich (1):
      pc-bios/descriptors: fix paths in json files

Stefan Reiter (1):
      docs: don't install corresponding man page if guest agent is disabled

Thomas Huth (1):
      accel/kvm/kvm-all: Fix wrong return code handling in dirty log code

Wei Huang (1):
      x86/cpu: Populate SVM CPUID feature bits

 .gitmodules                              |   4 +-
 MAINTAINERS                              |   1 +
 accel/kvm/kvm-all.c                      |  21 ++-
 accel/tcg/tcg-cpus-icount.c              |   8 +-
 backends/hostmem.c                       |  10 ++
 configure                                |   9 +-
 docs/devel/build-system.rst              |   2 +-
 docs/devel/fuzzing.rst                   |  35 +++-
 docs/meson.build                         |   6 +-
 hw/scsi/virtio-scsi-dataplane.c          |   8 +-
 include/exec/memory.h                    |   8 +-
 include/exec/memory_ldst_cached.h.inc    |   6 +-
 include/qemu/event_notifier.h            |   1 +
 memory_ldst.c.inc                        |   8 +-
 meson.build                              | 277 ++++++++++++++-----------------
 meson_options.txt                        |   2 +-
 pc-bios/descriptors/meson.build          |   2 +-
 pc-bios/meson.build                      |   1 +
 qapi/meson.build                         |  34 ++--
 qemu-options.hx                          |  26 ++-
 scripts/oss-fuzz/minimize_qtest_trace.py |   2 +-
 slirp                                    |   1 -
 softmmu/memory.c                         |   5 +-
 softmmu/physmem.c                        |   4 +-
 stubs/meson.build                        |   2 +
 stubs/qdev.c                             |  23 +++
 subprojects/libslirp                     |   1 +
 target/i386/cpu.c                        |  15 +-
 target/i386/cpu.h                        |  29 ++--
 target/i386/helper.c                     |   3 +
 target/i386/hvf/hvf.c                    |   4 +
 target/i386/machine.c                    |  24 ++-
 target/i386/tcg/excp_helper.c            |  32 ++--
 target/i386/tcg/misc_helper.c            |  14 ++
 target/i386/tcg/translate.c              |   2 +-
 tests/meson.build                        |  11 +-
 tests/qtest/fuzz/fuzz.c                  |  11 +-
 tests/qtest/fuzz/generic_fuzz.c          |  19 ++-
 tests/qtest/fuzz/generic_fuzz_configs.h  |  41 ++++-
 util/event_notifier-posix.c              |  16 ++
 40 files changed, 476 insertions(+), 252 deletions(-)
 delete mode 160000 slirp
 create mode 100644 stubs/qdev.c
 create mode 160000 subprojects/libslirp
-- 
2.29.2

Re: [PULL v3 00/38] Misc patches (buildsys, i386, fuzzing) for 2021-01-29
Posted by Peter Maydell 3 years, 2 months ago
On Tue, 2 Feb 2021 at 07:48, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 74208cd252c5da9d867270a178799abd802b9338:
>
>   Merge remote-tracking branch 'remotes/berrange-gitlab/tags/misc-fixes-pull-request' into staging (2021-01-29 19:51:25 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to a365bda83444f142bb1b9c1b5fdcdefade87981d:
>
>   pc-bios/descriptors: fix paths in json files (2021-02-01 17:30:52 +0100)
>
> ----------------------------------------------------------------
> * Fuzzing improvements (Qiuhao, Alexander)
> * i386: Fix BMI decoding for instructions with the 0x66 prefix (David)
> * slirp update (Marc-André)
> * initial attempt at fixing event_notifier emulation (Maxim)
> * i386: PKS emulation, fix for "qemu-system-i386 -cpu host" (myself)
> * meson: RBD test fixes (myself)
> * meson: TCI warnings (Philippe)
> * Leaner build for --disable-guest-agent, --disable-system and
>   --disable-tools (Philippe, Stefan)
> * --enable-tcg-interpreter fix (Richard)
> * i386: SVM feature bits (Wei)
> * HVF bugfix (Alex)
> * KVM bugfix (Thomas)

Fails to build, x86-64 Linux clang.
(configure rune:
 '../../configure' '--cc=clang' '--cxx=clang++' '--enable-gtk'
'--extra-cflags=-fsanitize=undefined  -fno-sanitize=shift-base
-Werror')

clang  -o subprojects/libslirp/libslirp.so.0.2.3
subprojects/libslirp/libslirp.so.0.2.3.p/src_arp_table.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_bootp.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_cksum.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_dhcpv6.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_dnssearch.c.o
subprojects/libslirp/libslirp.so.0.2
.3.p/src_if.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_ip6_icmp.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_ip6_input.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_ip6_output.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_ip_icmp.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_ip_input.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_ip_output.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_mbuf.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_misc.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_ncsi.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_ndp_table.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_sbuf.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_slirp.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/
src_socket.c.o subprojects/libslirp/libslirp.so.0.2.3.p/src_state.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_stream.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_tcp_input.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_tcp_output.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_tcp_subr.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_tcp_timer.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_tftp.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_udp.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_udp6.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_util.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_version.c.o
subprojects/libslirp/libslirp.so.0.2.3.p/src_vmstate.c.o
-Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group
-Wl,-soname,libslirp.so.0 -Wl,--warn-common -Wl,-z,relro -Wl,-z,now
-m64 -fsanitize=undefined -fno-sanitize=shift-base -Werror
-fstack-protector-strong
-Wl,--version-script,/home/petmay01/linaro/qemu-for-merges/subprojects/libslirp/src/libslirp.map
-pthread -lgthread-2.0 -lglib-2.0 -Wl,--end-group
subprojects/libslirp/libslirp.so.0.2.3.p/src_arp_table.c.o: In
function `arp_table_add':
/home/petmay01/linaro/qemu-for-merges/build/clang/../../subprojects/libslirp/src/arp_table.c:50:
undefined reference to `__ubsan_handle_type_mismatch_v1'
/home/petmay01/linaro/qemu-for-merges/build/clang/../../subprojects/libslirp/src/arp_table.c:50:
undefined reference to `__ubsan_handle_type_mismatch_v1'
[etc etc etc]
/home/petmay01/linaro/qemu-for-merges/build/clang/../../subprojects/libslirp/src/arp_table.c:52:
undefined reference to `__ubsan_handle_nonnull_arg'
/home/petmay01/linaro/qemu-for-merges/build/clang/../../subprojects/libslirp/src/arp_table.c:58:
undefined reference to `__ubsan_handle_type_mismatch_v1'
[etc etc etc]

and so on for lots of other libslirp files and ubsan symbols.

thanks
-- PMM

Re: [PULL v3 00/38] Misc patches (buildsys, i386, fuzzing) for 2021-01-29
Posted by Paolo Bonzini 3 years, 2 months ago
On 02/02/21 14:56, Peter Maydell wrote:
> On Tue, 2 Feb 2021 at 07:48, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>
>> The following changes since commit 74208cd252c5da9d867270a178799abd802b9338:
>>
>>    Merge remote-tracking branch 'remotes/berrange-gitlab/tags/misc-fixes-pull-request' into staging (2021-01-29 19:51:25 +0000)
>>
>> are available in the Git repository at:
>>
>>    https://gitlab.com/bonzini/qemu.git tags/for-upstream
>>
>> for you to fetch changes up to a365bda83444f142bb1b9c1b5fdcdefade87981d:
>>
>>    pc-bios/descriptors: fix paths in json files (2021-02-01 17:30:52 +0100)
>>
>> ----------------------------------------------------------------
>> * Fuzzing improvements (Qiuhao, Alexander)
>> * i386: Fix BMI decoding for instructions with the 0x66 prefix (David)
>> * slirp update (Marc-André)
>> * initial attempt at fixing event_notifier emulation (Maxim)
>> * i386: PKS emulation, fix for "qemu-system-i386 -cpu host" (myself)
>> * meson: RBD test fixes (myself)
>> * meson: TCI warnings (Philippe)
>> * Leaner build for --disable-guest-agent, --disable-system and
>>    --disable-tools (Philippe, Stefan)
>> * --enable-tcg-interpreter fix (Richard)
>> * i386: SVM feature bits (Wei)
>> * HVF bugfix (Alex)
>> * KVM bugfix (Thomas)
> 
> Fails to build, x86-64 Linux clang.
> (configure rune:
>   '../../configure' '--cc=clang' '--cxx=clang++' '--enable-gtk'
> '--extra-cflags=-fsanitize=undefined  -fno-sanitize=shift-base
> -Werror')
> 
> clang  -o subprojects/libslirp/libslirp.so.0.2.3
> subprojects/libslirp/libslirp.so.0.2.3.p/src_arp_table.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_bootp.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_cksum.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_dhcpv6.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_dnssearch.c.o
> subprojects/libslirp/libslirp.so.0.2
> .3.p/src_if.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_ip6_icmp.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_ip6_input.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_ip6_output.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_ip_icmp.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_ip_input.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_ip_output.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_mbuf.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_misc.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_ncsi.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_ndp_table.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_sbuf.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_slirp.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/
> src_socket.c.o subprojects/libslirp/libslirp.so.0.2.3.p/src_state.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_stream.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_tcp_input.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_tcp_output.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_tcp_subr.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_tcp_timer.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_tftp.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_udp.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_udp6.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_util.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_version.c.o
> subprojects/libslirp/libslirp.so.0.2.3.p/src_vmstate.c.o
> -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group
> -Wl,-soname,libslirp.so.0 -Wl,--warn-common -Wl,-z,relro -Wl,-z,now
> -m64 -fsanitize=undefined -fno-sanitize=shift-base -Werror
> -fstack-protector-strong
> -Wl,--version-script,/home/petmay01/linaro/qemu-for-merges/subprojects/libslirp/src/libslirp.map
> -pthread -lgthread-2.0 -lglib-2.0 -Wl,--end-group
> subprojects/libslirp/libslirp.so.0.2.3.p/src_arp_table.c.o: In
> function `arp_table_add':
> /home/petmay01/linaro/qemu-for-merges/build/clang/../../subprojects/libslirp/src/arp_table.c:50:
> undefined reference to `__ubsan_handle_type_mismatch_v1'
> /home/petmay01/linaro/qemu-for-merges/build/clang/../../subprojects/libslirp/src/arp_table.c:50:
> undefined reference to `__ubsan_handle_type_mismatch_v1'
> [etc etc etc]
> /home/petmay01/linaro/qemu-for-merges/build/clang/../../subprojects/libslirp/src/arp_table.c:52:
> undefined reference to `__ubsan_handle_nonnull_arg'
> /home/petmay01/linaro/qemu-for-merges/build/clang/../../subprojects/libslirp/src/arp_table.c:58:
> undefined reference to `__ubsan_handle_type_mismatch_v1'
> [etc etc etc]
> 
> and so on for lots of other libslirp files and ubsan symbols.

Hmm, that should have been taken care of by

     libslirp = subproject('libslirp',
                           default_options: ['default_library=static'])


I'll just drop this change.

Paolo