I'm also suffering from this bug, with the headers from libbluetooth1-dev (which I maintain.) /usr/include/bluetooth/rfcomm.h:#define RFCOMMGETDEVLIST _IOR('R', 210, int) means this doesn't compile: if (ioctl(ctl, RFCOMMGETDEVLIST, (void *) dl) < 0) { with an error "warning: signed and unsigned type in conditional expression". this expression, when fully pre-processed (and indented by me for some sort of readability), reads: if (ioctl(ctl, (((2U) << (((0 +8)+8)+14)) | ((('R')) << (0 +8)) | (((210)) << 0) | ( ((( (sizeof(int) == sizeof(int[1]) && sizeof(int) < (16384)) ? sizeof(int) : __invalid_size_argument_for_IOC))) << ((0 +8)+8))), (void *) dl) < 0) { the problem is that sizeof(int) is unsigned, __invalid_size_argument_for_IOC is signed. making __invalid_size_argument_for_IOC to be unsigned int makes it compile OK. -- Edd
Attachment:
signature.asc
Description: This is a digitally signed message part