[Development] INTEGRITY help needed: IPC & QT_CONFIG weirdness

Thiago Macieira thiago.macieira at intel.com
Tue Nov 8 21:39:48 CET 2022


On Tuesday, 8 November 2022 12:59:39 PST Niclas Rosenvik wrote:
> /home/qt/work/qt/qtbase/build/target/include/QtCore/../../../../src/corelib/
> ipc/qtipccommon.h:125:21: warning: 'QNativeIpcKey::TypeAndFlags::type' is
> too small to hold all values of 'enum class QNativeIpcKey::Type'

This one is expected and intentional. Type is an enum class with quint16 
underlying type, so it cannot store all 65536 values on 15 bits.

> Is this the error that causes QNativeIpcKey::Type::SystemV to be the
> value you mentioned?

No, it isn't. The values in question are all less than 9 bits in size.

The issue appears to be that QT_POSIX_IPC isn't #define'd in qtcore-config.h. 
This is the configure.cmake content:

qt_feature("ipc_posix"
    LABEL "Defaulting legacy IPC to POSIX"
    CONDITION TEST_posix_shm AND TEST_posix_sem AND (
        FEATURE_ipc_posix OR (APPLE AND QT_FEATURE_appstore_compliant)
        OR NOT (TEST_sysv_shm AND TEST_sysv_sem)
    )
)
qt_feature_definition("ipc_posix" "QT_POSIX_IPC")

>From the cmake output, we should have:
TEST_posix_shm = ON
TEST_posix_sem = ON
TEST_sysv_shm = OFF
TEST_sysv_sem = OFF

So this condition should have been TRUE. But isn't.

BTW, the iOS build said:
   Defaulting legacy IPC to POSIX ......... yes

So the middle condition of appstore-compliance did work.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Cloud Software Architect - Intel DCAI Cloud Engineering





More information about the Development mailing list