qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 8cabd8: slirp: Fix build with gcc 9


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 8cabd8: slirp: Fix build with gcc 9
Date: Fri, 08 Mar 2019 04:44:01 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 8cabd8778c378802adee7d0c3be4e5b5b5be4bee
      
https://github.com/qemu/qemu/commit/8cabd8778c378802adee7d0c3be4e5b5b5be4bee
  Author: Greg Kurz <address@hidden>
  Date:   2019-03-06 (Wed, 06 Mar 2019)

  Changed paths:
    M slirp/slirp.h

  Log Message:
  -----------
  slirp: Fix build with gcc 9

Build fails with gcc 9:

  CC      slirp/ndp_table.o
slirp/ndp_table.c: In function ‘ndp_table_add’:
slirp/ndp_table.c:31:23: error: taking address of packed member of ‘struct 
ndpentry’ may result in an unaligned pointer value 
[-Werror=address-of-packed-member]
   31 |         if (in6_equal(&ndp_table->table[i].ip_addr, &ip_addr)) {
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
slirp/ndp_table.c: In function ‘ndp_table_search’:
slirp/ndp_table.c:75:23: error: taking address of packed member of ‘struct 
ndpentry’ may result in an unaligned pointer value 
[-Werror=address-of-packed-member]
   75 |         if (in6_equal(&ndp_table->table[i].ip_addr, &ip_addr)) {
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

The ndpentry structure isn't used to model on-the-wire data or anything
else that would care for the struct layout. It doesn't need to be packed
actually. Just drop SLIRP_PACKED.

Signed-off-by: Greg Kurz <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: 6c419a1e06c21c4568d5a12a9c5cafcdb00f6aa8
      
https://github.com/qemu/qemu/commit/6c419a1e06c21c4568d5a12a9c5cafcdb00f6aa8
  Author: Vic Lee <address@hidden>
  Date:   2019-03-06 (Wed, 06 Mar 2019)

  Changed paths:
    M slirp/socket.c

  Log Message:
  -----------
  slirp: check for ioctlsocket error and 0-length udp payload.

Sometimes sorecvfrom() is called from slirp.c because revents == G_IO_IN,
but there is 0 bytes available and recvfrom could be blocking indefinitely.
This is likely due to 0-length udp payload. This also adds an error
checking for ioctlsocket.

Signed-off-by: Vic Lee <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: d3222975c7d6cda9e25809dea05241188457b113
      
https://github.com/qemu/qemu/commit/d3222975c7d6cda9e25809dea05241188457b113
  Author: William Bowling <address@hidden>
  Date:   2019-03-06 (Wed, 06 Mar 2019)

  Changed paths:
    M slirp/tcp_subr.c

  Log Message:
  -----------
  slirp: check sscanf result when emulating ident

When emulating ident in tcp_emu, if the strchr checks passed but the
sscanf check failed, two uninitialized variables would be copied and
sent in the reply, so move this code inside the if(sscanf()) clause.

Signed-off-by: William Bowling <address@hidden>
Cc: address@hidden
Cc: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 1fd71067dae501f1c78618e9583c6cc72db0cfa6
      
https://github.com/qemu/qemu/commit/1fd71067dae501f1c78618e9583c6cc72db0cfa6
  Author: Samuel Thibault <address@hidden>
  Date:   2019-03-06 (Wed, 06 Mar 2019)

  Changed paths:
    M slirp/tcp_subr.c

  Log Message:
  -----------
  slirp: fix big/little endian conversion in ident protocol

Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

---
Based-on: <address@hidden>


  Commit: ffe02f5585d3fd722f9eb0ecdce6f128444c63d1
      
https://github.com/qemu/qemu/commit/ffe02f5585d3fd722f9eb0ecdce6f128444c63d1
  Author: Samuel Thibault <address@hidden>
  Date:   2019-03-06 (Wed, 06 Mar 2019)

  Changed paths:
    M net/slirp.c
    M slirp/misc.c
    M slirp/slirp.c
    M slirp/socket.c
    M slirp/tcp_input.c
    M slirp/tcp_subr.c
    M slirp/udp.c

  Log Message:
  -----------
  slirp: Mark pieces missing IPv6 support

Signed-off-by: Samuel Thibault <address@hidden>


  Commit: b92a1ff497dd2f84902b252ad3de22fcc33b60e3
      
https://github.com/qemu/qemu/commit/b92a1ff497dd2f84902b252ad3de22fcc33b60e3
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-03-07 (Thu, 07 Mar 2019)

  Changed paths:
    M slirp/Makefile.objs
    M slirp/libslirp.h
    A slirp/stream.c
    A slirp/stream.h
    A slirp/vmstate.c
    A slirp/vmstate.h

  Log Message:
  -----------
  slirp: adapt a subset of QEMU vmstate code

Add vmstate serialization code adapted from QEMU.

Keep only the bits that are required for libslirp.

Introduce a IStream/OStream interface to replace QEMU QFile
abstraction.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: d890344166449c2c4cc039f19af61600920cd697
      
https://github.com/qemu/qemu/commit/d890344166449c2c4cc039f19af61600920cd697
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-03-07 (Thu, 07 Mar 2019)

  Changed paths:
    M include/migration/qemu-file-types.h
    M migration/qemu-file.h
    M net/slirp.c
    M slirp/libslirp.h
    M slirp/slirp.c
    M slirp/state.c
    M slirp/state.h

  Log Message:
  -----------
  slirp: use libslirp migration code

slirp migration code uses QEMU vmstate so far, when building WITH_QEMU.

Introduce slirp_state_{load,save,version}() functions to move the
state saving handling to libslirp side.

So far, the bitstream compatibility should remain equal with current
QEMU, as this is effectively using the same code, with the same format
etc. When libslirp is made standalone, we will need some mechanism to
ensure bitstream compatibility regardless of the libslirp version
installed. See the FIXME note in the code.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: 5a4af0d4ee6084fdfde0125c45181fa0e6f48a17
      
https://github.com/qemu/qemu/commit/5a4af0d4ee6084fdfde0125c45181fa0e6f48a17
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-03-07 (Thu, 07 Mar 2019)

  Changed paths:
    M slirp/Makefile.objs
    M slirp/util.c
    M slirp/util.h

  Log Message:
  -----------
  slirp: use "slirp_" prefix for inet_aton() win32 implementation

To avoid conflict with QEMU inet_aton() implementation, let's use the
"slirp_" prefix. This allows to drop the WITH_QEMU, thus the source
won't make a distinction when building with QEMU or not.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: c2d63650d962612cfa1b21302782d4cd12142c74
      
https://github.com/qemu/qemu/commit/c2d63650d962612cfa1b21302782d4cd12142c74
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-03-07 (Thu, 07 Mar 2019)

  Changed paths:
    M net/slirp.c
    M slirp/Makefile.objs
    R slirp/arp_table.c
    R slirp/bootp.c
    R slirp/bootp.h
    R slirp/cksum.c
    R slirp/debug.h
    R slirp/dhcpv6.c
    R slirp/dhcpv6.h
    R slirp/dnssearch.c
    R slirp/if.c
    R slirp/if.h
    R slirp/ip.h
    R slirp/ip6.h
    R slirp/ip6_icmp.c
    R slirp/ip6_icmp.h
    R slirp/ip6_input.c
    R slirp/ip6_output.c
    R slirp/ip_icmp.c
    R slirp/ip_icmp.h
    R slirp/ip_input.c
    R slirp/ip_output.c
    R slirp/libslirp.h
    R slirp/main.h
    R slirp/mbuf.c
    R slirp/mbuf.h
    R slirp/misc.c
    R slirp/misc.h
    R slirp/ncsi-pkt.h
    R slirp/ncsi.c
    R slirp/ndp_table.c
    R slirp/qtailq.h
    R slirp/sbuf.c
    R slirp/sbuf.h
    R slirp/slirp.c
    R slirp/slirp.h
    R slirp/socket.c
    R slirp/socket.h
    A slirp/src/arp_table.c
    A slirp/src/bootp.c
    A slirp/src/bootp.h
    A slirp/src/cksum.c
    A slirp/src/debug.h
    A slirp/src/dhcpv6.c
    A slirp/src/dhcpv6.h
    A slirp/src/dnssearch.c
    A slirp/src/if.c
    A slirp/src/if.h
    A slirp/src/ip.h
    A slirp/src/ip6.h
    A slirp/src/ip6_icmp.c
    A slirp/src/ip6_icmp.h
    A slirp/src/ip6_input.c
    A slirp/src/ip6_output.c
    A slirp/src/ip_icmp.c
    A slirp/src/ip_icmp.h
    A slirp/src/ip_input.c
    A slirp/src/ip_output.c
    A slirp/src/libslirp.h
    A slirp/src/main.h
    A slirp/src/mbuf.c
    A slirp/src/mbuf.h
    A slirp/src/misc.c
    A slirp/src/misc.h
    A slirp/src/ncsi-pkt.h
    A slirp/src/ncsi.c
    A slirp/src/ndp_table.c
    A slirp/src/qtailq.h
    A slirp/src/sbuf.c
    A slirp/src/sbuf.h
    A slirp/src/slirp.c
    A slirp/src/slirp.h
    A slirp/src/socket.c
    A slirp/src/socket.h
    A slirp/src/state.c
    A slirp/src/state.h
    A slirp/src/stream.c
    A slirp/src/stream.h
    A slirp/src/tcp.h
    A slirp/src/tcp_input.c
    A slirp/src/tcp_output.c
    A slirp/src/tcp_subr.c
    A slirp/src/tcp_timer.c
    A slirp/src/tcp_timer.h
    A slirp/src/tcp_var.h
    A slirp/src/tcpip.h
    A slirp/src/tftp.c
    A slirp/src/tftp.h
    A slirp/src/udp.c
    A slirp/src/udp.h
    A slirp/src/udp6.c
    A slirp/src/util.c
    A slirp/src/util.h
    A slirp/src/vmstate.c
    A slirp/src/vmstate.h
    R slirp/state.c
    R slirp/state.h
    R slirp/stream.c
    R slirp/stream.h
    R slirp/tcp.h
    R slirp/tcp_input.c
    R slirp/tcp_output.c
    R slirp/tcp_subr.c
    R slirp/tcp_timer.c
    R slirp/tcp_timer.h
    R slirp/tcp_var.h
    R slirp/tcpip.h
    R slirp/tftp.c
    R slirp/tftp.h
    R slirp/udp.c
    R slirp/udp.h
    R slirp/udp6.c
    R slirp/util.c
    R slirp/util.h
    R slirp/vmstate.c
    R slirp/vmstate.h
    M util/main-loop.c
    M vl.c

  Log Message:
  -----------
  slirp: move sources to src/ subdirectory

Prepare for making slirp/ a standalone project.

Remove some useless includes while at it.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: 12f8beeb9f2b12b351ea096a296da543adc6954d
      
https://github.com/qemu/qemu/commit/12f8beeb9f2b12b351ea096a296da543adc6954d
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-03-07 (Thu, 07 Mar 2019)

  Changed paths:
    A slirp/Makefile

  Log Message:
  -----------
  slirp: add a standalone Makefile

Add a simple Makefile to build libslirp.a, a static library version of
libslirp, to be used by QEMU during a transition period, until a
shared library is available.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: 675b9b536871aebcce3372923244d2b27b6e185f
      
https://github.com/qemu/qemu/commit/675b9b536871aebcce3372923244d2b27b6e185f
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-03-07 (Thu, 07 Mar 2019)

  Changed paths:
    M Makefile
    M Makefile.objs
    M Makefile.target
    M configure
    M net/Makefile.objs
    M net/slirp.c
    M util/Makefile.objs

  Log Message:
  -----------
  build-sys: link with slirp as an external project

Use the "system" libslirp if its present or requested.

Else build with a static libslirp.a if slirp/ is checked
out ("internal") or a submodule ("git").

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: be1911ff7504be95d5cf2c18bc99ce07246a91e5
      
https://github.com/qemu/qemu/commit/be1911ff7504be95d5cf2c18bc99ce07246a91e5
  Author: Marc-André Lureau <address@hidden>
  Date:   2019-03-07 (Thu, 07 Mar 2019)

  Changed paths:
    R slirp/Makefile.objs

  Log Message:
  -----------
  slirp: remove QEMU Makefile.objs

QEMU no longer includes it, and treats slirp/ as a separate project.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: 6bbbe16a02ecf631fffb4a339e1c662d60a1e529
      
https://github.com/qemu/qemu/commit/6bbbe16a02ecf631fffb4a339e1c662d60a1e529
  Author: Peter Maydell <address@hidden>
  Date:   2019-03-08 (Fri, 08 Mar 2019)

  Changed paths:
    M Makefile
    M Makefile.objs
    M Makefile.target
    M configure
    M include/migration/qemu-file-types.h
    M migration/qemu-file.h
    M net/Makefile.objs
    M net/slirp.c
    A slirp/Makefile
    R slirp/Makefile.objs
    R slirp/arp_table.c
    R slirp/bootp.c
    R slirp/bootp.h
    R slirp/cksum.c
    R slirp/debug.h
    R slirp/dhcpv6.c
    R slirp/dhcpv6.h
    R slirp/dnssearch.c
    R slirp/if.c
    R slirp/if.h
    R slirp/ip.h
    R slirp/ip6.h
    R slirp/ip6_icmp.c
    R slirp/ip6_icmp.h
    R slirp/ip6_input.c
    R slirp/ip6_output.c
    R slirp/ip_icmp.c
    R slirp/ip_icmp.h
    R slirp/ip_input.c
    R slirp/ip_output.c
    R slirp/libslirp.h
    R slirp/main.h
    R slirp/mbuf.c
    R slirp/mbuf.h
    R slirp/misc.c
    R slirp/misc.h
    R slirp/ncsi-pkt.h
    R slirp/ncsi.c
    R slirp/ndp_table.c
    R slirp/qtailq.h
    R slirp/sbuf.c
    R slirp/sbuf.h
    R slirp/slirp.c
    R slirp/slirp.h
    R slirp/socket.c
    R slirp/socket.h
    A slirp/src/arp_table.c
    A slirp/src/bootp.c
    A slirp/src/bootp.h
    A slirp/src/cksum.c
    A slirp/src/debug.h
    A slirp/src/dhcpv6.c
    A slirp/src/dhcpv6.h
    A slirp/src/dnssearch.c
    A slirp/src/if.c
    A slirp/src/if.h
    A slirp/src/ip.h
    A slirp/src/ip6.h
    A slirp/src/ip6_icmp.c
    A slirp/src/ip6_icmp.h
    A slirp/src/ip6_input.c
    A slirp/src/ip6_output.c
    A slirp/src/ip_icmp.c
    A slirp/src/ip_icmp.h
    A slirp/src/ip_input.c
    A slirp/src/ip_output.c
    A slirp/src/libslirp.h
    A slirp/src/main.h
    A slirp/src/mbuf.c
    A slirp/src/mbuf.h
    A slirp/src/misc.c
    A slirp/src/misc.h
    A slirp/src/ncsi-pkt.h
    A slirp/src/ncsi.c
    A slirp/src/ndp_table.c
    A slirp/src/qtailq.h
    A slirp/src/sbuf.c
    A slirp/src/sbuf.h
    A slirp/src/slirp.c
    A slirp/src/slirp.h
    A slirp/src/socket.c
    A slirp/src/socket.h
    A slirp/src/state.c
    A slirp/src/state.h
    A slirp/src/stream.c
    A slirp/src/stream.h
    A slirp/src/tcp.h
    A slirp/src/tcp_input.c
    A slirp/src/tcp_output.c
    A slirp/src/tcp_subr.c
    A slirp/src/tcp_timer.c
    A slirp/src/tcp_timer.h
    A slirp/src/tcp_var.h
    A slirp/src/tcpip.h
    A slirp/src/tftp.c
    A slirp/src/tftp.h
    A slirp/src/udp.c
    A slirp/src/udp.h
    A slirp/src/udp6.c
    A slirp/src/util.c
    A slirp/src/util.h
    A slirp/src/vmstate.c
    A slirp/src/vmstate.h
    R slirp/state.c
    R slirp/state.h
    R slirp/tcp.h
    R slirp/tcp_input.c
    R slirp/tcp_output.c
    R slirp/tcp_subr.c
    R slirp/tcp_timer.c
    R slirp/tcp_timer.h
    R slirp/tcp_var.h
    R slirp/tcpip.h
    R slirp/tftp.c
    R slirp/tftp.h
    R slirp/udp.c
    R slirp/udp.h
    R slirp/udp6.c
    R slirp/util.c
    R slirp/util.h
    M util/Makefile.objs
    M util/main-loop.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into 
staging

Slirp updates

Greg Kurz (1):
  slirp: Fix build with gcc 9

Marc-André Lureau (7):
  slirp: adapt a subset of QEMU vmstate code
  slirp: use libslirp migration code
  slirp: use "slirp_" prefix for inet_aton() win32 implementation
  slirp: move sources to src/ subdirectory
  slirp: add a standalone Makefile
  build-sys: link with slirp as an external project
  slirp: remove QEMU Makefile.objs

Samuel Thibault (2):
  slirp: fix big/little endian conversion in ident protocol
  slirp: Mark pieces missing IPv6 support

Vic Lee (1):
  slirp: check for ioctlsocket error and 0-length udp payload.

William Bowling (1):
  slirp: check sscanf result when emulating ident

# gpg: Signature made Thu 07 Mar 2019 11:51:20 GMT
# gpg:                using RSA key E61DBB15D4172BDEC97E92D9DB550E89F0FA54F3
# gpg: Good signature from "Samuel Thibault <address@hidden>" [unknown]
# gpg:                 aka "Samuel Thibault <address@hidden>" [marginal]
# gpg:                 aka "Samuel Thibault <address@hidden>" [unknown]
# gpg:                 aka "Samuel Thibault <address@hidden>" [marginal]
# gpg:                 aka "Samuel Thibault <address@hidden>" [marginal]
# gpg:                 aka "Samuel Thibault <address@hidden>" [marginal]
# gpg:                 aka "Samuel Thibault <address@hidden>" [unknown]
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 900C B024 B679 31D4 0F82  304B D017 8C76 7D06 9EE6
#      Subkey fingerprint: E61D BB15 D417 2BDE C97E  92D9 DB55 0E89 F0FA 54F3

* remotes/thibault/tags/samuel-thibault:
  slirp: remove QEMU Makefile.objs
  build-sys: link with slirp as an external project
  slirp: add a standalone Makefile
  slirp: move sources to src/ subdirectory
  slirp: use "slirp_" prefix for inet_aton() win32 implementation
  slirp: use libslirp migration code
  slirp: adapt a subset of QEMU vmstate code
  slirp: Mark pieces missing IPv6 support
  slirp: fix big/little endian conversion in ident protocol
  slirp: check sscanf result when emulating ident
  slirp: check for ioctlsocket error and 0-length udp payload.
  slirp: Fix build with gcc 9

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/e56d931a9dde...6bbbe16a02ec



reply via email to

[Prev in Thread] Current Thread [Next in Thread]