1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
hypervisor: 0.839
graphic: 0.812
vnc: 0.806
ppc: 0.797
VMM: 0.788
KVM: 0.773
peripherals: 0.767
virtual: 0.764
i386: 0.762
TCG: 0.761
register: 0.756
semantic: 0.720
performance: 0.707
architecture: 0.699
debug: 0.692
arm: 0.689
permissions: 0.683
assembly: 0.667
device: 0.666
x86: 0.658
boot: 0.639
PID: 0.626
risc-v: 0.618
user-level: 0.616
kernel: 0.616
socket: 0.580
files: 0.540
network: 0.539
mistranslation: 0.520
SLIRP code regression fails to build on OpenBSD
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')
Patch suggested here: http://patchwork.ozlabs.org/patch/659132/
Fix has been included in QEMU v2.7.0:
http://git.qemu.org/?p=qemu.git;a=commitdiff;h=1f8b56e7cebc71d80a
|