[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] 0.15.0-rc2 (any version past 0.14.1) having issues with
From: |
Jan Kiszka |
Subject: |
Re: [Qemu-devel] 0.15.0-rc2 (any version past 0.14.1) having issues with SLIRP on Windows XP host |
Date: |
Fri, 05 Aug 2011 23:43:35 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
On 2011-08-05 22:46, Blue Swirl wrote:
> On Fri, Aug 5, 2011 at 8:09 PM, Kenneth Salerno
> <address@hidden> wrote:
>> Hi,
>>
>> I'm not sure if any defaults (build or runtime) have changed since 0.14.1,
>> but I can no longer get the following to work anymore for QEMU versions
>> 0.15.0-rc2 or recent development builds:
>>
>> -device e1000,netdev=mynet0 -netdev type=user,id=mynet0 ...
>>
>> Works great in 0.14.1 however.
>>
>> From the QEMU console, "info networking" shows the NIC e1000 and the VLAN
>> correctly setup, the guest (RHEL 6.1 x86_64) has its NIC recognized and
>> networking setup, just can't seem to communicate with the gateway
>> (10.0.2.2). The only difference I see in the console is cosmetic
>> (restricted=off rather than restricted=n).
>>
>> Host OS: Windows XP
>> Build env: i686-pc-mingw32-gcc 4.5.2, binutils 2.21.53.20110731 i386pe
>> Runtime env: Cygwin 1.7.9 2011-03-29, SDL 1.2.14, mingw32-glib 2.28.1-1,
>> mingw32-gettext 0.18.1-2
>> Guest OS: RHEL 6.1
>>
>> Is it just me?
>
> No, this is fallout from glib use:
> http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg00134.html
>
> The fix is to rewrite structures without using GCC bit fields.
Does this help?
diff --git a/slirp/ip.h b/slirp/ip.h
index 48ea38e..72dbe9a 100644
--- a/slirp/ip.h
+++ b/slirp/ip.h
@@ -74,10 +74,10 @@ typedef uint32_t n_long; /* long as
received from the net */
*/
struct ip {
#ifdef HOST_WORDS_BIGENDIAN
- u_int ip_v:4, /* version */
+ uint8_t ip_v:4, /* version */
ip_hl:4; /* header length */
#else
- u_int ip_hl:4, /* header length */
+ uint8_t ip_hl:4, /* header length */
ip_v:4; /* version */
#endif
uint8_t ip_tos; /* type of service */
@@ -140,10 +140,10 @@ struct ip_timestamp {
uint8_t ipt_len; /* size of structure (variable) */
uint8_t ipt_ptr; /* index of current entry */
#ifdef HOST_WORDS_BIGENDIAN
- u_int ipt_oflw:4, /* overflow counter */
+ uint8_t ipt_oflw:4, /* overflow counter */
ipt_flg:4; /* flags, see below */
#else
- u_int ipt_flg:4, /* flags, see below */
+ uint8_t ipt_flg:4, /* flags, see below */
ipt_oflw:4; /* overflow counter */
#endif
union ipt_timestamp {
diff --git a/slirp/tcp.h b/slirp/tcp.h
index 9d06836..b3817cb 100644
--- a/slirp/tcp.h
+++ b/slirp/tcp.h
@@ -51,10 +51,10 @@ struct tcphdr {
tcp_seq th_seq; /* sequence number */
tcp_seq th_ack; /* acknowledgement number */
#ifdef HOST_WORDS_BIGENDIAN
- u_int th_off:4, /* data offset */
+ uint8_t th_off:4, /* data offset */
th_x2:4; /* (unused) */
#else
- u_int th_x2:4, /* (unused) */
+ uint8_t th_x2:4, /* (unused) */
th_off:4; /* data offset */
#endif
uint8_t th_flags;
Jan
signature.asc
Description: OpenPGP digital signature