Khanh Tran wrote:
I've been trying to compile MythTV 0.18.1 on SuSE 9.2, Are you sure that is 9.2 and not 9.3? however I keep getting the following errors. Anyone know what to do?
mythcdrom-linux.cpp In file included from /usr/include/asm/byteorder.h:59, from /usr/include/linux/cdrom.h:14, from mythcdrom-linux.cpp:3: /usr/include/linux/byteorder/little_endian.h:43: error: syntax error before `(' token /usr/include/linux/byteorder/little_endian.h:47: error: syntax error before `*' token /usr/include/linux/byteorder/little_endian.h: In function `__u64 __le64_to_cpup(...)': /usr/include/linux/byteorder/little_endian.h:49: error: `p' undeclared (first use this function)
This looks a lot like the bug I was working to figure out to get kscd to get compiled in 9.3 with cdda support. The kscd author told me it was a glibc bug. Assuming it is 9.3, the problem is [Disclaimer: I am not a programmer, and my code reading and terminology is therefore highly suspect] there is a reference to cdrom.h in mythcdrom-linux.cpp, which references byteorder, which references little_endian.h, which is defined in types.h as #if defined(__GNUC__) && !defined(__STRICT_ANSI__) *typedef* __u64 __bitwise __le64; *typedef* __u64 __bitwise __be64; #endif If cdrom.h is defined with __STRICT_ANSI__, it breaks the definition and causes the little_endian error. I unfortunately don't know which has a bug, what it is or should be. You could search the archives and take a look at the patch I used to get this to work with kscd. Maybe it will give you an idea of a fix? /workaround? -- Joe Morris New Tribes Mission Email Address: Joe_Morris@ntm.org Registered Linux user 231871