mbox

[PULL,v2,00/92] Misc patches for 2020-09-24

Message ID 20200925102257.1848666-1-pbonzini@redhat.com
State New
Headers show

Pull-request

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

Message

Paolo Bonzini Sept. 25, 2020, 10:22 a.m. UTC
The following changes since commit 8c1c07929feae876202ba26f07a540c5115c18cd:

  Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2020-09-24 18:48:45 +0100)

are available in the Git repository at:

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

for you to fetch changes up to 24c146dec201c64552b20eec5a442687b65fd93d:

  hw/net/can: Correct Kconfig dependencies (2020-09-25 06:18:57 -0400)

----------------------------------------------------------------
* SCSI fix (Dmitry, Li Feng, Li Qiang)
* memory API fixes (Eduardo)
* removal of deprecated '-numa node', 'cpu-add', '-smp' (Igor)
* ACPI fix for VMBus (Jon)
* relocatable install (myself)
* always remove docker containers (myself)
* serial cleanups (Philippe)
* vmware cpuid leaf for tsc and apic frequency (Sunil)
* KVM_FEATURE_ASYNC_PF_INT support (Vitaly)
* i386 XSAVE bugfix (Xiaoyao)
* QOM developer documentation in docs/devel (Eduardo)
* new checkpatch tests (Dov)
* x86_64 syscall fix (Douglas)
* interrupt-based APF fix (Vitaly)
* always create kvmclock (Vitaly)
* fix bios-tables-test (Eduardo)
* KVM PV features cleanup (myself)
* CAN FD (Pavel)

meson:
* fixes (Marc-André, Max, Stefan, Alexander, myself)
* submodule and environment CFLAGS overhaul (myself)
* moved libmpathpersist, cocoa, malloc tests (myself)
* support for 0.56 introspected test dependencies (myself)

----------------------------------------------------------------
Alexander Bulekov (1):
      oss-fuzz: move linker arg to fix coverage-build

Anthony PERARD (1):
      meson: fix installation of keymaps

Claudio Fontana (1):
      tests: add missing genh dependency

Daniel P. Berrangé (1):
      char: fix logging when chardev write fails

Dmitry Fomichev (1):
      scsi-generic: Fix HM-zoned device scan

Douglas Crosher (1):
      helper_syscall x86_64: clear exception_is_int

Dov Murik (1):
      checkpatch: Detect '%#' or '%0#' in printf-style format strings

Eduardo Habkost (10):
      memory: Convert IOMMUMemoryRegionClass doc comment to kernel-doc
      qom: Document all function parameters in doc comments
      qom: Use kernel-doc private/public tags in structs
      qom: Use ``code`` Sphinx syntax where appropriate
      qom: Add kernel-doc markup to introduction doc comment
      qom: Reformat section titles using Sphinx syntax
      qom: Indent existing code examples
      qom: Add code block markup to all code blocks
      docs: Create docs/devel/qom.rst
      bios-tables-test: Remove kernel-irqchip=off option

Igor Mammedov (5):
      numa: drop support for '-numa node' (without memory specified)
      doc: Cleanup "'-mem-path' fallback to RAM" deprecation text
      numa: remove fixup numa_state->num_nodes to MAX_NODES
      smp: drop support for deprecated (invalid topologies)
      cphp: remove deprecated cpu-add command(s)

Jan Charvat (5):
      net/can: Initial host SocketCan support for CAN FD.
      hw/net/can: sja1000 ignore CAN FD frames
      net/can: Add can_dlc2len and can_len2dlc for CAN FD.
      hw/net/can/ctucafd: Add CTU CAN FD core register definitions.
      hw/net/can: CTU CAN FD IP open hardware core emulation.

Jon Doron (1):
      acpi: i386: Move VMBus DSDT entry to SB

Li Feng (1):
      vhost-scsi: support inflight io track

Li Qiang (2):
      hw: megasas: return -1 when 'megasas_map_sgl' fails
      hw: megasas: consider 'iov_count=0' is an error in megasas_map_sgl

Marc-André Lureau (2):
      meson: fix MSI rule
      meson: error out if qemu_suffix starts with /

Paolo Bonzini (33):
      meson: clean up build_by_default
      ninjatool: rebuild multi-output targets if outputs are missing
      meson: move libudev test
      meson: move libmpathpersist test
      meson: extend libmpathpersist test for static linking
      configure: move malloc_trim/tcmalloc/jemalloc to meson
      configure: fix --meson=/path/to/meson
      configure: move cocoa option to Meson
      configure: do not limit Hypervisor.framework test to Darwin
      meson: qtest: set "depends" correctly
      mtest2make: add support for introspected test dependencies
      meson: report accelerator support
      oslib: do not call g_strdup from qemu_get_exec_dir
      fuzz: use qemu_get_exec_dir
      oslib-posix: default exec_dir to bindir
      cutils: introduce get_relocated_path
      oslib-posix: relocate path to /var
      module: relocate path to modules
      net: relocate paths to helpers and scripts
      vl: relocate paths to data directories
      vl: relocate path to configuration file
      qemu-bridge-helper: relocate path to default ACL
      qga: relocate path to default configuration and hook
      ui: relocate paths to icons and translations
      configure: use a platform-neutral prefix
      configure: fix performance regression due to PIC objects
      tests/tcg: reinstate or replace desired parts of rules.mak
      configure: cleanup invocation of submodule Make
      configure: cleanup CFLAGS and LDFLAGS for submodules
      configure: do not clobber environment CFLAGS/CXXFLAGS/LDFLAGS
      configure: consistently pass CFLAGS/CXXFLAGS/LDFLAGS to meson
      docs: Move object.h overview doc comment to qom.rst
      target/i386: kvm: do not use kvm_check_extension to find paravirtual capabilities

Pavel Pisa (2):
      hw/net/can: Documentation for CTU CAN FD IP open hardware core emulation.
      hw/net/can: Correct Kconfig dependencies

Philippe Mathieu-Daudé (16):
      configure: Do not intent to build WHPX on 32-bit host
      hw/mips/mipssim: Use MMIO serial device on fake ISA I/O
      hw/char/serial: Remove TYPE_SERIAL_IO
      hw/char/serial: Assert serial_ioport_read/write offset fits 8 bytes
      hw/char/serial: Replace commented DPRINTF() by trace event
      hw/char/serial: Remove old DEBUG_SERIAL commented code
      hw/char/serial: Rename I/O read/write trace events
      hw/char/serial: Make 'wakeup' property boolean
      hw/char/serial-{isa, pci}: Alias QDEV properties from generic serial object
      hw/i386/q35: Remove unreachable Xen code on Q35 machine
      exec: Remove MemoryRegion::global_locking field
      hw/i386/xen: Rename X86/PC specific function as xen_hvm_init_pc()
      sysemu/xen: Add missing 'exec/cpu-common.h' header for ram_addr_t type
      stubs: Split accelerator / hardware related stubs
      hw/xen: Split x86-specific declaration from generic hardware ones
      typedefs: Restrict PCMachineState to 'hw/i386/pc.h'

Stefan Hajnoczi (2):
      MAINTAINERS: add Paolo Bonzini as RCU maintainer
      configure: rename QEMU_GA_MSI_ENABLED to CONFIG_QGA_MSI

Stefano Garzarella (1):
      checkpatch: avoid error on cover letter files

Sunil Muthuswamy (1):
      WHPX: vmware cpuid leaf for tsc and apic frequency

Vitaly Kuznetsov (3):
      target/i386: support KVM_FEATURE_ASYNC_PF_INT
      target/i386: Fix VM migration when interrupt based APF is enabled
      target/i386: always create kvmclock device

Xiaoyao Li (1):
      i386/cpu: Clear FEAT_XSAVE_COMP_{LO,HI} when XSAVE is not available

 MAINTAINERS                           |  18 +
 Makefile                              |  28 +-
 accel/stubs/xen-stub.c                |  41 +-
 accel/tcg/cputlb.c                    |   4 +-
 chardev/char.c                        |  13 +
 configure                             | 313 ++++-------
 docs/can.txt                          | 113 +++-
 docs/devel/build-system.rst           |   5 +
 docs/devel/index.rst                  |   1 +
 docs/devel/qom.rst                    | 378 +++++++++++++
 docs/system/deprecated.rst            |  82 +--
 exec.c                                |   2 +-
 hmp-commands.hx                       |  15 -
 hw/char/serial-isa.c                  |   4 +-
 hw/char/serial-pci.c                  |   3 +-
 hw/char/serial.c                      |  65 +--
 hw/char/trace-events                  |   5 +-
 hw/core/machine-hmp-cmds.c            |  12 -
 hw/core/machine-qmp-cmds.c            |  12 -
 hw/core/machine.c                     |   1 -
 hw/core/numa.c                        |  59 ---
 hw/i386/acpi-build.c                  |  12 +-
 hw/i386/kvm/clock.c                   |   7 +-
 hw/i386/microvm.c                     |   2 +-
 hw/i386/pc.c                          |  28 +-
 hw/i386/pc_piix.c                     |  17 +-
 hw/i386/pc_q35.c                      |  19 +-
 hw/i386/xen/xen-hvm.c                 |   3 +-
 hw/mips/mipssim.c                     |   5 +-
 hw/net/Kconfig                        |  16 +-
 hw/net/can/can_sja1000.c              |  31 +-
 hw/net/can/ctu_can_fd_frame.h         | 189 +++++++
 hw/net/can/ctu_can_fd_regs.h          | 971 ++++++++++++++++++++++++++++++++++
 hw/net/can/ctucan_core.c              | 696 ++++++++++++++++++++++++
 hw/net/can/ctucan_core.h              | 127 +++++
 hw/net/can/ctucan_pci.c               | 281 ++++++++++
 hw/net/can/meson.build                |   2 +
 hw/ppc/spapr.c                        |   1 -
 hw/s390x/s390-virtio-ccw.c            |  12 -
 hw/scsi/megasas.c                     |   6 +-
 hw/scsi/scsi-generic.c                |  10 +-
 hw/scsi/vhost-scsi-common.c           |  27 +
 include/exec/memory.h                 |  64 ++-
 include/hw/boards.h                   |   3 -
 include/hw/char/serial.h              |  11 +-
 include/hw/i386/pc.h                  |   8 +-
 include/hw/kvm/clock.h                |   4 +-
 include/hw/virtio/vhost-scsi-common.h |   2 +
 include/hw/xen/xen-x86.h              |  15 +
 include/hw/xen/xen.h                  |   2 -
 include/monitor/hmp.h                 |   1 -
 include/net/can_emu.h                 |  12 +-
 include/net/net.h                     |   4 +-
 include/qemu-common.h                 |   1 -
 include/qemu/cutils.h                 |  12 +
 include/qemu/osdep.h                  |   8 +-
 include/qemu/typedefs.h               |   1 -
 include/qom/object.h                  | 547 ++++---------------
 include/scsi/constants.h              |   1 +
 include/sysemu/numa.h                 |   4 -
 include/sysemu/sysemu.h               |   2 +-
 include/sysemu/xen.h                  |   2 +
 meson.build                           | 215 ++++++--
 meson_options.txt                     |   9 +
 net/can/can_core.c                    |  36 ++
 net/can/can_socketcan.c               |  47 +-
 net/tap.c                             |  26 +-
 os-posix.c                            |  24 -
 os-win32.c                            |  11 -
 pc-bios/keymaps/meson.build           |   2 +
 qapi/machine.json                     |  24 -
 qemu-bridge-helper.c                  |   9 +-
 qga/main.c                            |   8 +-
 qga/meson.build                       |   1 +
 scripts/checkpatch.pl                 |  12 +-
 scripts/mtest2make.py                 |  19 +-
 scripts/ninjatool.py                  |   3 +
 softmmu/memory.c                      |   6 -
 softmmu/vl.c                          |  43 +-
 stubs/meson.build                     |   1 +
 stubs/xen-hw-stub.c                   |  50 ++
 target/i386/cpu.c                     |   6 +-
 target/i386/cpu.h                     |   1 +
 target/i386/kvm.c                     |  45 +-
 target/i386/kvm_i386.h                |   1 +
 target/i386/machine.c                 |  19 +
 target/i386/seg_helper.c              |   1 +
 target/i386/whp-dispatch.h            |   3 +-
 target/i386/whpx-all.c                |  96 +++-
 tests/fp/meson.build                  |   2 -
 tests/meson.build                     |   9 +-
 tests/qemu-iotests/meson.build        |   3 +-
 tests/qtest/bios-tables-test.c        |   3 +-
 tests/qtest/cpu-plug-test.c           | 100 +---
 tests/qtest/fuzz/fuzz.c               |  12 +-
 tests/qtest/meson.build               |   8 +-
 tests/qtest/test-hmp.c                |   1 -
 tests/tcg/Makefile.qemu               |  13 +-
 tests/tcg/configure.sh                |   4 +-
 trace/meson.build                     |   1 -
 ui/gtk.c                              |  10 +-
 ui/meson.build                        |   2 +-
 ui/sdl2.c                             |   9 +-
 ui/shader/meson.build                 |   1 -
 util/cutils.c                         |  61 +++
 util/module.c                         |  10 +-
 util/oslib-posix.c                    |  35 +-
 util/oslib-win32.c                    |  14 +-
 108 files changed, 3940 insertions(+), 1416 deletions(-)
 create mode 100644 docs/devel/qom.rst
 create mode 100644 hw/net/can/ctu_can_fd_frame.h
 create mode 100644 hw/net/can/ctu_can_fd_regs.h
 create mode 100644 hw/net/can/ctucan_core.c
 create mode 100644 hw/net/can/ctucan_core.h
 create mode 100644 hw/net/can/ctucan_pci.c
 create mode 100644 include/hw/xen/xen-x86.h
 create mode 100644 stubs/xen-hw-stub.c

Comments

Peter Maydell Sept. 25, 2020, 10:45 a.m. UTC | #1
On Fri, 25 Sep 2020 at 11:33, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 8c1c07929feae876202ba26f07a540c5115c18cd:
>
>   Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2020-09-24 18:48:45 +0100)
>
> are available in the Git repository at:
>
>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to 24c146dec201c64552b20eec5a442687b65fd93d:
>
>   hw/net/can: Correct Kconfig dependencies (2020-09-25 06:18:57 -0400)
>
> ----------------------------------------------------------------
> * SCSI fix (Dmitry, Li Feng, Li Qiang)
> * memory API fixes (Eduardo)
> * removal of deprecated '-numa node', 'cpu-add', '-smp' (Igor)
> * ACPI fix for VMBus (Jon)
> * relocatable install (myself)
> * always remove docker containers (myself)
> * serial cleanups (Philippe)
> * vmware cpuid leaf for tsc and apic frequency (Sunil)
> * KVM_FEATURE_ASYNC_PF_INT support (Vitaly)
> * i386 XSAVE bugfix (Xiaoyao)
> * QOM developer documentation in docs/devel (Eduardo)
> * new checkpatch tests (Dov)
> * x86_64 syscall fix (Douglas)
> * interrupt-based APF fix (Vitaly)
> * always create kvmclock (Vitaly)
> * fix bios-tables-test (Eduardo)
> * KVM PV features cleanup (myself)
> * CAN FD (Pavel)
>
> meson:
> * fixes (Marc-André, Max, Stefan, Alexander, myself)
> * submodule and environment CFLAGS overhaul (myself)
> * moved libmpathpersist, cocoa, malloc tests (myself)
> * support for 0.56 introspected test dependencies (myself)

 Date: Fri Sep 25 11:41:22 2020 +0100
    Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
ERROR: pull request includes tag with UTF-8 error in person name

(that's "configure: Do not intent to build WHPX on 32-bit host")

(I will run the merge through the other tests to see if there's
any other issues with it.)

thanks
-- PMM
Paolo Bonzini Sept. 25, 2020, 11:30 a.m. UTC | #2
On 25/09/20 12:45, Peter Maydell wrote:
> On Fri, 25 Sep 2020 at 11:33, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>
>> The following changes since commit 8c1c07929feae876202ba26f07a540c5115c18cd:
>>
>>   Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2020-09-24 18:48:45 +0100)
>>
>> are available in the Git repository at:
>>
>>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>>
>> for you to fetch changes up to 24c146dec201c64552b20eec5a442687b65fd93d:
>>
>>   hw/net/can: Correct Kconfig dependencies (2020-09-25 06:18:57 -0400)
>>
>> ----------------------------------------------------------------
>> * SCSI fix (Dmitry, Li Feng, Li Qiang)
>> * memory API fixes (Eduardo)
>> * removal of deprecated '-numa node', 'cpu-add', '-smp' (Igor)
>> * ACPI fix for VMBus (Jon)
>> * relocatable install (myself)
>> * always remove docker containers (myself)
>> * serial cleanups (Philippe)
>> * vmware cpuid leaf for tsc and apic frequency (Sunil)
>> * KVM_FEATURE_ASYNC_PF_INT support (Vitaly)
>> * i386 XSAVE bugfix (Xiaoyao)
>> * QOM developer documentation in docs/devel (Eduardo)
>> * new checkpatch tests (Dov)
>> * x86_64 syscall fix (Douglas)
>> * interrupt-based APF fix (Vitaly)
>> * always create kvmclock (Vitaly)
>> * fix bios-tables-test (Eduardo)
>> * KVM PV features cleanup (myself)
>> * CAN FD (Pavel)
>>
>> meson:
>> * fixes (Marc-André, Max, Stefan, Alexander, myself)
>> * submodule and environment CFLAGS overhaul (myself)
>> * moved libmpathpersist, cocoa, malloc tests (myself)
>> * support for 0.56 introspected test dependencies (myself)
> 
>  Date: Fri Sep 25 11:41:22 2020 +0100
>     Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ERROR: pull request includes tag with UTF-8 error in person name
> 
> (that's "configure: Do not intent to build WHPX on 32-bit host")
> 
> (I will run the merge through the other tests to see if there's
> any other issues with it.)

Thanks, I have pushed again and sent v3.

Paolo
Peter Maydell Sept. 25, 2020, 11:44 a.m. UTC | #3
On Fri, 25 Sep 2020 at 11:45, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Fri, 25 Sep 2020 at 11:33, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
>  Date: Fri Sep 25 11:41:22 2020 +0100
>     Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ERROR: pull request includes tag with UTF-8 error in person name
>
> (that's "configure: Do not intent to build WHPX on 32-bit host")
>
> (I will run the merge through the other tests to see if there's
> any other issues with it.)

It also failed on the clang build: all the usermode binaries
failed like this:

/usr/bin/ld: capstone/libcapstone.a(cs.o): relocation R_X86_64_32S
against `.bss' can not be used when making a PIE object; recompile
with -fPIC
/usr/bin/ld: capstone/libcapstone.a(utils.o): relocation R_X86_64_32S
against symbol `cs_mem_malloc' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(ARMModule.o): relocation
R_X86_64_32S against symbol `arch_init' can not be used when making a
PIE object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(AArch64Module.o): relocation
R_X86_64_32S against symbol `arch_init' can not be used when making a
PIE object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(PPCModule.o): relocation
R_X86_64_32S against symbol `arch_init' can not be used when making a
PIE object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(X86Module.o): relocation
R_X86_64_32S against symbol `arch_init' can not be used when making a
PIE object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(ARMDisassembler.o): relocation
R_X86_64_32S against `.rodata' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(ARMInstPrinter.o): relocation
R_X86_64_32S against `.rodata' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(ARMMapping.o): relocation
R_X86_64_32S against `.rodata' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(AArch64Disassembler.o): relocation
R_X86_64_32S against `.rodata' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(AArch64InstPrinter.o): relocation
R_X86_64_32S against symbol `cs_mem_free' can not be used when making
a PIE object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(AArch64Mapping.o): relocation
R_X86_64_32S against `.rodata' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(PPCDisassembler.o): relocation
R_X86_64_32S against `.rodata' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(PPCInstPrinter.o): relocation
R_X86_64_32S against symbol `cs_mem_free' can not be used when making
a PIE object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(PPCMapping.o): relocation
R_X86_64_32S against `.rodata' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(X86Disassembler.o): relocation
R_X86_64_32S against `.rodata' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(X86IntelInstPrinter.o): relocation
R_X86_64_32S against symbol `cs_mem_free' can not be used when making
a PIE object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(X86ATTInstPrinter.o): relocation
R_X86_64_32S against symbol `cs_mem_free' can not be used when making
a PIE object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(X86Mapping.o): relocation
R_X86_64_32S against `.rodata' can not be used when making a PIE
object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(AArch64BaseInfo.o): relocation
R_X86_64_32S against symbol `cs_mem_free' can not be used when making
a PIE object; recompile with -fPIC
/usr/bin/ld: capstone/libcapstone.a(X86DisassemblerDecoder.o):
relocation R_X86_64_32S against `.rodata' can not be used when making
a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output

thanks
-- PMM
Philippe Mathieu-Daudé Oct. 5, 2020, 7:51 a.m. UTC | #4
Hi Paolo,

On 9/25/20 1:44 PM, Peter Maydell wrote:
> On Fri, 25 Sep 2020 at 11:45, Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>> On Fri, 25 Sep 2020 at 11:33, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>
>>  Date: Fri Sep 25 11:41:22 2020 +0100
>>     Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ERROR: pull request includes tag with UTF-8 error in person name
>>
>> (that's "configure: Do not intent to build WHPX on 32-bit host")
>>
>> (I will run the merge through the other tests to see if there's
>> any other issues with it.)
> 
> It also failed on the clang build: all the usermode binaries
> failed like this:
> 
> /usr/bin/ld: capstone/libcapstone.a(cs.o): relocation R_X86_64_32S
> against `.bss' can not be used when making a PIE object; recompile
> with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(utils.o): relocation R_X86_64_32S
> against symbol `cs_mem_malloc' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(ARMModule.o): relocation
> R_X86_64_32S against symbol `arch_init' can not be used when making a
> PIE object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(AArch64Module.o): relocation
> R_X86_64_32S against symbol `arch_init' can not be used when making a
> PIE object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(PPCModule.o): relocation
> R_X86_64_32S against symbol `arch_init' can not be used when making a
> PIE object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(X86Module.o): relocation
> R_X86_64_32S against symbol `arch_init' can not be used when making a
> PIE object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(ARMDisassembler.o): relocation
> R_X86_64_32S against `.rodata' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(ARMInstPrinter.o): relocation
> R_X86_64_32S against `.rodata' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(ARMMapping.o): relocation
> R_X86_64_32S against `.rodata' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(AArch64Disassembler.o): relocation
> R_X86_64_32S against `.rodata' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(AArch64InstPrinter.o): relocation
> R_X86_64_32S against symbol `cs_mem_free' can not be used when making
> a PIE object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(AArch64Mapping.o): relocation
> R_X86_64_32S against `.rodata' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(PPCDisassembler.o): relocation
> R_X86_64_32S against `.rodata' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(PPCInstPrinter.o): relocation
> R_X86_64_32S against symbol `cs_mem_free' can not be used when making
> a PIE object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(PPCMapping.o): relocation
> R_X86_64_32S against `.rodata' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(X86Disassembler.o): relocation
> R_X86_64_32S against `.rodata' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(X86IntelInstPrinter.o): relocation
> R_X86_64_32S against symbol `cs_mem_free' can not be used when making
> a PIE object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(X86ATTInstPrinter.o): relocation
> R_X86_64_32S against symbol `cs_mem_free' can not be used when making
> a PIE object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(X86Mapping.o): relocation
> R_X86_64_32S against `.rodata' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(AArch64BaseInfo.o): relocation
> R_X86_64_32S against symbol `cs_mem_free' can not be used when making
> a PIE object; recompile with -fPIC
> /usr/bin/ld: capstone/libcapstone.a(X86DisassemblerDecoder.o):
> relocation R_X86_64_32S against `.rodata' can not be used when making
> a PIE object; recompile with -fPIC
> /usr/bin/ld: final link failed: Nonrepresentable section on output

Is that why your "configure: fix performance regression due to PIC
objects" patch has been dropped from your pull request?

Thanks,

Phil.
Paolo Bonzini Oct. 5, 2020, 8:44 a.m. UTC | #5
On 05/10/20 09:51, Philippe Mathieu-Daudé wrote:
> Is that why your "configure: fix performance regression due to PIC
> objects" patch has been dropped from your pull request?

Partly.

Regarding this particular failure, since Richard's capstone patches are 
being merged, I think it's easier to do the same with slirp and libfdt 
and drop the submodule rules from the makefile altogether.  Then we can
merge safely "configure: fix performance regression due to PIC objects"
and also simplify the CFLAGS/LDFLAGS patches.

Second, I am hoping that https://github.com/mesonbuild/meson/pull/7760 
gets in 0.56.0; then the fix can be simply

diff --git a/meson.build b/meson.build
index 1dd3f49011..d29b9d41db 100644
--- a/meson.build
+++ b/meson.build
@@ -1,6 +1,6 @@
 project('qemu', ['c'], meson_version: '>=0.55.0',
-        default_options: ['warning_level=1', 'c_std=gnu99', 'cpp_std=gnu++11',
-                          'b_colorout=auto'],
+        default_options: ['warning_level=1', 'c_std=gnu99', 'cpp_std=gnu++11', 'b_colorout=auto'] +
+                         (meson.version().version_compare('>=0.56.0') ? ['b_staticpic=false'] : []),
         version: run_command('head', meson.source_root() / 'VERSION').stdout().strip())
 
 not_found = dependency('', required: false)
 
Paolo