dnsd: fix unaligned access problem
No binary (build failed)
—
(log yok)
| @@ -44,10 +44,15 @@ struct dns_head { | |
| uint16_t nauth; | |
| uint16_t nadd; | |
| }; | |
| + | /* Structure used to access type and class fields. |
| + | * They are totally unaligned, but gcc 4.3.4 thinks that pointer of type uint16_t* |
| + | * is 16-bit aligned and replaces 16-bit memcpy (in move_from_unaligned16 macro) |
| + | * with aligned halfword access on arm920t! |
| + | * Oh well. Slapping PACKED everywhere seems to help: */ |
| struct type_and_class { | |
| - | uint16_t type; |
| - | uint16_t class; |
| - | }; |
| + | uint16_t type PACKED; |
| + | uint16_t class PACKED; |
| + | } PACKED; |
| /* element of known name, ip address and reversed ip address */ | |
| struct dns_entry { | |
| struct dns_entry *next; | |