On Sun, Mar 4, 2012 at 8:27 PM, Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote: > Hi Patrick, > >> The compiler error is: >> /usr/include/bluetooth/bluetooth.h::131:9: error: invalid conversion from 'void*' to 'bt_get_le64(void*)::<anonymous struct>*' >> ... >> >> The reason is that C++, in contrast to C, does not allow conversion of >> void * to anything, and this code gets compiled as C++ when the app is >> written in C++. The macro with the assignment itself is older, but only >> recent Bluez starts to use it in inline functions, thus triggering the >> problem. >> >> This patch keeps the "struct __attribute__((packed))" magic and merely >> changes the typecast so that it works in C and C++. Like the existing >> macro this patch relies on support for typeof. > > so I am applying this patch now, but I still have no idea what kind of > stupid C++ compiler you are using. The section of this include is > clearly marked as C code: > > #ifdef __cplusplus > extern "C" { > #endif This only tells the compiler that this part has C linkage and not C++ Lucas De Marchi -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html