lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] Problem With dns.c Using 32-Bit Compilers


From: Marek Matej
Subject: Re: [lwip-users] Problem With dns.c Using 32-Bit Compilers
Date: Wed, 27 Aug 2008 19:17:25 +0200

This is mentioned structure:
struct dns_answer {
  /* DNS answer record starts with either a domain name or a pointer
     to a name already present somewhere in the packet. */
  u16_t type;
  u16_t class;
  u32_t ttl;
  u16_t len;
} PACK_STRUCT_STRUCT;

and I think situation could be desribed like this:

assume we have variable
struct dns_answer dnsa;
while allocating variable "dnsa" 32bit compiller will probably use
starting address aligned to 4bytes, and is unable to effectively use
remaining 2bytes for another variable to allocate. This result to
alocating 12bytes instead of 10bytes.

Marek

2008/8/27 Nick Thomas <address@hidden>:
>
>
> -----Original Message-----
> From: address@hidden
> [mailto:address@hidden Behalf
> Of Jonathan Larmour
> Sent: 27 August 2008 17:24
> To: Mailing list for lwIP users
> Subject: Re: [lwip-users] Problem With dns.c Using 32-Bit Compilers
>
>
> Nick Thomas wrote:
>> I have the same problem as another user on this mailing list.
>> Again, is to do with the size of the structure dns_answers in dns.c .
>>
>> sizeof(struct dns_answers) reports 12. But it really needs to be 10 to
> work.
>>
>> I am using an ST5119 chip, and there doesn't seem to be much control over
>> the structure padding/alignment.
>
> Then this may not be the only problem you have. You need to look at your
> compiler documentation (you didn't say which compiler it was) and see what
> it requires for implementing things like packing and alignment. Most do.
> GCC uses __attribute__ things, but most other compilers use #pragma so it's
> worth looking for that.
>
> Hi, I am using st20cc.
> The compiler documentation details -falignN on the command line. I am
> currently using -falign1 . The documentation says that this can be used to
> ensure alignment to 1 byte.
> However, it doesn't explain the extra padding at the end of the struct!
>
>
> Regards
>
> Nick
>
> Jifl
> --
> eCosCentric Limited      http://www.eCosCentric.com/     The eCos experts
> Barnwell House, Barnwell Drive, Cambridge, UK.       Tel: +44 1223 245571
> Registered in England and Wales: Reg No 4422071.
> ------["Si fractum non sit, noli id reficere"]------       Opinions==mine
>
>
> _______________________________________________
> lwip-users mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/lwip-users
>
> No virus found in this incoming message.
> Checked by AVG - http://www.avg.com
> Version: 8.0.138 / Virus Database: 270.6.9/1636 - Release Date: 8/26/2008
> 7:09 PM
>
>
>
>
>
> _______________________________________________
> lwip-users mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/lwip-users
>




reply via email to

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