Bug#203303: How can this be fixed?
So, the problem is that
kaudiocreator/cdconfigimp.cpp includes
linux/cdrom.h
OK, let's try creating an *entirely userspace* linux/cdrom.h.
Oops, can't do that:
struct request_sense {
#if defined(__BIG_ENDIAN_BITFIELD)
__u8 valid : 1;
__u8 error_code : 7;
#elif defined(__LITTLE_ENDIAN_BITFIELD)
__u8 error_code : 7;
__u8 valid : 1;
#endif
glibc does not define an equivalent symbol, afaict. bits/endian.h defines
__BYTE_ORDER but says nothing about bitfields. I can't find a machine
which has them different, but I doubt you'll receive sympathy from
linux-kernel if you want to replace them.
Seems to me a good start would be to add __BIG_ENDIAN_BITFIELD or
__LITTLE_ENDIAN_BITFIELD defines to <bits/endian.h> or even add to
<endian.h>:
#if !defined(__BIG_ENDIAN_BITFIELD) && !defined(__LITTLE_ENDIAN_BITFIELD)
# if __BYTE_ORDER == __LITTLE_ENDIAN
# define __LITTLE_ENDIAN_BITFIELD
# elif __BYTE_ORDER == __BIG_ENDIAN
# define __BIG_ENDIAN_BITFIELD
# endif
#endif
Then we have to change <linux/cdrom.h>, but that'll be easier.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
Reply to: