Yeoh Chun Yeow wrote: > Hi, Jan > > I have compiled using CodeSourcery compiler and no compilation errors.
Then could you provide me the changes you applied in order to make RTcfg working in form of a patch? I still don't understand the problem. But the best would be if you could abstract the issue from the RTcfg code - if you have the time to work this out. Jan > > Regards, > Chun Yeow > > On 10/13/07, Jan Kiszka <[EMAIL PROTECTED]> wrote: >> Hi Chun Yeow, >> >> I just tried to reproduce your issue with RTcfg. As I do not have a >> target to test yet, I tried a synthetic test first, see below. What >> output does compiling that code with your compiler? I tried both with >> some TimeSys toolchain and latest from CodeSourcery. The former fails on >> Gilles' pattern, the latter passes all tests without complaints. >> >> Jan >> >> PS: Will now try to integrate your AT91 driver _really_ soon :) - once >> I have a full build environment (kernel, Xenomai, RTnet) running. >> >> -- >> >> typedef unsigned char u8; >> typedef unsigned short u16; >> >> #define __BIG_ENDIAN_BITFIELD >> >> struct rtcfg_frm_head { >> #if defined(__LITTLE_ENDIAN_BITFIELD) >> u8 id:5, >> version:3; >> #elif defined(__BIG_ENDIAN_BITFIELD) >> u8 version:3, >> id:5; >> #else >> #error unsupported byte order >> #endif >> } __attribute__((packed)); >> >> struct rtcfg_frm_announce { >> struct rtcfg_frm_head head; >> u8 addr_type; >> u8 addr[0]; >> u8 flags; >> u8 burstrate; >> } __attribute__((packed)); >> >> struct rtcfg_frm_announce2 { >> struct rtcfg_frm_head head; >> u8 addr_type; >> u8 flags; >> u8 burstrate; >> } __attribute__((packed)); >> >> struct rtcfg_frm_stage_1_cfg { >> struct rtcfg_frm_head head; >> u8 addr_type; >> u8 client_addr[0]; >> u8 server_addr[0]; >> u8 burstrate; >> u16 cfg_len; >> u8 cfg_data[0]; >> } __attribute__((packed)); >> >> struct rtcfg_frm_stage_1_cfg2 { >> struct rtcfg_frm_head head; >> u8 addr_type; >> u8 burstrate; >> u16 cfg_len; >> } __attribute__((packed)); >> >> struct foo { >> struct a { >> char b; >> } /*__attribute__((packed))*/ c; >> char d; >> short e; >> } __attribute__((packed)); >> >> struct bar { >> char a; >> } __attribute__((packed)); >> >> struct qux { >> struct bar b; >> char c; >> short d; >> } __attribute__((packed)); >> >> int main() >> { >> char c[1 - 2 *(sizeof(struct rtcfg_frm_announce) - sizeof(struct >> rtcfg_frm_announce2))]; >> char d[1 - 2 *(sizeof(struct rtcfg_frm_stage_1_cfg) - >> sizeof(struct rtcfg_frm_stage_1_cfg2))]; >> char e[1 - 2 *(sizeof(struct foo) - sizeof(struct qux))]; >> >> c[0] = 0; >> d[0] = 0; >> e[0] = 0; >> >> return 0; >> } >> >> >
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________ RTnet-users mailing list RTnet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rtnet-users