SLIRP code regression fails to build on OpenBSD

Bug #1613133 reported by Brad Smith on 2016-08-15
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Undecided
Unassigned

Bug Description

The SLIRP code has regressed between 2.6 and 2.7 and now fails to build on OpenBSD.

cc -I/home/ports/pobj/qemu-2.7.0-rc2/qemu-2.7.0-rc2/tcg -I/home/ports/pobj/qemu-2.7.0-rc2/qemu-2.7.0-rc2/tcg/i386 -I. -I/home/ports/pobj/qemu-2.7.0-rc2/qemu-2.7.0-rc2 -I/home/ports/pobj/
qemu-2.7.0-rc2/qemu-2.7.0-rc2/include -Islirp -Islirp -I/usr/X11R6/include/pixman-1 -DHAS_LIBSSH2_SFTP_FSYNC -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -W
strict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -I/usr/local/include -I/usr/X11R6/include -Wno-redundant-decls -D
TIME_MAX=LLONG_MAX -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style
-definition -Wtype-limits -fstack-protector-strong -I/usr/local/include -I/usr/local/include/p11-kit-1 -I/usr/include -I/usr/local/include -I/usr/local/include/libpng16 -I/usr/local/inc
lude/libusb-1.0 -I/home/ports/pobj/qemu-2.7.0-rc2/qemu-2.7.0-rc2/tests -MMD -MP -MT slirp/slirp.o -MF slirp/slirp.d -pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/inclu
de -I/usr/local/include -O2 -pipe -c -o slirp/slirp.o slirp/slirp.c
In file included from /usr/include/net/if.h:454:0,
                 from slirp/slirp.c:34:
/usr/include/net/if_arp.h:47:8: error: redefinition of 'struct arphdr'
 struct arphdr {
        ^
In file included from slirp/slirp.c:29:0:
slirp/slirp.h:108:8: note: originally defined here
 struct arphdr {
        ^
slirp/slirp.c: In function 'arp_input':
slirp/slirp.c:790:15: error: 'struct arphdr' has no member named 'ar_tip'
         if (ah->ar_tip == ah->ar_sip) {
               ^
slirp/slirp.c:790:29: error: 'struct arphdr' has no member named 'ar_sip'
         if (ah->ar_tip == ah->ar_sip) {
                             ^
slirp/slirp.c:792:36: error: 'struct arphdr' has no member named 'ar_sip'
             arp_table_add(slirp, ah->ar_sip, ah->ar_sha);
                                    ^
slirp/slirp.c:792:48: error: 'struct arphdr' has no member named 'ar_sha'
             arp_table_add(slirp, ah->ar_sip, ah->ar_sha);

slirp/slirp.c:796:16: error: 'struct arphdr' has no member named 'ar_tip'
         if ((ah->ar_tip & slirp->vnetwork_mask.s_addr) ==
                ^
slirp/slirp.c:798:19: error: 'struct arphdr' has no member named 'ar_tip'
             if (ah->ar_tip == slirp->vnameserver_addr.s_addr ||
                   ^
slirp/slirp.c:799:19: error: 'struct arphdr' has no member named 'ar_tip'
                 ah->ar_tip == slirp->vhost_addr.s_addr)
                   ^
slirp/slirp.c:802:49: error: 'struct arphdr' has no member named 'ar_tip'
                 if (ex_ptr->ex_addr.s_addr == ah->ar_tip)
                                                 ^
slirp/slirp.c:809:36: error: 'struct arphdr' has no member named 'ar_sip'
             arp_table_add(slirp, ah->ar_sip, ah->ar_sha);
                                    ^
slirp/slirp.c:809:48: error: 'struct arphdr' has no member named 'ar_sha'
             arp_table_add(slirp, ah->ar_sip, ah->ar_sha);
                                                ^
slirp/slirp.c:814:42: error: 'struct arphdr' has no member named 'ar_tip'
             memcpy(&reh->h_source[2], &ah->ar_tip, 4);
                                          ^
slirp/slirp.c:822:23: error: 'struct arphdr' has no member named 'ar_sha'
             memcpy(rah->ar_sha, reh->h_source, ETH_ALEN);
                       ^
slirp/slirp.c:823:16: error: 'struct arphdr' has no member named 'ar_sip'
             rah->ar_sip = ah->ar_tip;
                ^
slirp/slirp.c:823:29: error: 'struct arphdr' has no member named 'ar_tip'
             rah->ar_sip = ah->ar_tip;
                             ^
slirp/slirp.c:824:23: error: 'struct arphdr' has no member named 'ar_tha'
             memcpy(rah->ar_tha, ah->ar_sha, ETH_ALEN);

slirp/slirp.c:824:35: error: 'struct arphdr' has no member named 'ar_sha'
             memcpy(rah->ar_tha, ah->ar_sha, ETH_ALEN);
                                   ^
slirp/slirp.c:825:16: error: 'struct arphdr' has no member named 'ar_tip'
             rah->ar_tip = ah->ar_sip;
                ^
slirp/slirp.c:825:29: error: 'struct arphdr' has no member named 'ar_sip'
             rah->ar_tip = ah->ar_sip;
                             ^
slirp/slirp.c:830:32: error: 'struct arphdr' has no member named 'ar_sip'
         arp_table_add(slirp, ah->ar_sip, ah->ar_sha);
                                ^
slirp/slirp.c:830:44: error: 'struct arphdr' has no member named 'ar_sha'
         arp_table_add(slirp, ah->ar_sip, ah->ar_sha);
                                            ^
slirp/slirp.c: In function 'if_encap4':
slirp/slirp.c:910:23: error: 'struct arphdr' has no member named 'ar_sha'
             memcpy(rah->ar_sha, special_ethaddr, ETH_ALEN - 4);
                       ^
slirp/slirp.c:911:24: error: 'struct arphdr' has no member named 'ar_sha'
             memcpy(&rah->ar_sha[2], &slirp->vhost_addr, 4);
                        ^
slirp/slirp.c:914:16: error: 'struct arphdr' has no member named 'ar_sip'
             rah->ar_sip = slirp->vhost_addr.s_addr;
                ^
slirp/slirp.c:917:23: error: 'struct arphdr' has no member named 'ar_tha'
             memset(rah->ar_tha, 0, ETH_ALEN);
                       ^
slirp/slirp.c:920:16: error: 'struct arphdr' has no member named 'ar_tip'
             rah->ar_tip = iph->ip_dst.s_addr;
                ^
gmake: *** [/home/ports/pobj/qemu-2.7.0-rc2/qemu-2.7.0-rc2/rules.mak:59: slirp/slirp.o] Error 1
*** Error 2 in . (/home/ports/infrastructure/mk/bsd.port.mk:2674 '/home/ports/pobj/qemu-2.7.0-rc2/.build_done')
*** Error 1 in /home/ports/emulators/qemu (/home/ports/infrastructure/mk/bsd.port.mk:2396 'all')

Thomas Huth (th-huth) wrote :
Thomas Huth (th-huth) on 2016-08-16
Changed in qemu:
status: New → Fix Committed
Thomas Huth (th-huth) wrote :
Changed in qemu:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers