Public bug reported: Compiling code that uses the gcc -ansi flag no longer works with libbluetooth-dev, as the public API now makes use of typeof() which is a GNU extension and disabled by the -ansi flag.
$ cat main.c #include <bluetooth/bluetooth.h> int main() { return 0; } $ gcc main.c -o main -ansi In file included from main.c:1:0: /usr/include/bluetooth/bluetooth.h:131:1: error: unknown type name ‘inline’ /usr/include/bluetooth/bluetooth.h:131:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘bt_get_le64’ /usr/include/bluetooth/bluetooth.h:136:1: error: unknown type name ‘inline’ /usr/include/bluetooth/bluetooth.h:136:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘bt_get_be64’ /usr/include/bluetooth/bluetooth.h:141:1: error: unknown type name ‘inline’ /usr/include/bluetooth/bluetooth.h:141:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘bt_get_le32’ /usr/include/bluetooth/bluetooth.h:146:1: error: unknown type name ‘inline’ /usr/include/bluetooth/bluetooth.h:146:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘bt_get_be32’ /usr/include/bluetooth/bluetooth.h:151:1: error: unknown type name ‘inline’ /usr/include/bluetooth/bluetooth.h:151:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘bt_get_le16’ /usr/include/bluetooth/bluetooth.h:156:1: error: unknown type name ‘inline’ /usr/include/bluetooth/bluetooth.h:156:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘bt_get_be16’ /usr/include/bluetooth/bluetooth.h:204:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/bluetooth/bluetooth.h:208:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/bluetooth/bluetooth.h:255:1: error: unknown type name ‘inline’ /usr/include/bluetooth/bluetooth.h:255:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ntoh64’ /usr/include/bluetooth/bluetooth.h:266:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/bluetooth/bluetooth.h:274:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ $ apt-cache policy libbluetooth-dev libbluetooth-dev: Installed: 4.98-2ubuntu4 Candidate: 4.98-2ubuntu4 Version table: *** 4.98-2ubuntu4 0 500 http://de.archive.ubuntu.com/ubuntu/ precise/main i386 Packages 100 /var/lib/dpkg/status $ lsb_release -rd Description: Ubuntu precise (development branch) Release: 12.04 ** Affects: bluez (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/950032 Title: Public bluetooth.h API requires use of GNU extensions To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/950032/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs