Opened 4 months ago

Last modified 3 months ago

#65544 assigned defect

qt(55|56|57)-qtconnectivity: error: use of undeclared identifier 'IOBluetoothAddServiceDict', 'IOBluetoothRemoveServiceWithRecordHandle'

Reported by: chrstphrchvz (Christopher Chavez) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: Cc:
Port: qt55-qtconnectivity qt56-qtconnectivity qt57-qtconnectivity

Description

qt55-qtconnectivity, qt56-qtconnectivity, and qt57-qtconnectivity use APIs which were removed in the macOS 10.15 SDK:

/usr/bin/clang -c -pipe -O2 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk -std=c++11 -stdlib=libc++ -mmacosx-version-min=12.0 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -DQT_NO_MTDEV -DQT_NO_LIBUDEV -DQT_NO_EVDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_BUILD_BLUETOOTH_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_OSX_BLUETOOTH -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -I. -I../../include -I../../include/QtBluetooth -I../../include/QtBluetooth/5.5.1 -I../../include/QtBluetooth/5.5.1/QtBluetooth -I/opt/local/libexec/qt5/lib/QtCore.framework/Headers -I/opt/local/libexec/qt5/lib/QtConcurrent.framework/Headers -I.moc -I/opt/local/libexec/qt5/mkspecs/macx-clang -F/opt/local/libexec/qt5/lib qbluetoothserviceinfo_osx.mm -o .obj/qbluetoothserviceinfo_osx.o

qbluetoothserviceinfo_osx.mm:158:33: error: use of undeclared identifier 'IOBluetoothAddServiceDict'
        const IOReturn status = IOBluetoothAddServiceDict((CFDictionaryRef)serviceDict.data(), &recordRef);
                                ^
qbluetoothserviceinfo_osx.mm:216:13: error: use of undeclared identifier 'IOBluetoothRemoveServiceWithRecordHandle'; did you mean 'BluetoothSDPServiceRecordHandle'?
            IOBluetoothRemoveServiceWithRecordHandle(newRecordHandle);
            ^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/System/Library/Frameworks/IOBluetooth.framework/Headers/Bluetooth.h:2918:18: note: 'BluetoothSDPServiceRecordHandle' declared here
typedef uint32_t        BluetoothSDPServiceRecordHandle;
                        ^
qbluetoothserviceinfo_osx.mm:253:9: error: use of undeclared identifier 'IOBluetoothRemoveServiceWithRecordHandle'; did you mean 'BluetoothSDPServiceRecordHandle'?
        IOBluetoothRemoveServiceWithRecordHandle(serviceRecordHandle);
        ^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/System/Library/Frameworks/IOBluetooth.framework/Headers/Bluetooth.h:2918:18: note: 'BluetoothSDPServiceRecordHandle' declared here
typedef uint32_t        BluetoothSDPServiceRecordHandle;
                        ^

Ports will likely need to be marked known_fail yes for now. If someone wants these ports to build on 10.15 and later (and possibly 10.14 with Xcode 11), consider looking into backporting the upstream change for 10.9 and later (https://invent.kde.org/qt/qt/qtconnectivity/-/commit/6b6b4fea), as done by fink for Qt 5.7 (https://github.com/fink/fink-distributions/blob/master/10.9-libcxx/stable/main/finkinfo/libs/qt5-qtconnectivity-xcode11.3.patch).

Change History (1)

comment:1 Changed 3 months ago by chrstphrchvz (Christopher Chavez)

In 67cf76cfab9cb38d87597ba8fde4067258de40b6/macports-ports (master):

qt(55|56|57)-qtconnectivity: set known_fail

See: #64126
See: #65544

[skip ci]

Note: See TracTickets for help on using tickets.