I love c++.... Whilst I'm waiting on qtwebengine 6.3.2 to build, I started working on getting the base libs of Qt 6.4.2 building...
In file included from include/QtCore/qmetacontainer.h:1,
from include/QtCore/../../../src/corelib/kernel/qiterable.h:9,
from include/QtCore/qiterable.h:1,
from include/QtCore/../../../src/corelib/kernel/qmetatype.h:15,
from include/QtCore/qmetatype.h:1,
from include/QtCore/../../../src/corelib/kernel/qobject.h:18,
from include/QtCore/qobject.h:1,
from include/QtCore/../../../src/corelib/io/qiodevice.h:10,
from include/QtCore/qiodevice.h:1,
from include/QtCore/../../../src/corelib/io/qfiledevice.h:7,
from include/QtCore/qfiledevice.h:1,
from include/QtCore/../../../src/corelib/io/qfile.h:8,
from include/QtCore/qfile.h:1,
from include/QtCore/../../../src/corelib/io/qfileinfo.h:7,
from include/QtCore/qfileinfo.h:1,
from ../src/gui/image/qabstractfileiconprovider.h:8,
from ../src/gui/image/qabstractfileiconprovider.cpp:4:
include/QtCore/../../../src/corelib/kernel/qmetacontainer.h: In instantiation of 'constexpr const QtMetaContainerPrivate::QMetaSequenceInterface QMetaSequence::MetaSequence<QList<QSize> >::value':
include/QtCore/../../../src/corelib/kernel/qmetacontainer.h:931:30: required from 'static constexpr QMetaSequence QMetaSequence::fromContainer() [with T = QList<QSize>]'
include/QtCore/../../../src/corelib/kernel/qmetatype.h:1644:75: required from 'QIterable<QMetaSequence> QtPrivate::QSequentialIterableConvertFunctor<From>::operator()(const From&) const [with From = QList<QSize>]'
include/QtCore/../../../src/corelib/kernel/qmetatype.h:580:26: required from 'static bool QMetaType::registerConverter(UnaryFunction) [with From = QList<QSize>; To = QIterable<QMetaSequence>; UnaryFunction = QtPrivate::QSequentialIterableConvertFunctor<QList<QSize> >]'
include/QtCore/../../../src/corelib/kernel/qmetatype.h:1665:77: required from 'static bool QtPrivate::SequentialValueTypeIsMetaType<T, true>::registerConverter() [with T = QList<QSize>]'
include/QtCore/../../../src/corelib/kernel/qmetatype.h:1223:77: required from 'int qRegisterNormalizedMetaTypeImplementation(const QByteArray&) [with T = QList<QSize>]'
include/QtCore/../../../src/corelib/kernel/qmetatype.h:1252:56: [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
include/QtCore/../../../src/corelib/kernel/qmetatype.h:2376:70: required from 'constexpr const QtPrivate::QMetaTypeInterface QtPrivate::QMetaTypeInterfaceWrapper<QList<QSize> >::metaType'
include/QtCore/../../../src/corelib/kernel/qmetatype.h:2468:12: required from 'constexpr const QtPrivate::QMetaTypeInterface* QtPrivate::qMetaTypeInterfaceForType() [with T = QList<QSize>]'
include/QtCore/../../../src/corelib/kernel/qmetatype.h:2495:61: required from 'static constexpr QMetaType QMetaType::fromType() [with T = QList<QSize>]'
include/QtCore/../../../src/corelib/kernel/qvariant.h:593:50: required from 'T qvariant_cast(const QVariant&) [with T = QList<QSize>]'
include/QtCore/../../../src/corelib/kernel/qvariant.h:350:30: required from 'T QVariant::value() const [with T = QList<QSize>]'
../src/gui/image/qabstractfileiconprovider.cpp:67:52: required from here
include/QtCore/../../../src/corelib/kernel/qmetacontainer.h:989:79: error: 'QtMetaContainerPrivate::QMetaSequenceInterface{QtMetaContainerPrivate::QMetaContainerInterface{0, QtMetaContainerPrivate::IteratorCapabilities{15}, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getSizeFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::SizeFn = int (*)(const void*); qsizetype = int]::<lambda(const void*)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getClearFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::ClearFn = void (*)(void*)]::<lambda(void*)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getCreateIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::CreateIteratorFn = void* (*)(void*, QtMetaContainerPrivate::QMetaContainerInterface::Position)]::<lambda(void*, QtMetaContainerPrivate::QMetaContainerInterface::Position)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getDestroyIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::DestroyIteratorFn = void (*)(const void*)]::<lambda(const void*)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getCompareIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::CompareIteratorFn = bool (*)(const void*, const void*)]::<lambda(const void*, const void*)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getCopyIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::CopyIteratorFn = void (*)(void*, const void*)]::<lambda(void*, const void*)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getAdvanceIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::AdvanceIteratorFn = void (*)(void*, int); qsizetype = int]::<lambda(void*, qsizetype)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getDiffIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::DiffIteratorFn = int (*)(const void*, const void*); qsizetype = int]::<lambda(const void*, const void*)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getCreateConstIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::CreateConstIteratorFn = void* (*)(const void*, QtMetaContainerPrivate::QMetaContainerInterface::Position)]::<lambda(const void*, QtMetaContainerPrivate::QMetaContainerInterface::Position)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getDestroyConstIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::DestroyIteratorFn = void (*)(const void*)]::<lambda(const void*)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getCompareConstIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::CompareIteratorFn = bool (*)(const void*, const void*)]::<lambda(const void*, const void*)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getCopyConstIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::CopyIteratorFn = void (*)(void*, const void*)]::<lambda(void*, const void*)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getAdvanceConstIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::AdvanceIteratorFn = void (*)(void*, int); qsizetype = int]::<lambda(void*, qsizetype)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getDiffConstIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaContainerInterface::DiffIteratorFn = int (*)(const void*, const void*); qsizetype = int]::<lambda(const void*, const void*)>::_FUN}, (& QtPrivate::QMetaTypeInterfaceWrapper<QSize>::metaType), QtMetaContainerPrivate::AddRemoveCapabilities{15}, QtMetaContainerPrivate::QMetaSequenceForContainer<C>::getValueAtIndexFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaSequenceInterface::ValueAtIndexFn = void (*)(const void*, int, void*); qsizetype = int]::<lambda(const void*, qsizetype, void*)>::_FUN, QtMetaContainerPrivate::QMetaSequenceForContainer<C>::getSetValueAtIndexFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaSequenceInterface::SetValueAtIndexFn = void (*)(void*, int, const void*); qsizetype = int]::<lambda(void*, qsizetype, const void*)>::_FUN, QtMetaContainerPrivate::QMetaSequenceForContainer<C>::getAddValueFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaSequenceInterface::AddValueFn = void (*)(void*, const void*, QtMetaContainerPrivate::QMetaContainerInterface::Position)]::<lambda(void*, const void*, QtMetaContainerPrivate::QMetaContainerInterface::Position)>::_FUN, QtMetaContainerPrivate::QMetaSequenceForContainer<C>::getRemoveValueFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaSequenceInterface::RemoveValueFn = void (*)(void*, QtMetaContainerPrivate::QMetaContainerInterface::Position)]::<lambda(void*, QtMetaContainerPrivate::QMetaContainerInterface::Position)>::_FUN, QtMetaContainerPrivate::QMetaSequenceForContainer<C>::getValueAtIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaSequenceInterface::ValueAtIteratorFn = void (*)(const void*, void*)]::<lambda(const void*, void*)>::_FUN, QtMetaContainerPrivate::QMetaSequenceForContainer<C>::getSetValueAtIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaSequenceInterface::SetValueAtIteratorFn = void (*)(const void*, const void*)]::<lambda(const void*, const void*)>::_FUN, QtMetaContainerPrivate::QMetaSequenceForContainer<C>::getInsertValueAtIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaSequenceInterface::InsertValueAtIteratorFn = void (*)(void*, const void*, const void*)]::<lambda(void*, const void*, const void*)>::_FUN, QtMetaContainerPrivate::QMetaSequenceForContainer<C>::getValueAtConstIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaSequenceInterface::ValueAtIteratorFn = void (*)(const void*, void*)]::<lambda(const void*, void*)>::_FUN, QtMetaContainerPrivate::QMetaContainerForContainer<C>::getEraseAtIteratorFn() [with EraseFn = void (*)(void*, const void*); C = QList<QSize>]::<lambda(void*, const void*)>::_FUN, QtMetaContainerPrivate::QMetaSequenceForContainer<C>::getEraseRangeAtIteratorFn() [with C = QList<QSize>; QtMetaContainerPrivate::QMetaSequenceInterface::EraseRangeAtIteratorFn = void (*)(void*, const void*, const void*)]::<lambda(void*, const void*, const void*)>::_FUN}' is not a constant expression
989 | static constexpr const QtMetaContainerPrivate::QMetaSequenceInterface value
| ^~~~~
Same code compiles fine on linux.... I guess something is missing for OS/2 in a header somewhere, but for the life of me, I can't work out what yet,....
Code (minus a few local commits) is at
https://github.com/psmedley/qt6-base-os2/tree/6.4.x