>-----Original Message----- >From: Patrick Ohly [mailto:patrick.ohly@xxxxxxxxx] >Sent: Monday, January 16, 2012 4:26 PM >To: linux-bluetooth@xxxxxxxxxxxxxxx >Cc: Milan Crha; Deng, Ying An; Hofemeier, Ulf; Wang, Ning W >Subject: bluez 4.97: build failure when used in C++ apps > >Hello! > >Bluez 4.97 has entered some distros recently (Fedora Core, MeeGo 1.2 update), >which broke compilation of the C++ code in SyncEvolution using >/usr/lib/bluetooth.h. > >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. > >Attached is a proposed solution. Note that I have only verified that it now >compiles in C and C++, I have not actually tested the resulting Bluez, because >compilation fails for me on Debian Testing for another reason (libcheck.a linked >into shared object, doesn't work because not relocatable). > Verified in Bluez, and it compiles successfully. Thanks. >-- >Best Regards, Patrick Ohly > >The content of this message is my personal opinion only and although I am an >employee of Intel, the statements I make here in no way represent Intel's >position on the issue, nor am I authorized to speak on behalf of Intel on this >matter. ��.n��������+%������w��{.n�����{����^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�