Luigi 'Comio' Mantellini wrote: > Hi ML, > > I'm working on a mips target and I used qemu_mips target to simulate my > target > (that I hope to have in the next week...) > > Following my activities I noticed that IP_t structure is no defined with > attribute "packed". I noticed this issue because using a self-made toolchain > (gcc4.2.4+binutils2.8+uclibc0.9.30) the compiler has aligned all bytes to > 32bit boundary. This is not ok, because the packets IP_t can be non aligned > (see the /net/net.c PingSend function, for an example). > > Why is your compiler aligning all bytes to 32-bit boundary? Seems like an awful waste of space. This struct should pack itself nicely, and does on the small sample of toolchains I've tried (gcc 4.3.2 x86_64 and gcc 4.0.0 ppc_4xx). > The dirty solution is to define the structure with the > __attribute__((__packed__))... but, from my point of view, a better packet > forging mechanism should be implemented into the net.c stack. > > I attached a trivial patch that solved the issue on my target. > > Any comments is welcome. > > best regards, > > luigi > > I'd focus on fixing your toolchain. Your problem will not be confined to protocol headers. > > ------------------------------------------------------------------------ > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot regards, Ben
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot