On 19/01/14 02:10, James Hogan wrote: > > It appears that the following gcc patch adds support for #pragma pack: > http://gcc.gnu.org/ml/gcc-patches/2006-10/msg01115.html > > I gave it a quick spin on metag gcc (which is unfortunately stuck on an old > version) and it seems to fix my simple test case so that #pragma pack(2) > becomes equivalent to __packed __aligned(2) (for sizeof and __alignof__). > Then I personally think that it is better to fix metag gcc instead of changing the kernel. Actually there are many different spots where "#pragma pack" is used. batman-adv is just the only one having compile time checks for structure sizes. > > However, the __packed and __aligned are linux specific macros to abstract > compiler details, whereas #pragma pack appears to be a compiler-specific WIN32 > style equivalent to GCC's __attribute__((packed)) and > __attribute__((aligned(2))) (these are what __packed and __aligned use in > compiler-gcc.h). > > Therefore I believe using the Linux abstractions is still more correct here. If you really think so, I'd suggest to grep in the kernel and catch all the other occurrences of "#pragma pack" and change them all (assuming that using __attribute__((aligned(2))) is the way to go). Cheers, -- Antonio Quartulli
Attachment:
signature.asc
Description: OpenPGP digital signature