This is the mail archive of the cygwin-patches@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Make ip.h and tcp.h work under -fnative-struct or -fms-bitfields


Oops, what kind of problem can occur? I did not think of that. But I suppose u_char is symmetric with other definitions, and it always works for me under GCC or MSVC (while __attribute__((packed)) works only for GCC).

Best regards,

Wu Yongwei

--- Original Message from Danny Smith ---

--- Wu Yongwei <adah@netstd.com> wrote:
> These header files use "u_int xxx:4, yyy:4", which in the MS convetion
> will generate 4-byte instead of 1-byte bit fields.
>
> ChangeLog:
>
> 2002-10-28 Wu Yongwei <adah@netstd.com>
>
> * ip.h (struct ip): Use u_char to indicate bitfields to make it
> work with -fnative-struct/-fms-bitfields.
> (struct ip_timestamp): Ditto.
> * tcp.h (struct tcphdr): Ditto.


Changing types like that can cause problems.
Wouldn't it be better to just use __attribute__((packed)) to pack the fields?
Danny



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]