As of bluez 4.98 applications that include /usr/include/bluetooth/bluetooth.h fail to build in c++. error: invalid conversion from 'void*' to 'bt_get_le64(void*)::<anonymous struct>*' Other distros are using the following patch to enable them to build and work again. https://launchpadlibrarian.net/91997861/fix_bluez.patch Reproducible: Always
Well, I was waiting for upstream to apply it, but I don't understand what they are waiting for :S
same problem with xbmc-9999, it compiles fine with this patch, thks
+*bluez-4.98-r2 (14 Feb 2012) + + 14 Feb 2012; Pacho Ramos <pacho@gentoo.org> +bluez-4.98-r2.ebuild, + +files/bluez-4.98-fix-header.patch, +files/bluez-4.98-fix-socket.patch, + -bluez-4.98.ebuild: + Fix compilation problems against bluez, bug #403341 (by Steev Klimaszewski and + Marcel Unbehaun); fix needing to enable socket, bug #401065 (by Andreas + Eckstein and Ivan ivanov). Drop old. +
*** Bug 404581 has been marked as a duplicate of this bug. ***
Hello! This bug is closed, but... typeof is not part of the C++ standard, and isn't available when we use -std=c++0x. g++ should support __typeof__ even with -std=c++0x. So perhaps we could change the current solution to use __typeof__ instead of typeof to support also programs that are using c++0x standard.
This needs to be reported to upstream and see if they find a common fix: http://www.bluez.org/development/lists/
I will do so! The upstream bluetooth.h does not handle a separate functionality for C++. So could the file "bluez-4.98-fix-header.patch" be changed to use __typeof__ if __cplusplus is defined?
I would prefer to get it solved finally by upstream but, if you are currently having problems to build some app due that change, please attach a patch and will try to commit until then