mbox

[PULL,00/64] slirp updates

Message ID 20181218230442.27887-1-samuel.thibault@ens-lyon.org
State New
Headers show

Pull-request

https://people.debian.org/~sthibault/qemu.git tags/samuel-thibault

Message

Samuel Thibault Dec. 18, 2018, 11:03 p.m. UTC
The following changes since commit e85c577158a2e8e252414959da9ef15c12eec63d:

  Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2018-12-17' into staging (2018-12-18 14:31:06 +0000)

are available in the Git repository at:

  https://people.debian.org/~sthibault/qemu.git tags/samuel-thibault

for you to fetch changes up to 4c2b5ca1b5dd42bb96e954db7a46ebe39fd24620:

  slirp: Mark debugging calls as unlikely (2018-12-18 23:44:35 +0100)

----------------------------------------------------------------
Abstract away slirp toward a libslirp

Gerd Hoffmann (1):
  slirp: add tftp tracing

Marc-André Lureau (61):
  slirp: associate slirp_output callback with the Slirp context
  slirp: remove do_pty from fork_exec()
  slirp: replace ex_pty with ex_chardev
  slirp: use a dedicated field for chardev pointer
  slirp: remove unused EMU_RSH
  slirp: rename /extra/chardev
  slirp: move internal function declarations
  slirp: remove Monitor dependency, return a string for info
  slirp: fix slirp_add_exec() leaks
  slirp: replace the poor-man string split with g_strsplit()
  slirp: remove dead declarations
  slirp: move socket pair creation in helper function
  slirp: remove unused M_TRAILINGSPACE
  slirp: use a callback structure to interface with qemu
  slirp: remove PROBE_CONN dead-code
  slirp: remove FULL_BOLT
  slirp: remove the disabled readv()/writev() code path
  slirp: remove HAVE_SYS_SIGNAL_H
  slirp: remove unused HAVE_SYS_BITYPES_H
  slirp: remove NO_UNIX_SOCKETS
  slirp: remove unused HAVE_SYS_STROPTS_H
  slirp: remove unused HAVE_ARPA_INET_H
  slirp: remove unused HAVE_SYS_WAIT_H
  slirp: remove unused HAVE_SYS_SELECT_H
  slirp: remove HAVE_SYS_IOCTL_H
  slirp: remove HAVE_SYS_FILIO_H
  slirp: remove unused DECLARE_IOVEC
  slirp: remove unused HAVE_INET_ATON
  slirp: replace HOST_WORDS_BIGENDIAN with glib equivalent
  slirp: replace SIZEOF_CHAR_P with glib equivalent
  slirp: replace compile time DO_KEEPALIVE
  slirp: remove unused global slirp_instance
  slirp: replace error_report() with g_critical()
  slirp: improve a bit the debug macros
  slirp: add a callback to log guest errors
  slirp: remove #if notdef dead code
  slirp: remove unused sbflush()
  slirp: NULL is defined by stddef.h
  slirp: remove dead TCP_ACK_HACK code
  slirp: replace ARRAY_SIZE with G_N_ELEMENTS
  net: do not depend on slirp internals
  glib-compat: add g_spawn_async_with_fds() fallback
  slirp: simplify fork_exec()
  slirp: replace error_report() with g_critical()
  slirp: drop <Vista compatibility
  slirp: rename exec_list
  slirp: use virtual time for packet expiration
  slirp: replace a fprintf with g_critical()
  slirp: replace some fprintf() with DEBUG_MISC
  slirp: replace a DEBUG block with WITH_ICMP_ERROR_MSG
  slirp: no need to make DPRINTF conditional on DEBUG
  slirp: always build with debug statements
  slirp: introduce SLIRP_DEBUG environment variable
  slirp: use %p for pointers format
  slirp: remove remaining DEBUG blocks
  slirp: replace DEBUG_ARGS with DEBUG_ARG
  slirp: factor out guestfwd addition checks
  slirp: add clock_get_ns() callback
  build-sys: use a seperate slirp-obj-y && slirp.mo
  slirp: set G_LOG_DOMAIN
  slirp: call into g_debug() for DEBUG macros

Samuel Thibault (2):
  slirp: Enable fork_exec support on Windows
  slirp: Mark debugging calls as unlikely

----------------------------------------------------------------
Gerd Hoffmann (1):
      slirp: add tftp tracing

Marc-André Lureau (61):
      slirp: associate slirp_output callback with the Slirp context
      slirp: remove do_pty from fork_exec()
      slirp: replace ex_pty with ex_chardev
      slirp: use a dedicated field for chardev pointer
      slirp: remove unused EMU_RSH
      slirp: rename /extra/chardev
      slirp: move internal function declarations
      slirp: remove Monitor dependency, return a string for info
      slirp: fix slirp_add_exec() leaks
      slirp: replace the poor-man string split with g_strsplit()
      slirp: remove dead declarations
      slirp: move socket pair creation in helper function
      slirp: remove unused M_TRAILINGSPACE
      slirp: use a callback structure to interface with qemu
      slirp: remove PROBE_CONN dead-code
      slirp: remove FULL_BOLT
      slirp: remove the disabled readv()/writev() code path
      slirp: remove HAVE_SYS_SIGNAL_H
      slirp: remove unused HAVE_SYS_BITYPES_H
      slirp: remove NO_UNIX_SOCKETS
      slirp: remove unused HAVE_SYS_STROPTS_H
      slirp: remove unused HAVE_ARPA_INET_H
      slirp: remove unused HAVE_SYS_WAIT_H
      slirp: remove unused HAVE_SYS_SELECT_H
      slirp: remove HAVE_SYS_IOCTL_H
      slirp: remove HAVE_SYS_FILIO_H
      slirp: remove unused DECLARE_IOVEC
      slirp: remove unused HAVE_INET_ATON
      slirp: replace HOST_WORDS_BIGENDIAN with glib equivalent
      slirp: replace SIZEOF_CHAR_P with glib equivalent
      slirp: replace compile time DO_KEEPALIVE
      slirp: remove unused global slirp_instance
      slirp: replace error_report() with g_critical()
      slirp: improve a bit the debug macros
      slirp: add a callback to log guest errors
      slirp: remove #if notdef dead code
      slirp: remove unused sbflush()
      slirp: NULL is defined by stddef.h
      slirp: remove dead TCP_ACK_HACK code
      slirp: replace ARRAY_SIZE with G_N_ELEMENTS
      net: do not depend on slirp internals
      glib-compat: add g_spawn_async_with_fds() fallback
      slirp: simplify fork_exec()
      slirp: replace error_report() with g_critical()
      slirp: drop <Vista compatibility
      slirp: rename exec_list
      slirp: use virtual time for packet expiration
      slirp: replace a fprintf with g_critical()
      slirp: replace some fprintf() with DEBUG_MISC
      slirp: replace a DEBUG block with WITH_ICMP_ERROR_MSG
      slirp: no need to make DPRINTF conditional on DEBUG
      slirp: always build with debug statements
      slirp: introduce SLIRP_DEBUG environment variable
      slirp: use %p for pointers format
      slirp: remove remaining DEBUG blocks
      slirp: replace DEBUG_ARGS with DEBUG_ARG
      slirp: factor out guestfwd addition checks
      slirp: add clock_get_ns() callback
      build-sys: use a seperate slirp-obj-y && slirp.mo
      slirp: set G_LOG_DOMAIN
      slirp: call into g_debug() for DEBUG macros

Samuel Thibault (2):
      slirp: Enable fork_exec support on Windows
      slirp: Mark debugging calls as unlikely

 Makefile.objs         |   4 +-
 Makefile.target       |   5 +-
 include/glib-compat.h |  56 ++++++++++
 net/colo-compare.c    |  11 +-
 net/colo.c            |   1 +
 net/colo.h            |   7 +-
 net/filter-rewriter.c |   9 +-
 net/slirp.c           |  61 +++++------
 net/util.h            |  55 ++++++++++
 slirp/Makefile.objs   |  37 ++++++-
 slirp/arp_table.c     |  12 +--
 slirp/bootp.c         |  10 +-
 slirp/cksum.c         |   8 +-
 slirp/debug.h         |  47 +++++----
 slirp/dhcpv6.c        |  17 ++-
 slirp/if.c            |   4 +-
 slirp/ip.h            |  10 +-
 slirp/ip6.h           |   3 +-
 slirp/ip6_icmp.c      |  27 +++--
 slirp/ip6_icmp.h      |   6 +-
 slirp/ip6_input.c     |   2 +-
 slirp/ip6_output.c    |   4 +-
 slirp/ip_icmp.c       |  31 +++---
 slirp/ip_input.c      | 200 -----------------------------------
 slirp/libslirp.h      |  27 +++--
 slirp/main.h          |  33 ------
 slirp/mbuf.c          |   2 +-
 slirp/mbuf.h          |   1 -
 slirp/misc.c          | 286 ++++++++++++++++++++------------------------------
 slirp/misc.h          |  13 ++-
 slirp/ncsi.c          |   4 +-
 slirp/ndp_table.c     |  32 +++---
 slirp/sbuf.h          |   1 -
 slirp/slirp.c         | 177 +++++++++++++++----------------
 slirp/slirp.h         |  45 ++------
 slirp/slirp_config.h  |  86 ---------------
 slirp/socket.c        |  53 +++-------
 slirp/socket.h        |   2 +-
 slirp/tcp.h           |   4 +-
 slirp/tcp_input.c     |  84 ++-------------
 slirp/tcp_output.c    |   2 +-
 slirp/tcp_subr.c      |  17 ++-
 slirp/tcp_timer.c     |   2 +-
 slirp/tftp.c          |   7 +-
 slirp/trace-events    |   5 +
 slirp/udp.c           |   5 +-
 slirp/udp6.c          |  11 +-
 stubs/slirp.c         |   2 +-
 48 files changed, 595 insertions(+), 933 deletions(-)
 delete mode 100644 slirp/slirp_config.h
 create mode 100644 slirp/trace-events

Comments

Peter Maydell Dec. 19, 2018, 7:43 p.m. UTC | #1
On Tue, 18 Dec 2018 at 23:04, Samuel Thibault
<samuel.thibault@ens-lyon.org> wrote:
>
> The following changes since commit e85c577158a2e8e252414959da9ef15c12eec63d:
>
>   Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2018-12-17' into staging (2018-12-18 14:31:06 +0000)
>
> are available in the Git repository at:
>
>   https://people.debian.org/~sthibault/qemu.git tags/samuel-thibault
>
> for you to fetch changes up to 4c2b5ca1b5dd42bb96e954db7a46ebe39fd24620:
>
>   slirp: Mark debugging calls as unlikely (2018-12-18 23:44:35 +0100)
>
> ----------------------------------------------------------------
> Abstract away slirp toward a libslirp

This fails to compile (all platforms):

For the windows builds, a compile failure in slirp.c:
/home/petmay01/qemu-for-merges/net/slirp.c: In function 'net_slirp_init':
/home/petmay01/qemu-for-merges/net/slirp.c:302:10: error: implicit
declaration of function 'inet_pton'
[-Werror=implicit-function-declaration]
     if (!inet_pton(AF_INET6, vprefix6, &ip6_prefix)) {
          ^
/home/petmay01/qemu-for-merges/net/slirp.c:302:5: error: nested extern
declaration of 'inet_pton' [-Werror=nested-externs]
     if (!inet_pton(AF_INET6, vprefix6, &ip6_prefix)) {
     ^

On Linux (x86-64 and other host archs) a link failure:

  LINK    arm-softmmu/qemu-system-arm
../slirp/ncsi.o: In function `ncsi_input':
/home/petmay01/linaro/qemu-for-merges/slirp/ncsi.c:166: undefined
reference to `slirp_output'
../slirp/slirp.o: In function `arp_input':
/home/petmay01/linaro/qemu-for-merges/slirp/slirp.c:835: undefined
reference to `slirp_output'
../slirp/slirp.o: In function `if_encap4':
/home/petmay01/linaro/qemu-for-merges/slirp/slirp.c:935: undefined
reference to `slirp_output'
../slirp/slirp.o: In function `if_encap':
/home/petmay01/linaro/qemu-for-merges/slirp/slirp.c:1021: undefined
reference to `slirp_output'
collect2: error: ld returned 1 exit status
Makefile:199: recipe for target 'qemu-system-arm' failed

It also manages to provoke an internal linker error on freebsd:

/usr/bin/ld: error in ../slirp/socket.o(.eh_frame); no .eh_frame_hdr
table will be created.
/usr/bin/ld: ../slirp/socket.o: invalid string offset 1416 >= 978 for
section `.strtab'
/usr/bin/ld: ../slirp/socket.o: invalid relocation type 38
/usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 assertion fail
/usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-x86-
64.c:276
/usr/bin/ld: ../slirp/socket.o: invalid relocation type 51
/usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 assertion fail
/usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-x86-64.c:276
/usr/bin/ld: ../slirp/socket.o: invalid relocation type 57
[enormous long list of similar messages]
/usr/bin/ld: ../slirp/socket.o: invalid relocation type 8248
/usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 assertion fail
/usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-x86-
64.c:276
/usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 internal error, aborting
at /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/b
fd/reloc.c line 5288 in bfd_byte
*bfd_generic_get_relocated_section_contents(bfd *, struct
bfd_link_info *, struct bfd_link_order *, bfd_byte
 *, bfd_boolean, asymbol **)

/usr/bin/ld: Please report this bug.

c++: error: linker command failed with exit code 1 (use -v to see invocation)

On NetBSD, a different slirp.c compiler error building the bsd-user
target:
In file included from ../slirp/slirp.c:31:0:
/var/tmp/qemu-test.nLOQbq/include/hw/hw.h:6:2: error: #error Cannot
include hw/hw.h from user emulation
 #error Cannot include hw/hw.h from user emulation
  ^

On OpenBSD, a rather uninformative linker error:
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status

On OSX, the clang version of the same issue as Linux:
Undefined symbols for architecture x86_64:
  "_slirp_output", referenced from:
      _ncsi_input in ncsi.o
      _slirp_input in slirp.o
      _if_encap in slirp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

thanks
-- PMM
Marc-André Lureau Dec. 20, 2018, 12:01 p.m. UTC | #2
Hi

On Wed, Dec 19, 2018 at 11:45 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Tue, 18 Dec 2018 at 23:04, Samuel Thibault
> <samuel.thibault@ens-lyon.org> wrote:
> >
> > The following changes since commit e85c577158a2e8e252414959da9ef15c12eec63d:
> >
> >   Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2018-12-17' into staging (2018-12-18 14:31:06 +0000)
> >
> > are available in the Git repository at:
> >
> >   https://people.debian.org/~sthibault/qemu.git tags/samuel-thibault
> >
> > for you to fetch changes up to 4c2b5ca1b5dd42bb96e954db7a46ebe39fd24620:
> >
> >   slirp: Mark debugging calls as unlikely (2018-12-18 23:44:35 +0100)
> >
> > ----------------------------------------------------------------
> > Abstract away slirp toward a libslirp
>
> This fails to compile (all platforms):
>
> For the windows builds, a compile failure in slirp.c:
> /home/petmay01/qemu-for-merges/net/slirp.c: In function 'net_slirp_init':
> /home/petmay01/qemu-for-merges/net/slirp.c:302:10: error: implicit
> declaration of function 'inet_pton'
> [-Werror=implicit-function-declaration]
>      if (!inet_pton(AF_INET6, vprefix6, &ip6_prefix)) {
>           ^
> /home/petmay01/qemu-for-merges/net/slirp.c:302:5: error: nested extern
> declaration of 'inet_pton' [-Werror=nested-externs]
>      if (!inet_pton(AF_INET6, vprefix6, &ip6_prefix)) {
>      ^
>

This one is easy, it needs "build-sys: require Vista API by default
globally" series that Paolo has been sending in his last pullreqs.

> On Linux (x86-64 and other host archs) a link failure:
>
>   LINK    arm-softmmu/qemu-system-arm
> ../slirp/ncsi.o: In function `ncsi_input':
> /home/petmay01/linaro/qemu-for-merges/slirp/ncsi.c:166: undefined
> reference to `slirp_output'
> ../slirp/slirp.o: In function `arp_input':
> /home/petmay01/linaro/qemu-for-merges/slirp/slirp.c:835: undefined
> reference to `slirp_output'
> ../slirp/slirp.o: In function `if_encap4':
> /home/petmay01/linaro/qemu-for-merges/slirp/slirp.c:935: undefined
> reference to `slirp_output'
> ../slirp/slirp.o: In function `if_encap':
> /home/petmay01/linaro/qemu-for-merges/slirp/slirp.c:1021: undefined
> reference to `slirp_output'
> collect2: error: ld returned 1 exit status
> Makefile:199: recipe for target 'qemu-system-arm' failed
>

Hmm, weird linker error. Could you give some details on your build environment?

> It also manages to provoke an internal linker error on freebsd:
>
> /usr/bin/ld: error in ../slirp/socket.o(.eh_frame); no .eh_frame_hdr
> table will be created.
> /usr/bin/ld: ../slirp/socket.o: invalid string offset 1416 >= 978 for
> section `.strtab'
> /usr/bin/ld: ../slirp/socket.o: invalid relocation type 38
> /usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 assertion fail
> /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-x86-
> 64.c:276
> /usr/bin/ld: ../slirp/socket.o: invalid relocation type 51
> /usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 assertion fail
> /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-x86-64.c:276
> /usr/bin/ld: ../slirp/socket.o: invalid relocation type 57
> [enormous long list of similar messages]
> /usr/bin/ld: ../slirp/socket.o: invalid relocation type 8248
> /usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 assertion fail
> /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-x86-
> 64.c:276
> /usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 internal error, aborting
> at /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/b
> fd/reloc.c line 5288 in bfd_byte
> *bfd_generic_get_relocated_section_contents(bfd *, struct
> bfd_link_info *, struct bfd_link_order *, bfd_byte
>  *, bfd_boolean, asymbol **)
>
> /usr/bin/ld: Please report this bug.

make vm-build-freebsd passes here... weirder

>
> c++: error: linker command failed with exit code 1 (use -v to see invocation)
>
> On NetBSD, a different slirp.c compiler error building the bsd-user
> target:
> In file included from ../slirp/slirp.c:31:0:
> /var/tmp/qemu-test.nLOQbq/include/hw/hw.h:6:2: error: #error Cannot
> include hw/hw.h from user emulation
>  #error Cannot include hw/hw.h from user emulation
>   ^
>

make vm-build-netbsd passes here too...

> On OpenBSD, a rather uninformative linker error:
> /usr/bin/ld: final link failed: Nonrepresentable section on output
> collect2: error: ld returned 1 exit status

make vm-build-openbsd fails here however with the:
"Cannot include hw/hw.h from user emulation" (interesting, no? ;)

Eh, git blame:
062e552 Anthony Liguori        2009-01-08 19:27 +0000   31│ #include "hw/hw.h"

-#include "hw/hw.h"
+#include "migration/vmstate.h"
+#include "migration/qemu-file-types.h"

Seems to solve it. I will send a seperate patch.

> On OSX, the clang version of the same issue as Linux:
> Undefined symbols for architecture x86_64:
>   "_slirp_output", referenced from:
>       _ncsi_input in ncsi.o
>       _slirp_input in slirp.o
>       _if_encap in slirp.o
> ld: symbol(s) not found for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>

I don't have a mac, but all those linker errors look related.

I don't get why it sometime succeeds to link, but there is an obvious
mistake in "build-sys: use a seperate slirp-obj-y && slirp.mo" (Sam,
you should squash that fix)

diff --git a/Makefile.target b/Makefile.target
index 37e2fc449b..39f72e81be 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -182,13 +182,13 @@ dummy := $(call unnest-vars,.., \
                slirp-obj-y)
 target-obj-y := $(target-obj-y-save)
 all-obj-y += $(common-obj-y)
-all-obj-y += $(slirp-obj-y)
 all-obj-y += $(target-obj-y)
 all-obj-y += $(qom-obj-y)
 all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y) $(chardev-obj-y)
 all-obj-$(CONFIG_USER_ONLY) += $(crypto-aes-obj-y)
 all-obj-$(CONFIG_SOFTMMU) += $(crypto-obj-y)
 all-obj-$(CONFIG_SOFTMMU) += $(io-obj-y)
+all-obj-$(CONFIG_SOFTMMU) += $(slirp-obj-y)

--
Marc-André Lureau
Marc-André Lureau Dec. 20, 2018, 12:20 p.m. UTC | #3
Hi

On Thu, Dec 20, 2018 at 4:01 PM Marc-André Lureau
<marcandre.lureau@gmail.com> wrote:
>
> Hi
>
> On Wed, Dec 19, 2018 at 11:45 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> >
> > On Tue, 18 Dec 2018 at 23:04, Samuel Thibault
> > <samuel.thibault@ens-lyon.org> wrote:
> > >
> > > The following changes since commit e85c577158a2e8e252414959da9ef15c12eec63d:
> > >
> > >   Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2018-12-17' into staging (2018-12-18 14:31:06 +0000)
> > >
> > > are available in the Git repository at:
> > >
> > >   https://people.debian.org/~sthibault/qemu.git tags/samuel-thibault
> > >
> > > for you to fetch changes up to 4c2b5ca1b5dd42bb96e954db7a46ebe39fd24620:
> > >
> > >   slirp: Mark debugging calls as unlikely (2018-12-18 23:44:35 +0100)
> > >
> > > ----------------------------------------------------------------
> > > Abstract away slirp toward a libslirp
> >
> > This fails to compile (all platforms):
> >
> > For the windows builds, a compile failure in slirp.c:
> > /home/petmay01/qemu-for-merges/net/slirp.c: In function 'net_slirp_init':
> > /home/petmay01/qemu-for-merges/net/slirp.c:302:10: error: implicit
> > declaration of function 'inet_pton'
> > [-Werror=implicit-function-declaration]
> >      if (!inet_pton(AF_INET6, vprefix6, &ip6_prefix)) {
> >           ^
> > /home/petmay01/qemu-for-merges/net/slirp.c:302:5: error: nested extern
> > declaration of 'inet_pton' [-Werror=nested-externs]
> >      if (!inet_pton(AF_INET6, vprefix6, &ip6_prefix)) {
> >      ^
> >
>
> This one is easy, it needs "build-sys: require Vista API by default
> globally" series that Paolo has been sending in his last pullreqs.
>
> > On Linux (x86-64 and other host archs) a link failure:
> >
> >   LINK    arm-softmmu/qemu-system-arm
> > ../slirp/ncsi.o: In function `ncsi_input':
> > /home/petmay01/linaro/qemu-for-merges/slirp/ncsi.c:166: undefined
> > reference to `slirp_output'
> > ../slirp/slirp.o: In function `arp_input':
> > /home/petmay01/linaro/qemu-for-merges/slirp/slirp.c:835: undefined
> > reference to `slirp_output'
> > ../slirp/slirp.o: In function `if_encap4':
> > /home/petmay01/linaro/qemu-for-merges/slirp/slirp.c:935: undefined
> > reference to `slirp_output'
> > ../slirp/slirp.o: In function `if_encap':
> > /home/petmay01/linaro/qemu-for-merges/slirp/slirp.c:1021: undefined
> > reference to `slirp_output'
> > collect2: error: ld returned 1 exit status
> > Makefile:199: recipe for target 'qemu-system-arm' failed
> >
>
> Hmm, weird linker error. Could you give some details on your build environment?
>
> > It also manages to provoke an internal linker error on freebsd:
> >
> > /usr/bin/ld: error in ../slirp/socket.o(.eh_frame); no .eh_frame_hdr
> > table will be created.
> > /usr/bin/ld: ../slirp/socket.o: invalid string offset 1416 >= 978 for
> > section `.strtab'
> > /usr/bin/ld: ../slirp/socket.o: invalid relocation type 38
> > /usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 assertion fail
> > /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-x86-
> > 64.c:276
> > /usr/bin/ld: ../slirp/socket.o: invalid relocation type 51
> > /usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 assertion fail
> > /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-x86-64.c:276
> > /usr/bin/ld: ../slirp/socket.o: invalid relocation type 57
> > [enormous long list of similar messages]
> > /usr/bin/ld: ../slirp/socket.o: invalid relocation type 8248
> > /usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 assertion fail
> > /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-x86-
> > 64.c:276
> > /usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 internal error, aborting
> > at /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/b
> > fd/reloc.c line 5288 in bfd_byte
> > *bfd_generic_get_relocated_section_contents(bfd *, struct
> > bfd_link_info *, struct bfd_link_order *, bfd_byte
> >  *, bfd_boolean, asymbol **)
> >
> > /usr/bin/ld: Please report this bug.
>
> make vm-build-freebsd passes here... weirder
>
> >
> > c++: error: linker command failed with exit code 1 (use -v to see invocation)
> >
> > On NetBSD, a different slirp.c compiler error building the bsd-user
> > target:
> > In file included from ../slirp/slirp.c:31:0:
> > /var/tmp/qemu-test.nLOQbq/include/hw/hw.h:6:2: error: #error Cannot
> > include hw/hw.h from user emulation
> >  #error Cannot include hw/hw.h from user emulation
> >   ^
> >
>
> make vm-build-netbsd passes here too...
>
> > On OpenBSD, a rather uninformative linker error:
> > /usr/bin/ld: final link failed: Nonrepresentable section on output
> > collect2: error: ld returned 1 exit status
>
> make vm-build-openbsd fails here however with the:
> "Cannot include hw/hw.h from user emulation" (interesting, no? ;)
>
> Eh, git blame:
> 062e552 Anthony Liguori        2009-01-08 19:27 +0000   31│ #include "hw/hw.h"
>
> -#include "hw/hw.h"
> +#include "migration/vmstate.h"
> +#include "migration/qemu-file-types.h"
>
> Seems to solve it. I will send a seperate patch.

Ok I figure that the error only happen when build for -user, however
with the build fix below, it only builds for -softmmu. So that fix is
not required.

All in all, I think we should give it another try once the "build-sys:
require Vista API" series is merged, and with the build-sys fix below
squahed in "build-sys: use a seperate slirp-obj-y && slirp.mo".

>
> > On OSX, the clang version of the same issue as Linux:
> > Undefined symbols for architecture x86_64:
> >   "_slirp_output", referenced from:
> >       _ncsi_input in ncsi.o
> >       _slirp_input in slirp.o
> >       _if_encap in slirp.o
> > ld: symbol(s) not found for architecture x86_64
> > clang: error: linker command failed with exit code 1 (use -v to see invocation)
> >
>
> I don't have a mac, but all those linker errors look related.
>
> I don't get why it sometime succeeds to link, but there is an obvious
> mistake in "build-sys: use a seperate slirp-obj-y && slirp.mo" (Sam,
> you should squash that fix)
>
> diff --git a/Makefile.target b/Makefile.target
> index 37e2fc449b..39f72e81be 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -182,13 +182,13 @@ dummy := $(call unnest-vars,.., \
>                 slirp-obj-y)
>  target-obj-y := $(target-obj-y-save)
>  all-obj-y += $(common-obj-y)
> -all-obj-y += $(slirp-obj-y)
>  all-obj-y += $(target-obj-y)
>  all-obj-y += $(qom-obj-y)
>  all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y) $(chardev-obj-y)
>  all-obj-$(CONFIG_USER_ONLY) += $(crypto-aes-obj-y)
>  all-obj-$(CONFIG_SOFTMMU) += $(crypto-obj-y)
>  all-obj-$(CONFIG_SOFTMMU) += $(io-obj-y)
> +all-obj-$(CONFIG_SOFTMMU) += $(slirp-obj-y)
>
> --
> Marc-André Lureau
Samuel Thibault Dec. 20, 2018, 12:37 p.m. UTC | #4
Marc-André Lureau, le jeu. 20 déc. 2018 16:01:44 +0400, a ecrit:
> > declaration of 'inet_pton' [-Werror=nested-externs]
> >      if (!inet_pton(AF_INET6, vprefix6, &ip6_prefix)) {
> >      ^
> >
> 
> This one is easy, it needs "build-sys: require Vista API by default
> globally" series that Paolo has been sending in his last pullreqs.

Ok, let's wait for it for that part then.

> there is an obvious
> mistake in "build-sys: use a seperate slirp-obj-y && slirp.mo" (Sam,
> you should squash that fix)

Ok, squashed in my tree.

Samuel
no-reply@patchew.org Dec. 25, 2018, 2:33 a.m. UTC | #5
Patchew URL: https://patchew.org/QEMU/20181218230442.27887-1-samuel.thibault@ens-lyon.org/



Hi,

This series failed the docker-quick@centos7 build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
time make docker-test-quick@centos7 SHOW_ENV=1 J=8
=== TEST SCRIPT END ===

libpmem support   no
libudev           no

WARNING: Use of SDL 1.2 is deprecated and will be removed in
WARNING: future releases. Please switch to using SDL 2.0

NOTE: cross-compilers enabled:  'cc'
  GEN     x86_64-softmmu/config-devices.mak.tmp


The full log is available at
http://patchew.org/logs/20181218230442.27887-1-samuel.thibault@ens-lyon.org/testing.docker-quick@centos7/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
no-reply@patchew.org Dec. 25, 2018, 2:38 a.m. UTC | #6
Patchew URL: https://patchew.org/QEMU/20181218230442.27887-1-samuel.thibault@ens-lyon.org/



Hi,

This series failed the docker-mingw@fedora build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
time make docker-test-mingw@fedora SHOW_ENV=1 J=8
=== TEST SCRIPT END ===

  CC      net/filter-rewriter.o
  CC      net/filter-replay.o
/tmp/qemu-test/src/net/slirp.c: In function 'net_slirp_init':
/tmp/qemu-test/src/net/slirp.c:302:10: error: implicit declaration of function 'inet_pton'; did you mean 'inet_aton'? [-Werror=implicit-function-declaration]
     if (!inet_pton(AF_INET6, vprefix6, &ip6_prefix)) {
          ^~~~~~~~~
          inet_aton
/tmp/qemu-test/src/net/slirp.c:302:10: error: nested extern declaration of 'inet_pton' [-Werror=nested-externs]
cc1: all warnings being treated as errors
make: *** [/tmp/qemu-test/src/rules.mak:69: net/slirp.o] Error 1
make: *** Waiting for unfinished jobs....


The full log is available at
http://patchew.org/logs/20181218230442.27887-1-samuel.thibault@ens-lyon.org/testing.docker-mingw@fedora/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
no-reply@patchew.org Dec. 25, 2018, 2:45 a.m. UTC | #7
Patchew URL: https://patchew.org/QEMU/20181218230442.27887-1-samuel.thibault@ens-lyon.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Message-id: 20181218230442.27887-1-samuel.thibault@ens-lyon.org
Type: series
Subject: [Qemu-devel] [PULL 00/64] slirp updates

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
e31b3cf slirp: Mark debugging calls as unlikely
6b01bfd slirp: call into g_debug() for DEBUG macros
a790e3d slirp: set G_LOG_DOMAIN
969e302 build-sys: use a seperate slirp-obj-y && slirp.mo
3332d62 slirp: add clock_get_ns() callback
f7af5a7 slirp: factor out guestfwd addition checks
b0b5168 slirp: replace DEBUG_ARGS with DEBUG_ARG
8493417 slirp: remove remaining DEBUG blocks
8fb3d34 slirp: use %p for pointers format
29b7c49 slirp: introduce SLIRP_DEBUG environment variable
454ba9c slirp: always build with debug statements
0b1c827 slirp: no need to make DPRINTF conditional on DEBUG
3659a07 slirp: replace a DEBUG block with WITH_ICMP_ERROR_MSG
4f8d093 slirp: replace some fprintf() with DEBUG_MISC
51a85a0 slirp: replace a fprintf with g_critical()
5120660 slirp: use virtual time for packet expiration
4193273 slirp: rename exec_list
69f9377 slirp: drop <Vista compatibility
342befa slirp: Enable fork_exec support on Windows
7b6909e slirp: replace error_report() with g_critical()
3fda8b1 slirp: simplify fork_exec()
ca3f1b9 glib-compat: add g_spawn_async_with_fds() fallback
d375cff net: do not depend on slirp internals
b85cf93 slirp: replace ARRAY_SIZE with G_N_ELEMENTS
9fd32c7 slirp: remove dead TCP_ACK_HACK code
22962ef slirp: NULL is defined by stddef.h
c44961a slirp: remove unused sbflush()
d028770 slirp: remove #if notdef dead code
e83081a slirp: add a callback to log guest errors
a429733 slirp: improve a bit the debug macros
4048f90 slirp: replace error_report() with g_critical()
ede154f slirp: remove unused global slirp_instance
42eb362 slirp: replace compile time DO_KEEPALIVE
f995a15 slirp: replace SIZEOF_CHAR_P with glib equivalent
bebab19 slirp: replace HOST_WORDS_BIGENDIAN with glib equivalent
a2e2cd1 slirp: remove unused HAVE_INET_ATON
9741693 slirp: remove unused DECLARE_IOVEC
e641390 slirp: remove HAVE_SYS_FILIO_H
3d56770 slirp: remove HAVE_SYS_IOCTL_H
73eefd2 slirp: remove unused HAVE_SYS_SELECT_H
4b9df6b slirp: remove unused HAVE_SYS_WAIT_H
8b592af slirp: remove unused HAVE_ARPA_INET_H
e47d8ef slirp: remove unused HAVE_SYS_STROPTS_H
8a5755e slirp: remove NO_UNIX_SOCKETS
ff11bc4 slirp: remove unused HAVE_SYS_BITYPES_H
2678ee7 slirp: remove HAVE_SYS_SIGNAL_H
6c35ee2 slirp: remove the disabled readv()/writev() code path
5d26c2d slirp: remove FULL_BOLT
92c5bec slirp: remove PROBE_CONN dead-code
ae97899 slirp: use a callback structure to interface with qemu
90b64e9 slirp: remove unused M_TRAILINGSPACE
2d08aae slirp: move socket pair creation in helper function
d21a220 slirp: add tftp tracing
111b170 slirp: remove dead declarations
329922b slirp: replace the poor-man string split with g_strsplit()
52b85bc slirp: fix slirp_add_exec() leaks
57540f4 slirp: remove Monitor dependency, return a string for info
948aa94 slirp: move internal function declarations
8bd8a0a slirp: rename /extra/chardev
358237e slirp: remove unused EMU_RSH
56ac752 slirp: use a dedicated field for chardev pointer
eed1340 slirp: replace ex_pty with ex_chardev
1561e30 slirp: remove do_pty from fork_exec()
0a23de3 slirp: associate slirp_output callback with the Slirp context

=== OUTPUT BEGIN ===
Checking PATCH 1/64: slirp: associate slirp_output callback with the Slirp context...
Checking PATCH 2/64: slirp: remove do_pty from fork_exec()...
Checking PATCH 3/64: slirp: replace ex_pty with ex_chardev...
ERROR: code indent should never use tabs
#24: FILE: slirp/misc.c:56:
+^I(*ex_ptr)->ex_chardev = do_pty == 3;$

ERROR: code indent should never use tabs
#37: FILE: slirp/misc.h:12:
+^Iint ex_chardev;$

total: 2 errors, 0 warnings, 40 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 4/64: slirp: use a dedicated field for chardev pointer...
ERROR: code indent should never use tabs
#79: FILE: slirp/misc.c:53:
+^I*ex_ptr = g_new0(struct ex_list, 1);$

ERROR: code indent should never use tabs
#84: FILE: slirp/misc.c:56:
+^Iif (chardev) {$

ERROR: code indent should never use tabs
#85: FILE: slirp/misc.c:57:
+^I^I(*ex_ptr)->ex_chardev = chardev;$

ERROR: code indent should never use tabs
#86: FILE: slirp/misc.c:58:
+^I} else {$

ERROR: code indent should never use tabs
#87: FILE: slirp/misc.c:59:
+^I^I(*ex_ptr)->ex_exec = g_strdup(cmdline);$

ERROR: code indent should never use tabs
#88: FILE: slirp/misc.c:60:
+^I}$

ERROR: code indent should never use tabs
#101: FILE: slirp/misc.h:12:
+^Ivoid *ex_chardev;$

total: 7 errors, 0 warnings, 100 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 5/64: slirp: remove unused EMU_RSH...
Checking PATCH 6/64: slirp: rename /extra/chardev...
ERROR: "foo * bar" should be "foo *bar"
#41: FILE: slirp/socket.h:70:
+  void * chardev;

total: 1 errors, 0 warnings, 28 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 7/64: slirp: move internal function declarations...
Checking PATCH 8/64: slirp: remove Monitor dependency, return a string for info...
Checking PATCH 9/64: slirp: fix slirp_add_exec() leaks...
ERROR: code indent should never use tabs
#24: FILE: slirp/misc.h:15:
+^Ichar *ex_exec;                  /* Command line of what to exec */$

total: 1 errors, 0 warnings, 22 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 10/64: slirp: replace the poor-man string split with g_strsplit()...
ERROR: code indent should never use tabs
#28: FILE: slirp/misc.c:91:
+^Ichar **argv;$

ERROR: code indent should never use tabs
#29: FILE: slirp/misc.c:92:
+^Iint ret;$

total: 2 errors, 0 warnings, 33 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 11/64: slirp: remove dead declarations...
Checking PATCH 12/64: slirp: add tftp tracing...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#59: 
new file mode 100644

total: 0 errors, 1 warnings, 33 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 13/64: slirp: move socket pair creation in helper function...
ERROR: code indent should never use tabs
#104: FILE: slirp/misc.c:136:
+^Iint opt, c, sp[2];$

ERROR: code indent should never use tabs
#156: FILE: slirp/misc.c:151:
+^I^Iclosesocket(sp[0]);$

ERROR: code indent should never use tabs
#157: FILE: slirp/misc.c:152:
+^I^Iclosesocket(sp[1]);$

ERROR: code indent should never use tabs
#170: FILE: slirp/misc.c:156:
+^I^Isetsid();$

ERROR: code indent should never use tabs
#171: FILE: slirp/misc.c:157:
+^I^Idup2(sp[1], 0);$

ERROR: code indent should never use tabs
#172: FILE: slirp/misc.c:158:
+^I^Idup2(sp[1], 1);$

ERROR: code indent should never use tabs
#173: FILE: slirp/misc.c:159:
+^I^Idup2(sp[1], 2);$

ERROR: code indent should never use tabs
#174: FILE: slirp/misc.c:160:
+^I^Ifor (c = getdtablesize() - 1; c >= 3; c--)$

ERROR: suspect code indent for conditional statements (16, 19)
#174: FILE: slirp/misc.c:160:
+               for (c = getdtablesize() - 1; c >= 3; c--)
+                  close(c);

ERROR: braces {} are necessary for all arms of this statement
#174: FILE: slirp/misc.c:160:
+               for (c = getdtablesize() - 1; c >= 3; c--)
[...]

ERROR: code indent should never use tabs
#175: FILE: slirp/misc.c:161:
+^I^I   close(c);$

ERROR: code indent should never use tabs
#183: FILE: slirp/misc.c:173:
+^I^Iso->s = sp[0];$

ERROR: code indent should never use tabs
#184: FILE: slirp/misc.c:174:
+^I^Iclosesocket(sp[1]);$

ERROR: code indent should never use tabs
#198: FILE: slirp/misc.c:176:
+^I^Isocket_set_fast_reuse(so->s);$

ERROR: code indent should never use tabs
#199: FILE: slirp/misc.c:177:
+^I^Iopt = 1;$

WARNING: line over 80 characters
#200: FILE: slirp/misc.c:178:
+               qemu_setsockopt(so->s, SOL_SOCKET, SO_OOBINLINE, &opt, sizeof(int));

ERROR: code indent should never use tabs
#200: FILE: slirp/misc.c:178:
+^I^Iqemu_setsockopt(so->s, SOL_SOCKET, SO_OOBINLINE, &opt, sizeof(int));$

total: 16 errors, 1 warnings, 175 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 14/64: slirp: remove unused M_TRAILINGSPACE...
Checking PATCH 15/64: slirp: use a callback structure to interface with qemu...
Checking PATCH 16/64: slirp: remove PROBE_CONN dead-code...
Checking PATCH 17/64: slirp: remove FULL_BOLT...
Checking PATCH 18/64: slirp: remove the disabled readv()/writev() code path...
Checking PATCH 19/64: slirp: remove HAVE_SYS_SIGNAL_H...
Checking PATCH 20/64: slirp: remove unused HAVE_SYS_BITYPES_H...
Checking PATCH 21/64: slirp: remove NO_UNIX_SOCKETS...
Checking PATCH 22/64: slirp: remove unused HAVE_SYS_STROPTS_H...
Checking PATCH 23/64: slirp: remove unused HAVE_ARPA_INET_H...
Checking PATCH 24/64: slirp: remove unused HAVE_SYS_WAIT_H...
Checking PATCH 25/64: slirp: remove unused HAVE_SYS_SELECT_H...
Checking PATCH 26/64: slirp: remove HAVE_SYS_IOCTL_H...
Checking PATCH 27/64: slirp: remove HAVE_SYS_FILIO_H...
WARNING: architecture specific defines should be avoided
#23: FILE: slirp/slirp.h:39:
+#ifdef __APPLE__

total: 0 errors, 1 warnings, 20 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 28/64: slirp: remove unused DECLARE_IOVEC...
Checking PATCH 29/64: slirp: remove unused HAVE_INET_ATON...
Checking PATCH 30/64: slirp: replace HOST_WORDS_BIGENDIAN with glib equivalent...
Checking PATCH 31/64: slirp: replace SIZEOF_CHAR_P with glib equivalent...
Checking PATCH 32/64: slirp: replace compile time DO_KEEPALIVE...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#54: 
deleted file mode 100644

ERROR: code indent should never use tabs
#80: FILE: slirp/tcp_input.c:484:
+^Iif (slirp_do_keepalive)$

ERROR: suspect code indent for conditional statements (8, 11)
#80: FILE: slirp/tcp_input.c:484:
+       if (slirp_do_keepalive)
           tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL;

ERROR: braces {} are necessary for all arms of this statement
#80: FILE: slirp/tcp_input.c:484:
+       if (slirp_do_keepalive)
[...]
        else
[...]

ERROR: code indent should never use tabs
#93: FILE: slirp/tcp_timer.c:265:
+^I^Iif (slirp_do_keepalive && tp->t_state <= TCPS_CLOSE_WAIT) {$

total: 4 errors, 1 warnings, 43 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 33/64: slirp: remove unused global slirp_instance...
Checking PATCH 34/64: slirp: replace error_report() with g_critical()...
Checking PATCH 35/64: slirp: improve a bit the debug macros...
ERROR: code indent should never use tabs
#70: FILE: slirp/cksum.c:127:
+^I^IDEBUG_ERROR("cksum: out of data\n");$

ERROR: code indent should never use tabs
#71: FILE: slirp/cksum.c:128:
+^I^IDEBUG_ERROR(" len = %d\n", len);$

ERROR: code indent should never use tabs
#201: FILE: slirp/ip_icmp.c:168:
+^IDEBUG_MISC("icmp_input udp_attach errno = %d-%s\n",$

ERROR: space required after that ',' (ctx:VxV)
#202: FILE: slirp/ip_icmp.c:169:
+               errno,strerror(errno));
                     ^

ERROR: code indent should never use tabs
#212: FILE: slirp/ip_icmp.c:191:
+^IDEBUG_MISC("icmp_input udp sendto tx errno = %d-%s\n",$

ERROR: space required after that ',' (ctx:VxV)
#213: FILE: slirp/ip_icmp.c:192:
+               errno,strerror(errno));
                     ^

ERROR: code indent should never use tabs
#246: FILE: slirp/mbuf.c:235:
+^IDEBUG_ERROR("dtom failed");$

ERROR: line over 90 characters
#324: FILE: slirp/socket.c:211:
+                       DEBUG_MISC(" --- soread() disconnected, nn = %d, errno = %d-%s\n", nn, errno,strerror(errno));

ERROR: code indent should never use tabs
#324: FILE: slirp/socket.c:211:
+^I^I^IDEBUG_MISC(" --- soread() disconnected, nn = %d, errno = %d-%s\n", nn, errno,strerror(errno));$

ERROR: space required after that ',' (ctx:VxV)
#324: FILE: slirp/socket.c:211:
+                       DEBUG_MISC(" --- soread() disconnected, nn = %d, errno = %d-%s\n", nn, errno,strerror(errno));
                                                                                                    ^

ERROR: code indent should never use tabs
#333: FILE: slirp/socket.c:240:
+^IDEBUG_MISC(" ... read nn = %d bytes\n", nn);$

ERROR: code indent should never use tabs
#342: FILE: slirp/socket.c:373:
+^I^I^IDEBUG_ERROR("Didn't send all data urgently XXXXX\n");$

ERROR: line over 90 characters
#351: FILE: slirp/socket.c:382:
+       DEBUG_MISC(" ---2 sent %d bytes urgent data, %d urgent bytes left\n", n, so->so_urgc);

ERROR: code indent should never use tabs
#351: FILE: slirp/socket.c:382:
+^IDEBUG_MISC(" ---2 sent %d bytes urgent data, %d urgent bytes left\n", n, so->so_urgc);$

ERROR: code indent should never use tabs
#370: FILE: slirp/socket.c:481:
+^IDEBUG_MISC(" --- sowrite disconnected, so->so_state = %x, errno = %d\n",$

ERROR: code indent should never use tabs
#381: FILE: slirp/socket.c:515:
+^I    DEBUG_MISC(" udp icmp rx errno = %d-%s\n",$

ERROR: space required after that ',' (ctx:VxV)
#382: FILE: slirp/socket.c:516:
+                   errno,strerror(errno));
                         ^

ERROR: code indent should never use tabs
#392: FILE: slirp/socket.c:567:
+^I  DEBUG_MISC(" did recvfrom %d, errno = %d-%s\n",$

ERROR: space required after that ',' (ctx:VxV)
#393: FILE: slirp/socket.c:568:
+                 m->m_len, errno,strerror(errno));
                                 ^

ERROR: code indent should never use tabs
#402: FILE: slirp/socket.c:582:
+^I      DEBUG_MISC(" rx error, tx icmp ICMP_UNREACH:%i\n", code);$

ERROR: code indent should never use tabs
#411: FILE: slirp/socket.c:594:
+^I      DEBUG_MISC(" rx error, tx icmp6 ICMP_UNREACH:%i\n", code);$

ERROR: code indent should never use tabs
#438: FILE: slirp/tcp_input.c:239:
+^IDEBUG_ARGS(" m = %p  iphlen = %2d  inso = %p\n",$

ERROR: code indent should never use tabs
#449: FILE: slirp/tcp_input.c:665:
+^I    DEBUG_MISC(" tcp fconnect errno = %d-%s\n",$

ERROR: space required after that ',' (ctx:VxV)
#450: FILE: slirp/tcp_input.c:666:
+                   errno,strerror(errno));
                         ^

ERROR: suspect code indent for conditional statements (24, 26)
#457: FILE: slirp/tcp_input.c:1034:
                        if (ti->ti_len == 0 && tiwin == tp->snd_wnd) {
+                         DEBUG_MISC(" dup ack  m = %p  so = %p\n", m, so);

ERROR: code indent should never use tabs
#460: FILE: slirp/tcp_input.c:1035:
+^I^I^I  DEBUG_MISC(" dup ack  m = %p  so = %p\n", m, so);$

ERROR: code indent should never use tabs
#469: FILE: slirp/tcp_input.c:1413:
+^IDEBUG_ARGS(" tp = %p  cnt=%i\n", tp, cnt);$

ERROR: code indent should never use tabs
#478: FILE: slirp/tcp_input.c:1613:
+^IDEBUG_MISC(" returning mss = %d\n", mss);$

ERROR: code indent should never use tabs
#491: FILE: slirp/tcp_output.c:95:
+^IDEBUG_MISC(" --- tcp_output flags = 0x%x\n", flags);$

ERROR: code indent should never use tabs
#527: FILE: slirp/udp.c:175:
+^I    DEBUG_MISC(" udp_attach errno = %d-%s\n",$

ERROR: code indent should never use tabs
#537: FILE: slirp/udp.c:212:
+^I  DEBUG_MISC("udp tx errno = %d-%s\n", errno, strerror(errno));$

total: 31 errors, 0 warnings, 445 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 36/64: slirp: add a callback to log guest errors...
Checking PATCH 37/64: slirp: remove #if notdef dead code...
Checking PATCH 38/64: slirp: remove unused sbflush()...
Checking PATCH 39/64: slirp: NULL is defined by stddef.h...
Checking PATCH 40/64: slirp: remove dead TCP_ACK_HACK code...
Checking PATCH 41/64: slirp: replace ARRAY_SIZE with G_N_ELEMENTS...
ERROR: suspect code indent for conditional statements (2, 6)
#39: FILE: slirp/tftp.c:362:
+  while (k < pktlen && nb_options < G_N_ELEMENTS(option_name)) {
       const char *key, *value;

ERROR: suspect code indent for conditional statements (2, 6)
#46: FILE: slirp/tftp.c:405:
   if (nb_options > 0) {
+      assert(nb_options <= G_N_ELEMENTS(option_name));

total: 2 errors, 0 warnings, 24 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 42/64: net: do not depend on slirp internals...
Checking PATCH 43/64: glib-compat: add g_spawn_async_with_fds() fallback...
Checking PATCH 44/64: slirp: simplify fork_exec()...
WARNING: Block comments use a leading /* on a separate line
#60: FILE: slirp/misc.c:154:
+    g_spawn_async_with_fds(NULL /* cwd */,

WARNING: Block comments use a leading /* on a separate line
#62: FILE: slirp/misc.c:156:
+                           NULL /* env */,

WARNING: Block comments use a leading /* on a separate line
#64: FILE: slirp/misc.c:158:
+                           fork_exec_child_setup, NULL /* data */,

WARNING: Block comments use a leading /* on a separate line
#65: FILE: slirp/misc.c:159:
+                           NULL /* child_pid */,

total: 0 errors, 4 warnings, 92 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 45/64: slirp: replace error_report() with g_critical()...
Checking PATCH 46/64: slirp: Enable fork_exec support on Windows...
Checking PATCH 47/64: slirp: drop <Vista compatibility...
Checking PATCH 48/64: slirp: rename exec_list...
ERROR: code indent should never use tabs
#30: FILE: slirp/misc.c:42:
+^Istruct gfwd_list *tmp_ptr;$

ERROR: code indent should never use tabs
#39: FILE: slirp/misc.c:52:
+^I*ex_ptr = g_new0(struct gfwd_list, 1);$

ERROR: code indent should never use tabs
#58: FILE: slirp/misc.h:16:
+^Istruct gfwd_list *ex_next;$

WARNING: line over 80 characters
#101: FILE: slirp/slirp.c:783:
+            for (ex_ptr = slirp->guestfwd_list; ex_ptr; ex_ptr = ex_ptr->ex_next) {

WARNING: line over 80 characters
#175: FILE: slirp/tcp_input.c:397:
+            for (ex_ptr = slirp->guestfwd_list; ex_ptr; ex_ptr = ex_ptr->ex_next) {

ERROR: code indent should never use tabs
#184: FILE: slirp/tcp_input.c:619:
+^I^Ifor (ex_ptr = slirp->guestfwd_list; ex_ptr;$

ERROR: suspect code indent for conditional statements (16, 18)
#184: FILE: slirp/tcp_input.c:619:
+               for (ex_ptr = slirp->guestfwd_list; ex_ptr;
[...]
                  if(ex_ptr->ex_fport == so->so_fport &&

total: 5 errors, 2 warnings, 152 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 49/64: slirp: use virtual time for packet expiration...
Checking PATCH 50/64: slirp: replace a fprintf with g_critical()...
Checking PATCH 51/64: slirp: replace some fprintf() with DEBUG_MISC...
Checking PATCH 52/64: slirp: replace a DEBUG block with WITH_ICMP_ERROR_MSG...
Checking PATCH 53/64: slirp: no need to make DPRINTF conditional on DEBUG...
Checking PATCH 54/64: slirp: always build with debug statements...
Checking PATCH 55/64: slirp: introduce SLIRP_DEBUG environment variable...
Checking PATCH 56/64: slirp: use %p for pointers format...
Checking PATCH 57/64: slirp: remove remaining DEBUG blocks...
Checking PATCH 58/64: slirp: replace DEBUG_ARGS with DEBUG_ARG...
ERROR: code indent should never use tabs
#147: FILE: slirp/tcp_input.c:218:
+^IDEBUG_ARG("m = %p  iphlen = %2d  inso = %p",$

ERROR: code indent should never use tabs
#157: FILE: slirp/tcp_input.c:1392:
+^IDEBUG_ARG("tp = %p  cnt=%i", tp, cnt);$

total: 2 errors, 0 warnings, 112 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 59/64: slirp: factor out guestfwd addition checks...
Checking PATCH 60/64: slirp: add clock_get_ns() callback...
Checking PATCH 61/64: build-sys: use a seperate slirp-obj-y && slirp.mo...
Checking PATCH 62/64: slirp: set G_LOG_DOMAIN...
Checking PATCH 63/64: slirp: call into g_debug() for DEBUG macros...
ERROR: code indent should never use tabs
#31: FILE: slirp/cksum.c:124:
+^I^IDEBUG_ERROR("cksum: out of data");$

ERROR: code indent should never use tabs
#32: FILE: slirp/cksum.c:125:
+^I^IDEBUG_ERROR(" len = %d", len);$

ERROR: code indent should never use tabs
#129: FILE: slirp/ip_icmp.c:172:
+^IDEBUG_MISC("icmp_input udp_attach errno = %d-%s",$

ERROR: code indent should never use tabs
#138: FILE: slirp/ip_icmp.c:195:
+^IDEBUG_MISC("icmp_input udp sendto tx errno = %d-%s",$

WARNING: line over 80 characters
#206: FILE: slirp/socket.c:211:
+                       DEBUG_MISC(" --- soread() disconnected, nn = %d, errno = %d-%s",

ERROR: code indent should never use tabs
#206: FILE: slirp/socket.c:211:
+^I^I^IDEBUG_MISC(" --- soread() disconnected, nn = %d, errno = %d-%s",$

ERROR: space required after that ',' (ctx:VxV)
#207: FILE: slirp/socket.c:212:
+                       nn, errno,strerror(errno));
                                 ^

ERROR: code indent should never use tabs
#216: FILE: slirp/socket.c:241:
+^IDEBUG_MISC(" ... read nn = %d bytes", nn);$

ERROR: code indent should never use tabs
#225: FILE: slirp/socket.c:374:
+^I^I^IDEBUG_ERROR("Didn't send all data urgently XXXXX");$

ERROR: line over 90 characters
#234: FILE: slirp/socket.c:383:
+       DEBUG_MISC(" ---2 sent %d bytes urgent data, %d urgent bytes left", n, so->so_urgc);

ERROR: code indent should never use tabs
#234: FILE: slirp/socket.c:383:
+^IDEBUG_MISC(" ---2 sent %d bytes urgent data, %d urgent bytes left", n, so->so_urgc);$

ERROR: code indent should never use tabs
#252: FILE: slirp/socket.c:482:
+^IDEBUG_MISC(" --- sowrite disconnected, so->so_state = %x, errno = %d",$

ERROR: code indent should never use tabs
#261: FILE: slirp/socket.c:516:
+^I    DEBUG_MISC(" udp icmp rx errno = %d-%s",$

ERROR: code indent should never use tabs
#270: FILE: slirp/socket.c:568:
+^I  DEBUG_MISC(" did recvfrom %d, errno = %d-%s",$

ERROR: code indent should never use tabs
#279: FILE: slirp/socket.c:583:
+^I      DEBUG_MISC(" rx error, tx icmp ICMP_UNREACH:%i", code);$

ERROR: code indent should never use tabs
#288: FILE: slirp/socket.c:595:
+^I      DEBUG_MISC(" rx error, tx icmp6 ICMP_UNREACH:%i", code);$

ERROR: code indent should never use tabs
#312: FILE: slirp/tcp_input.c:644:
+^I    DEBUG_MISC(" tcp fconnect errno = %d-%s", errno, strerror(errno));$

ERROR: suspect code indent for conditional statements (24, 26)
#319: FILE: slirp/tcp_input.c:1012:
                        if (ti->ti_len == 0 && tiwin == tp->snd_wnd) {
+                         DEBUG_MISC(" dup ack  m = %p  so = %p", m, so);

ERROR: code indent should never use tabs
#321: FILE: slirp/tcp_input.c:1013:
+^I^I^I  DEBUG_MISC(" dup ack  m = %p  so = %p", m, so);$

ERROR: code indent should never use tabs
#330: FILE: slirp/tcp_input.c:1552:
+^IDEBUG_MISC(" returning mss = %d", mss);$

ERROR: code indent should never use tabs
#343: FILE: slirp/tcp_output.c:95:
+^IDEBUG_MISC(" --- tcp_output flags = 0x%x", flags);$

ERROR: code indent should never use tabs
#370: FILE: slirp/udp.c:175:
+^I    DEBUG_MISC(" udp_attach errno = %d-%s", errno, strerror(errno));$

ERROR: code indent should never use tabs
#379: FILE: slirp/udp.c:211:
+^I  DEBUG_MISC("udp tx errno = %d-%s", errno, strerror(errno));$

total: 22 errors, 1 warnings, 310 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 64/64: slirp: Mark debugging calls as unlikely...
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20181218230442.27887-1-samuel.thibault@ens-lyon.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com