diff --git a/qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp b/qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp
index b828090e5f..524a4e579e 100644
--- a/qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp
+++ b/qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp
@@ -46,6 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #ifndef ASSIMP_BUILD_NO_FBX_IMPORTER
+#include <cstdint>
 
 #include "FBXTokenizer.h"
 #include "FBXUtil.h"
diff --git a/qtbase/src/corelib/global/qtypes.h b/qtbase/src/corelib/global/qtypes.h
index db9ba38e4c..8462b796ff 100644
--- a/qtbase/src/corelib/global/qtypes.h
+++ b/qtbase/src/corelib/global/qtypes.h
@@ -160,7 +160,7 @@ __extension__ typedef __uint128_t quint128;
 
 #ifndef __cplusplus
 // In C++ mode, we define below using QIntegerForSize template
-static_assert(sizeof(ptrdiff_t) == sizeof(size_t), "Weird ptrdiff_t and size_t definitions");
+
 typedef ptrdiff_t qptrdiff;
 typedef ptrdiff_t qsizetype;
 typedef ptrdiff_t qintptr;
diff --git a/qtbase/src/corelib/plugin/qelfparser_p.cpp b/qtbase/src/corelib/plugin/qelfparser_p.cpp
index 0bbadb2933..417146bff0 100644
--- a/qtbase/src/corelib/plugin/qelfparser_p.cpp
+++ b/qtbase/src/corelib/plugin/qelfparser_p.cpp
@@ -116,7 +116,7 @@ struct ElfMachineCheck
 #elif defined(Q_PROCESSOR_ARM_32)
             EM_ARM
 #elif defined(Q_PROCESSOR_ARM_64)
-            EM_AARCH64
+            183
 #elif defined(Q_PROCESSOR_BLACKFIN)
             EM_BLACKFIN
 #elif defined(Q_PROCESSOR_HPPA)
@@ -386,7 +386,7 @@ Q_DECL_UNUSED Q_DECL_COLD_FUNCTION static QDebug &operator<<(QDebug &d, ElfHeade
     case EM_ALPHA:      d << ", Alpha"; break;
     case EM_68K:        d << ", MC68000"; break;
     case EM_ARM:        d << ", ARM"; break;
-    case EM_AARCH64:    d << ", AArch64"; break;
+    case 183:    d << ", AArch64"; break;
 #ifdef EM_BLACKFIN
     case EM_BLACKFIN:   d << ", Blackfin"; break;
 #endif
diff --git a/qtbase/src/corelib/plugin/qlibrary_unix.cpp b/qtbase/src/corelib/plugin/qlibrary_unix.cpp
index 1ad3a1f721..ce623c2875 100644
--- a/qtbase/src/corelib/plugin/qlibrary_unix.cpp
+++ b/qtbase/src/corelib/plugin/qlibrary_unix.cpp
@@ -136,7 +136,7 @@ bool QLibraryPrivate::load_sys()
 #   ifdef Q_OS_ANDROID // RTLD_NODELETE flag is supported by Android 23+
         if (QtAndroidPrivate::androidSdkVersion() > 22)
 #   endif
-            dlFlags |= RTLD_NODELETE;
+            //dlFlags |= RTLD_NODELETE;
     }
 #endif
 
diff --git a/qtbase/src/gui/platform/unix/qxkbcommon.cpp b/qtbase/src/gui/platform/unix/qxkbcommon.cpp
index ed29db3005..a63d6d46b2 100644
--- a/qtbase/src/gui/platform/unix/qxkbcommon.cpp
+++ b/qtbase/src/gui/platform/unix/qxkbcommon.cpp
@@ -239,12 +239,6 @@ static constexpr const auto KeyTbl = qMakeArray(
         Xkb2Qt<XKB_KEY_dead_greek,              Qt::Key_Dead_Greek>,
 /* The following four XKB_KEY_dead keys got removed in libxkbcommon 1.6.0
    The define check is kind of version check here. */
-#ifdef XKB_KEY_dead_lowline
-        Xkb2Qt<XKB_KEY_dead_lowline,            Qt::Key_Dead_Lowline>,
-        Xkb2Qt<XKB_KEY_dead_aboveverticalline,  Qt::Key_Dead_Aboveverticalline>,
-        Xkb2Qt<XKB_KEY_dead_belowverticalline,  Qt::Key_Dead_Belowverticalline>,
-        Xkb2Qt<XKB_KEY_dead_longsolidusoverlay, Qt::Key_Dead_Longsolidusoverlay>,
-#endif
 
         // Special keys from X.org - This include multimedia keys,
         // wireless/bluetooth/uwb keys, special launcher keys, etc.
diff --git a/qtmultimedia/src/plugins/multimedia/gstreamer/mediacapture/qgstreamercamera.cpp b/qtmultimedia/src/plugins/multimedia/gstreamer/mediacapture/qgstreamercamera.cpp
index 8d3cd6baf8..5a4ea7992f 100644
--- a/qtmultimedia/src/plugins/multimedia/gstreamer/mediacapture/qgstreamercamera.cpp
+++ b/qtmultimedia/src/plugins/multimedia/gstreamer/mediacapture/qgstreamercamera.cpp
@@ -17,6 +17,13 @@
 #endif
 
 
+#define V4L2_CTRL_CLASS_CAMERA               0x009a0000
+#define V4L2_CID_CAMERA_CLASS_BASE  (V4L2_CTRL_CLASS_CAMERA | 0x900)
+#define V4L2_CID_AUTO_EXPOSURE_BIAS          (V4L2_CID_CAMERA_CLASS_BASE+19)
+#define V4L2_CID_ISO_SENSITIVITY_AUTO                (V4L2_CID_CAMERA_CLASS_BASE+24)
+#define V4L2_CID_ISO_SENSITIVITY             (V4L2_CID_CAMERA_CLASS_BASE+23)
+
+
 QT_BEGIN_NAMESPACE
 
 QMaybe<QPlatformCamera *> QGstreamerCamera::create(QCamera *camera)
@@ -398,7 +405,7 @@ void QGstreamerCamera::setManualIsoSensitivity(int iso)
     if (isV4L2Camera()) {
         if (!(supportedFeatures() & QCamera::Feature::IsoSensitivity))
             return;
-        setV4L2Parameter(V4L2_CID_ISO_SENSITIVITY_AUTO, iso <= 0 ? V4L2_ISO_SENSITIVITY_AUTO : V4L2_ISO_SENSITIVITY_MANUAL);
+        setV4L2Parameter(V4L2_CID_ISO_SENSITIVITY_AUTO, iso <= 0 ? 1 : 0);
         if (iso > 0) {
             iso = qBound(minIso(), iso, maxIso());
             setV4L2Parameter(V4L2_CID_ISO_SENSITIVITY, iso);
diff --git a/qtopcua/src/opcua/CMakeLists.txt b/qtopcua/src/opcua/CMakeLists.txt
index 406c236225..f3ed345120 100644
--- a/qtopcua/src/opcua/CMakeLists.txt
+++ b/qtopcua/src/opcua/CMakeLists.txt
@@ -88,6 +88,7 @@ qt_internal_add_module(OpcUa
     PUBLIC_LIBRARIES
         Qt::Core
         Qt::Network
+        rt
     PRIVATE_MODULE_INTERFACE
         Qt::CorePrivate
         Qt::NetworkPrivate
diff --git a/qtwebengine/configure.cmake b/qtwebengine/configure.cmake
index a9f6595337..1ca8a85a07 100644
--- a/qtwebengine/configure.cmake
+++ b/qtwebengine/configure.cmake
@@ -180,7 +180,7 @@ qt_config_compile_test(glibc
     CODE
 "
 #include <features.h>
-#if __GLIBC__ < 2 || __GLIBC_MINOR__ < 17
+#if __GLIBC__ < 2 || __GLIBC_MINOR__ < 15
 #error glibc versions below 2.17 are not supported
 #endif
 int main(void) {
diff --git a/qtwebengine/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc b/qtwebengine/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc
index e0d7e54f45..7284b1fa59 100644
--- a/qtwebengine/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc
+++ b/qtwebengine/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc
@@ -76,7 +76,7 @@ void RandBytes(void* output, size_t output_length) {
   // that do have this syscall defined. This diverges from upstream
   // `//base` behavior both here and below.
   const ssize_t r =
-      PA_HANDLE_EINTR(syscall(__NR_getrandom, output, output_length, 0));
+      PA_HANDLE_EINTR(syscall(318, output, output_length, 0));
 
   // Return success only on total success. In case errno == ENOSYS (or any other
   // error), we'll fall through to reading from urandom below.
diff --git a/qtwebengine/src/3rdparty/chromium/base/allocator/partition_allocator/thread_isolation/pkey.cc b/qtwebengine/src/3rdparty/chromium/base/allocator/partition_allocator/thread_isolation/pkey.cc
index 9f2f7924a2..7e8ec25a60 100644
--- a/qtwebengine/src/3rdparty/chromium/base/allocator/partition_allocator/thread_isolation/pkey.cc
+++ b/qtwebengine/src/3rdparty/chromium/base/allocator/partition_allocator/thread_isolation/pkey.cc
@@ -28,7 +28,7 @@ bool CPUHasPkeySupport() {
 
 PA_COMPONENT_EXPORT(PARTITION_ALLOC)
 int PkeyMprotect(void* addr, size_t len, int prot, int pkey) {
-  return syscall(SYS_pkey_mprotect, addr, len, prot, pkey);
+  return syscall(329, addr, len, prot, pkey);
 }
 
 void TagMemoryWithPkey(int pkey, void* address, size_t size) {
@@ -42,12 +42,12 @@ void TagMemoryWithPkey(int pkey, void* address, size_t size) {
 
 PA_COMPONENT_EXPORT(PARTITION_ALLOC)
 int PkeyAlloc(int access_rights) {
-  return syscall(SYS_pkey_alloc, 0, access_rights);
+  return syscall(330, 0, access_rights);
 }
 
 PA_COMPONENT_EXPORT(PARTITION_ALLOC)
 void PkeyFree(int pkey) {
-  PA_PCHECK(syscall(SYS_pkey_free, pkey) == 0);
+  PA_PCHECK(syscall(331, pkey) == 0);
 }
 
 uint32_t Rdpkru() {
diff --git a/qtwebengine/src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.cc b/qtwebengine/src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.cc
index 57522939ea..b05e53bf18 100644
--- a/qtwebengine/src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.cc
+++ b/qtwebengine/src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.cc
@@ -46,6 +46,35 @@ using media::mojom::MeteringMode;
 #define V4L2_PIX_FMT_INVZ v4l2_fourcc('I', 'N', 'V', 'Z')
 #endif
 
+enum v4l2_quantization {
+    V4L2_QUANTIZATION_DEFAULT     = 0,
+    V4L2_QUANTIZATION_FULL_RANGE  = 1,
+    V4L2_QUANTIZATION_LIM_RANGE   = 2,
+};
+
+enum v4l2_ycbcr_encoding {
+    V4L2_YCBCR_ENC_DEFAULT        = 0,
+    V4L2_YCBCR_ENC_601            = 1,
+    V4L2_YCBCR_ENC_709            = 2,
+    V4L2_YCBCR_ENC_XV601          = 3,
+    V4L2_YCBCR_ENC_XV709          = 4,
+    V4L2_YCBCR_ENC_SYCC           = 5,
+    V4L2_YCBCR_ENC_BT2020         = 6,
+    V4L2_YCBCR_ENC_BT2020_CONST_LUM = 7,
+    V4L2_YCBCR_ENC_SMPTE240M      = 8,
+};
+
+enum v4l2_xfer_func {
+    V4L2_XFER_FUNC_DEFAULT     = 0,
+    V4L2_XFER_FUNC_709         = 1,
+    V4L2_XFER_FUNC_SRGB        = 2,
+    V4L2_XFER_FUNC_OPRGB       = 3,
+    V4L2_XFER_FUNC_SMPTE240M   = 4,
+    V4L2_XFER_FUNC_NONE        = 5,
+    V4L2_XFER_FUNC_DCI_P3      = 6,
+    V4L2_XFER_FUNC_SMPTE2084   = 7,
+};
+
 namespace media {
 
 namespace {
@@ -344,7 +373,7 @@ void V4L2CaptureDelegate::AllocateAndStart(
   ResetUserAndCameraControlsToDefault();
 
   // In theory, checking for CAPTURE/OUTPUT in caps.capabilities should only
-  // be done if V4L2_CAP_DEVICE_CAPS is not set. However, this was not done
+  // be done if 0x80000000 is not set. However, this was not done
   // in the past and it is unclear if it breaks with existing devices. And if
   // a device is accepted incorrectly then it will not have any usable
   // formats and is skipped anyways.
@@ -352,9 +381,9 @@ void V4L2CaptureDelegate::AllocateAndStart(
   if (!(DoIoctl(VIDIOC_QUERYCAP, &cap) == 0 &&
         (((cap.capabilities & V4L2_CAP_VIDEO_CAPTURE) &&
           !(cap.capabilities & V4L2_CAP_VIDEO_OUTPUT)) ||
-         ((cap.capabilities & V4L2_CAP_DEVICE_CAPS) &&
-          (cap.device_caps & V4L2_CAP_VIDEO_CAPTURE) &&
-          !(cap.device_caps & V4L2_CAP_VIDEO_OUTPUT))))) {
+         ((cap.capabilities & 0x80000000) &&
+          (cap.reserved[0] & V4L2_CAP_VIDEO_CAPTURE) &&
+          !(cap.reserved[0] & V4L2_CAP_VIDEO_OUTPUT))))) {
     device_fd_.reset();
     SetErrorState(VideoCaptureError::kV4L2ThisIsNotAV4L2VideoCaptureDevice,
                   FROM_HERE, "This is not a V4L2 video capture device");
@@ -531,7 +560,7 @@ void V4L2CaptureDelegate::GetPhotoState(
   // AUTO, SHUTTER_PRIORITY or APERTURE_PRIORITY. Drivers should interpret the
   // values as 0.001 EV units, where the value 1000 stands for +1 EV.
   photo_capabilities->exposure_compensation =
-      RetrieveUserControlRange(V4L2_CID_AUTO_EXPOSURE_BIAS);
+      RetrieveUserControlRange(0x9a0913);
 
   photo_capabilities->color_temperature =
       RetrieveUserControlRange(V4L2_CID_WHITE_BALANCE_TEMPERATURE);
@@ -704,7 +733,7 @@ void V4L2CaptureDelegate::SetPhotoOptions(
     // control is set to AUTO, SHUTTER_PRIORITY or APERTURE_PRIORITY.
     if (result >= 0 && current_auto_exposure.value != V4L2_EXPOSURE_MANUAL) {
       v4l2_control set_exposure_bias = {};
-      set_exposure_bias.id = V4L2_CID_AUTO_EXPOSURE_BIAS;
+      set_exposure_bias.id = 0x9a0913;
       set_exposure_bias.value = settings->exposure_compensation;
       if (DoIoctl(VIDIOC_S_CTRL, &set_exposure_bias) < 0) {
         DPLOG(ERROR) << "setting exposure compensation to "
@@ -814,7 +843,7 @@ bool V4L2CaptureDelegate::IsControllableControl(int control_id) {
 }
 
 void V4L2CaptureDelegate::ReplaceControlEventSubscriptions() {
-  constexpr uint32_t kControlIds[] = {V4L2_CID_AUTO_EXPOSURE_BIAS,
+  constexpr uint32_t kControlIds[] = {0x9a0913,
                                       V4L2_CID_AUTO_WHITE_BALANCE,
                                       V4L2_CID_BRIGHTNESS,
                                       V4L2_CID_CONTRAST,
@@ -1221,12 +1250,13 @@ void V4L2CaptureDelegate::SetErrorState(VideoCaptureError error,
 
 #if BUILDFLAG(IS_LINUX)
 gfx::ColorSpace V4L2CaptureDelegate::BuildColorSpaceFromv4l2() {
-  v4l2_colorspace v4l2_primary = (v4l2_colorspace)video_fmt_.fmt.pix.colorspace;
-  v4l2_quantization v4l2_range =
-      (v4l2_quantization)video_fmt_.fmt.pix.quantization;
-  v4l2_ycbcr_encoding v4l2_matrix =
-      (v4l2_ycbcr_encoding)video_fmt_.fmt.pix.ycbcr_enc;
-  v4l2_xfer_func v4l2_transfer = (v4l2_xfer_func)video_fmt_.fmt.pix.xfer_func;
+  __u32 v4l2_primary =
+      (__u32)video_fmt_.fmt.pix.colorspace;
+  __u32 v4l2_range =
+      ((__u32*)&video_fmt_.fmt.pix)[10];
+  __u32 v4l2_matrix =
+      ((__u32*)&video_fmt_.fmt.pix)[9];
+  __u32 v4l2_transfer = ((__u32*)&video_fmt_.fmt.pix)[11];;
 
   DVLOG(2) << __func__ << "v4l2_primary:" << v4l2_primary
            << ", v4l2_range:" << v4l2_range << ", v4l2_matrix:" << v4l2_matrix
@@ -1234,39 +1264,39 @@ gfx::ColorSpace V4L2CaptureDelegate::BuildColorSpaceFromv4l2() {
 
   gfx::ColorSpace::PrimaryID primary = gfx::ColorSpace::PrimaryID::INVALID;
   switch (v4l2_primary) {
-    case V4L2_COLORSPACE_470_SYSTEM_M:
+    case 5:
       primary = gfx::ColorSpace::PrimaryID::BT470M;
       break;
-    case V4L2_COLORSPACE_470_SYSTEM_BG:
+    case 6:
       primary = gfx::ColorSpace::PrimaryID::BT470BG;
       break;
-    case V4L2_COLORSPACE_SMPTE170M:
+    case 1:
       primary = gfx::ColorSpace::PrimaryID::SMPTE170M;
       break;
-    case V4L2_COLORSPACE_SMPTE240M:
+    case 2:
       primary = gfx::ColorSpace::PrimaryID::SMPTE240M;
       break;
-    case V4L2_COLORSPACE_BT2020:
+    case 10:
       primary = gfx::ColorSpace::PrimaryID::BT2020;
       break;
-    case V4L2_COLORSPACE_DCI_P3:
+    case 12:
       primary = gfx::ColorSpace::PrimaryID::P3;
       break;
     // SRGB, JPEG and REC709 have same primary.
-    case V4L2_COLORSPACE_SRGB:
-    case V4L2_COLORSPACE_JPEG:
-    case V4L2_COLORSPACE_REC709:
+    case 8:
+    case 7:
+    case 3:
       primary = gfx::ColorSpace::PrimaryID::BT709;
       break;
     // The AdobeRGB standard defines the colorspace used by computer graphics
     // that use the AdobeRGB colorspace. This is also known as the opRGB
     // standard. (i.e. OPRGB is same as ADOBE_RGB)
-    case V4L2_COLORSPACE_OPRGB:
+    case 9:
       primary = gfx::ColorSpace::PrimaryID::ADOBE_RGB;
       break;
-    case V4L2_COLORSPACE_BT878:
-    case V4L2_COLORSPACE_DEFAULT:
-    case V4L2_COLORSPACE_RAW:
+    case 4:
+    case 0:
+    case 11:
       return gfx::ColorSpace();
   }
 
@@ -1274,7 +1304,7 @@ gfx::ColorSpace V4L2CaptureDelegate::BuildColorSpaceFromv4l2() {
   switch (v4l2_range) {
     case V4L2_QUANTIZATION_DEFAULT:
       if (media::IsYuvPlanar(capture_format_.pixel_format) &&
-          v4l2_primary != V4L2_COLORSPACE_JPEG) {
+          v4l2_primary != 7) {
         range = gfx::ColorSpace::RangeID::LIMITED;
       } else {
         range = gfx::ColorSpace::RangeID::FULL;
@@ -1292,33 +1322,33 @@ gfx::ColorSpace V4L2CaptureDelegate::BuildColorSpaceFromv4l2() {
   switch (v4l2_matrix) {
     case V4L2_YCBCR_ENC_DEFAULT:
       switch (v4l2_primary) {
-        case V4L2_COLORSPACE_470_SYSTEM_BG:
+        case 6:
           matrix = gfx::ColorSpace::MatrixID::BT470BG;
           break;
-        case V4L2_COLORSPACE_SRGB:
+        case 8:
           matrix = gfx::ColorSpace::MatrixID::RGB;
           break;
-        // V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M,
-        // V4L2_COLORSPACE_OPRGB and V4L2_COLORSPACE_JPEG have same matrix.
-        case V4L2_COLORSPACE_SMPTE170M:
-        case V4L2_COLORSPACE_470_SYSTEM_M:
-        case V4L2_COLORSPACE_OPRGB:
-        case V4L2_COLORSPACE_JPEG:
+        // 1, 5,
+        // 9 and 7 have same matrix.
+        case 1:
+        case 5:
+        case 9:
+        case 7:
           matrix = gfx::ColorSpace::MatrixID::SMPTE170M;
           break;
-        case V4L2_COLORSPACE_REC709:
-        case V4L2_COLORSPACE_DCI_P3:
+        case 3:
+        case 12:
           matrix = gfx::ColorSpace::MatrixID::BT709;
           break;
-        case V4L2_COLORSPACE_BT2020:
+        case 10:
           matrix = gfx::ColorSpace::MatrixID::BT2020_NCL;
           break;
-        case V4L2_COLORSPACE_SMPTE240M:
+        case 2:
           matrix = gfx::ColorSpace::MatrixID::SMPTE240M;
           break;
-        case V4L2_COLORSPACE_DEFAULT:
-        case V4L2_COLORSPACE_BT878:
-        case V4L2_COLORSPACE_RAW:
+        case 0:
+        case 4:
+        case 11:
           return gfx::ColorSpace();
       }
       break;
@@ -1348,37 +1378,37 @@ gfx::ColorSpace V4L2CaptureDelegate::BuildColorSpaceFromv4l2() {
   switch (v4l2_transfer) {
     case V4L2_XFER_FUNC_DEFAULT:
       switch (v4l2_primary) {
-        case V4L2_COLORSPACE_SMPTE170M:
+        case 1:
           transfer = gfx::ColorSpace::TransferID::SMPTE170M;
           break;
-        // V4L2_COLORSPACE_470_SYSTEM_M, V4L2_COLORSPACE_470_SYSTEM_BG and
-        // V4L2_COLORSPACE_REC709 have same transfer function.
-        case V4L2_COLORSPACE_470_SYSTEM_M:
-        case V4L2_COLORSPACE_470_SYSTEM_BG:
-        case V4L2_COLORSPACE_REC709:
+        // 5, 6 and
+        // 3 have same transfer function.
+        case 5:
+        case 6:
+        case 3:
           transfer = gfx::ColorSpace::TransferID::BT709;
           break;
-        case V4L2_COLORSPACE_BT2020:
+        case 10:
           transfer = gfx::ColorSpace::TransferID::BT2020_10;
           break;
-        // V4L2_COLORSPACE_JPEG and V4L2_COLORSPACE_SRGB has same transfer
+        // 7 and 8 has same transfer
         // function.
-        case V4L2_COLORSPACE_SRGB:
-        case V4L2_COLORSPACE_JPEG:
+        case 8:
+        case 7:
           transfer = gfx::ColorSpace::TransferID::SRGB;
           break;
-        case V4L2_COLORSPACE_SMPTE240M:
+        case 2:
           transfer = gfx::ColorSpace::TransferID::SMPTE240M;
           break;
-        case V4L2_COLORSPACE_RAW:
-        case V4L2_COLORSPACE_DCI_P3:
-        case V4L2_COLORSPACE_DEFAULT:
-        case V4L2_COLORSPACE_BT878:
+        case 11:
+        case 12:
+        case 0:
+        case 4:
           // The default transfer function is V4L2_XFER_FUNC_ADOBERGB, but there
           // is no same definition or same transfer function in TransferID.
           // TODO(1449570, 959919): If ADOBE_RGB is handled, pass the right gfx
           // color space instead of INVALID color space.
-        case V4L2_COLORSPACE_OPRGB:
+        case 9:
           return gfx::ColorSpace();
       }
       break;
diff --git a/qtwebengine/src/3rdparty/chromium/media/capture/video/linux/video_capture_device_factory_v4l2.cc b/qtwebengine/src/3rdparty/chromium/media/capture/video/linux/video_capture_device_factory_v4l2.cc
index 3ae03cb7d3..7b33005386 100644
--- a/qtwebengine/src/3rdparty/chromium/media/capture/video/linux/video_capture_device_factory_v4l2.cc
+++ b/qtwebengine/src/3rdparty/chromium/media/capture/video/linux/video_capture_device_factory_v4l2.cc
@@ -174,7 +174,7 @@ void VideoCaptureDeviceFactoryV4L2::GetDevicesInfo(
     // capabilities at the same time are memory-to-memory and are skipped, see
     // http://crbug.com/139356.
     // In theory, checking for CAPTURE/OUTPUT in caps.capabilities should only
-    // be done if V4L2_CAP_DEVICE_CAPS is not set. However, this was not done
+    // be done if 0x80000000 is not set. However, this was not done
     // in the past and it is unclear if it breaks with existing devices. And if
     // a device is accepted incorrectly then it will not have any usable
     // formats and is skipped anyways.
@@ -182,9 +182,9 @@ void VideoCaptureDeviceFactoryV4L2::GetDevicesInfo(
     if ((DoIoctl(fd.get(), VIDIOC_QUERYCAP, &cap) == 0) &&
         ((cap.capabilities & V4L2_CAP_VIDEO_CAPTURE &&
           !(cap.capabilities & V4L2_CAP_VIDEO_OUTPUT)) ||
-         (cap.capabilities & V4L2_CAP_DEVICE_CAPS &&
-          cap.device_caps & V4L2_CAP_VIDEO_CAPTURE &&
-          !(cap.device_caps & V4L2_CAP_VIDEO_OUTPUT))) &&
+         (cap.capabilities & 0x80000000 &&
+          cap.reserved[0] & V4L2_CAP_VIDEO_CAPTURE &&
+          !(cap.reserved[0] & V4L2_CAP_VIDEO_OUTPUT))) &&
         HasUsableFormats(fd.get(), cap.capabilities)) {
       const std::string model_id =
           device_provider_->GetDeviceModelId(unique_id);
diff --git a/qtwebengine/src/3rdparty/chromium/mojo/core/channel_linux.cc b/qtwebengine/src/3rdparty/chromium/mojo/core/channel_linux.cc
index b2ee0dd8a1..620b495353 100644
--- a/qtwebengine/src/3rdparty/chromium/mojo/core/channel_linux.cc
+++ b/qtwebengine/src/3rdparty/chromium/mojo/core/channel_linux.cc
@@ -6,7 +6,7 @@
 
 #include <fcntl.h>
 #include <linux/futex.h>
-#include <linux/memfd.h>
+
 #include <sys/eventfd.h>
 #include <sys/mman.h>
 #include <sys/syscall.h>
@@ -49,6 +49,9 @@
 #define EFD_ZERO_ON_WAKE O_NOFOLLOW
 #endif
 
+#define F_LINUX_SPECIFIC_BASE 1024
+#define F_ADD_SEALS  (F_LINUX_SPECIFIC_BASE + 9)
+
 namespace mojo {
 namespace core {
 
@@ -112,7 +115,7 @@ class DataAvailableNotifier {
 
 namespace {
 
-constexpr int kMemFDSeals = F_SEAL_SEAL | F_SEAL_SHRINK | F_SEAL_GROW;
+constexpr int kMemFDSeals = 0x1 | 0x2 | 0x4;
 
 std::atomic_bool g_params_set{false};
 std::atomic_bool g_use_shared_mem{false};
@@ -141,8 +144,8 @@ constexpr size_t RoundUpToWordBoundary(size_t size) {
 base::ScopedFD CreateSealedMemFD(size_t size) {
   CHECK_GT(size, 0u);
   CHECK_EQ(size % base::GetPageSize(), 0u);
-  base::ScopedFD fd(syscall(__NR_memfd_create, "mojo_channel_linux",
-                            MFD_CLOEXEC | MFD_ALLOW_SEALING));
+  base::ScopedFD fd(syscall(0x13f, "mojo_channel_linux",
+                            0x1 | 0x2));
   if (!fd.is_valid()) {
     PLOG(ERROR) << "Unable to create memfd for shared memory channel";
     return {};
@@ -153,9 +156,9 @@ base::ScopedFD CreateSealedMemFD(size_t size) {
     return {};
   }
 
-  // We make sure to use F_SEAL_SEAL to prevent any further changes to the
-  // seals and F_SEAL_SHRINK guarantees that we won't accidentally decrease
-  // the size, and similarly F_SEAL_GROW for increasing size.
+  // We make sure to use 0x1 to prevent any further changes to the
+  // seals and 0x2 guarantees that we won't accidentally decrease
+  // the size, and similarly 0x4 for increasing size.
   if (fcntl(fd.get(), F_ADD_SEALS, kMemFDSeals) < 0) {
     PLOG(ERROR) << "Unable to seal memfd for shared memory channel";
     return {};
@@ -168,7 +171,7 @@ base::ScopedFD CreateSealedMemFD(size_t size) {
 // FD we're receive is a properly sealed MemFD.
 bool ValidateFDIsProperlySealedMemFD(const base::ScopedFD& fd) {
   int seals = 0;
-  if ((seals = fcntl(fd.get(), F_GET_SEALS)) < 0) {
+  if ((seals = fcntl(fd.get(), 0x40a)) < 0) {
     PLOG(ERROR) << "Unable to get seals on memfd for shared memory channel";
     return false;
   }
@@ -941,7 +944,7 @@ bool ChannelLinux::KernelSupportsUpgradeRequirements() {
     // Do we have memfd_create support, we check by seeing if we get an
     // -ENOSYS or an -EINVAL. We also support -EPERM because of seccomp
     // rules this is another possible outcome.
-    int ret = syscall(__NR_memfd_create, "", ~0);
+    int ret = syscall(0x13f, "", ~0);
     PCHECK(ret < 0 && (errno == EINVAL || errno == ENOSYS || errno == EPERM));
     bool memfd_supported = (ret < 0 && errno == EINVAL);
     return memfd_supported && EventFDNotifier::KernelSupported();
diff --git a/qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc b/qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
index ba995ace6d..e925fe9613 100644
--- a/qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+++ b/qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
@@ -282,13 +282,13 @@ ResultExpr RestrictFcntlCommands() {
 #else
   const uint64_t kOsSpecificSeals = 0;
 #endif
-  const uint64_t kAllowedSeals = F_SEAL_SEAL | F_SEAL_GROW | F_SEAL_SHRINK |
+  const uint64_t kAllowedSeals = 0x1 | 0x4 | 0x2 |
                                  kOsSpecificSeals;
   // clang-format off
   return Switch(cmd)
       .Cases({F_GETFL,
               F_GETFD,
-              F_GET_SEALS,
+              0x40a,
               F_SETFD,
               F_SETLK,
               F_SETLKW,
@@ -298,7 +298,7 @@ ResultExpr RestrictFcntlCommands() {
              Allow())
       .Case(F_SETFL,
             If((long_arg & ~kAllowedMask) == 0, Allow()).Else(CrashSIGSYS()))
-      .Case(F_ADD_SEALS,
+      .Case(0x409,
             If((long_arg & ~kAllowedSeals) == 0, Allow()).Else(CrashSIGSYS()))
       .Default(CrashSIGSYS());
   // clang-format on
diff --git a/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc b/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
index df2567f749..d9b37a5906 100644
--- a/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
+++ b/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
@@ -6,7 +6,7 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <linux/kcmp.h>
+//#include <linux/kcmp.h>
 #include <sys/socket.h>
 
 // Some arch's (arm64 for instance) unistd.h don't pull in symbols used here
@@ -58,7 +58,7 @@ ResultExpr CrosAmdGpuProcessPolicy::EvaluateSyscall(int sysno) const {
       const int policy_pid = GetPolicyPid();
       // Only allowed when comparing file handles for the calling thread.
       return If(AllOf(pid1 == policy_pid, pid2 == policy_pid,
-                      type == KCMP_FILE),
+                      type == 0),
                 Allow())
           .Else(Error(EPERM));
     }
diff --git a/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc b/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc
index b6b8550e50..3f955bf784 100644
--- a/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc
+++ b/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc
@@ -4,7 +4,7 @@
 
 #include "sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.h"
 
-#include <linux/kcmp.h>
+//#include <linux/kcmp.h>
 
 #include "media/gpu/buildflags.h"
 #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
@@ -110,7 +110,7 @@ ResultExpr HardwareVideoDecodingProcessPolicy::EvaluateSyscallForVaapiOnAMD(
       const pid_t policy_pid = GetPolicyPid();
       // Only allowed when comparing file handles for the calling thread.
       return If(AllOf(pid1 == policy_pid, pid2 == policy_pid,
-                      type == KCMP_FILE),
+                      type == 0),
                 Allow())
           .Else(Error(EPERM));
     }
diff --git a/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_network_policy_linux.cc b/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_network_policy_linux.cc
index ed1582d790..f0f3beab10 100644
--- a/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_network_policy_linux.cc
+++ b/qtwebengine/src/3rdparty/chromium/sandbox/policy/linux/bpf_network_policy_linux.cc
@@ -6,6 +6,9 @@
 
 #include <memory>
 
+#include <sys/socket.h>
+#include <sys/types.h>
+
 #include <fcntl.h>
 #include <linux/ioctl.h>
 #include <linux/net.h>
@@ -100,7 +103,7 @@ ResultExpr RestrictSetSockoptForNetworkService() {
 
   ResultExpr socket_optname_switch =
       Switch(optname)
-          .Cases({SO_KEEPALIVE, SO_REUSEADDR, SO_REUSEPORT, SO_RCVBUF,
+          .Cases({SO_KEEPALIVE, SO_REUSEADDR, 15, SO_RCVBUF,
                   SO_SNDBUF, SO_BROADCAST},
                  Allow())
           .Default(CrashSIGSYSSockopt());
diff --git a/qtwebengine/src/3rdparty/chromium/third_party/catapult/tracing/bin/generate_about_tracing_contents b/qtwebengine/src/3rdparty/chromium/third_party/catapult/tracing/bin/generate_about_tracing_contents
index feee882897..eb0570e0c8 100755
--- a/qtwebengine/src/3rdparty/chromium/third_party/catapult/tracing/bin/generate_about_tracing_contents
+++ b/qtwebengine/src/3rdparty/chromium/third_party/catapult/tracing/bin/generate_about_tracing_contents
@@ -5,6 +5,7 @@
 
 import os
 import sys
+import html5lib
 
 if __name__ == '__main__':
   tracing_path = os.path.abspath(os.path.join(
diff --git a/qtwebengine/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/mman_memfd_create.cc b/qtwebengine/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/mman_memfd_create.cc
index 0b559ec405..383ddfb057 100644
--- a/qtwebengine/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/mman_memfd_create.cc
+++ b/qtwebengine/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/mman_memfd_create.cc
@@ -28,7 +28,7 @@ int memfd_create(const char* name, unsigned int flags) __THROW {
   static const crashpad::NoCfiIcall<decltype(memfd_create)*> next_memfd_create(
       dlsym(RTLD_NEXT, "memfd_create"));
   return next_memfd_create ? next_memfd_create(name, flags)
-                           : syscall(SYS_memfd_create, name, flags);
+                           : syscall(319, name, flags);
 }
 
 }  // extern "C"
diff --git a/qtwebengine/src/3rdparty/chromium/third_party/crashpad/crashpad/util/file/file_io_posix.cc b/qtwebengine/src/3rdparty/chromium/third_party/crashpad/crashpad/util/file/file_io_posix.cc
index 07c24c311c..1df937a07a 100644
--- a/qtwebengine/src/3rdparty/chromium/third_party/crashpad/crashpad/util/file/file_io_posix.cc
+++ b/qtwebengine/src/3rdparty/chromium/third_party/crashpad/crashpad/util/file/file_io_posix.cc
@@ -166,16 +166,16 @@ FileHandle LoggingOpenMemoryFileForReadAndWrite(const base::FilePath& name) {
   const char* tmp = getenv("TMPDIR");
   tmp = tmp ? tmp : "/tmp";
 
-  result = HANDLE_EINTR(open(tmp, O_RDWR | O_EXCL | O_TMPFILE, 0600));
+  result = HANDLE_EINTR(open(tmp, O_RDWR | O_EXCL | 0x020200000, 0600));
   if (result >= 0 ||
-      // These are the expected possible error codes indicating that O_TMPFILE
-      // doesn't have kernel or filesystem support. O_TMPFILE was added in Linux
+      // These are the expected possible error codes indicating that 0x020200000
+      // doesn't have kernel or filesystem support. 0x020200000 was added in Linux
       // 3.11. Experimentation confirms that at least Linux 2.6.29 and Linux
       // 3.10 set errno to EISDIR. EOPNOTSUPP is returned when the filesystem
-      // doesn't support O_TMPFILE. The man pages also mention ENOENT as an
+      // doesn't support 0x020200000. The man pages also mention ENOENT as an
       // error code to check, but the language implies it would only occur when
       // |tmp| is also an invalid directory. EINVAL is mentioned as a possible
-      // error code for any invalid values in flags, but O_TMPFILE isn't
+      // error code for any invalid values in flags, but 0x020200000 isn't
       // mentioned explicitly in this context and hasn't been observed in
       // practice.
       (errno != EISDIR && errno != EOPNOTSUPP)) {
diff --git a/qtwebengine/src/3rdparty/chromium/ui/gl/gl_bindings.h b/qtwebengine/src/3rdparty/chromium/ui/gl/gl_bindings.h
index d7e7741d86..5d8331d5eb 100644
--- a/qtwebengine/src/3rdparty/chromium/ui/gl/gl_bindings.h
+++ b/qtwebengine/src/3rdparty/chromium/ui/gl/gl_bindings.h
@@ -59,6 +59,17 @@ struct XVisualInfo;
 #include <GL/glxtokens.h>
 #endif
 
+#if !defined(GL_ES_VERSION_3_2) && !defined(GL_VERSION_4_3)
+typedef void (APIENTRY *GLDEBUGPROC) (
+            GLenum source,
+            GLenum type,
+            GLuint id,
+            GLenum severity,
+            GLsizei length,
+            const GLchar* message,
+            const void* userParam);
+#endif
+
 // GLES2 defines not part of Desktop GL
 // Shader Precision-Specified Types
 #define GL_LOW_FLOAT                                     0x8DF0
diff --git a/qtwebengine/src/3rdparty/chromium/ui/gl/gl_display.cc b/qtwebengine/src/3rdparty/chromium/ui/gl/gl_display.cc
index 672756a48b..20d7ec1d81 100644
--- a/qtwebengine/src/3rdparty/chromium/ui/gl/gl_display.cc
+++ b/qtwebengine/src/3rdparty/chromium/ui/gl/gl_display.cc
@@ -28,6 +28,10 @@
 #include "ui/gl/gl_implementation.h"
 #include "ui/gl/gl_surface.h"
 
+#if defined(USE_GLX)
+#include "ui/gfx/x/connection.h"
+#endif
+
 #if BUILDFLAG(IS_OZONE)
 #include "ui/ozone/buildflags.h"
 #endif  // BUILDFLAG(IS_OZONE)
@@ -40,6 +44,8 @@
 #include "ui/gfx/x/connection.h"
 #endif
 
+#include <X11/Xlib.h>
+
 // From ANGLE's egl/eglext.h.
 
 #ifndef EGL_ANGLE_platform_angle
diff --git a/qtwebengine/src/gn/CMakeLists.txt b/qtwebengine/src/gn/CMakeLists.txt
index 0fe3e4e05b..b37bb7581b 100644
--- a/qtwebengine/src/gn/CMakeLists.txt
+++ b/qtwebengine/src/gn/CMakeLists.txt
@@ -63,7 +63,7 @@ add_custom_command(
         --out-path ${GN_BINARY_DIR}/$<CONFIG>
         --cc ${CMAKE_C_COMPILER}
         --cxx ${CMAKE_CXX_COMPILER}
-        --ld ${GN_LINKER}
+        --ld "${GN_LINKER} -lrt"
         --platform ${platform}
         --ar ${CMAKE_AR}
         --qt-version "${QT_REPO_MODULE_VERSION}.qtwebengine.qt.io"
diff --git a/qtwebengine/src/pdf/CMakeLists.txt b/qtwebengine/src/pdf/CMakeLists.txt
index 37c32efd54..8f234ecced 100644
--- a/qtwebengine/src/pdf/CMakeLists.txt
+++ b/qtwebengine/src/pdf/CMakeLists.txt
@@ -38,6 +38,7 @@ qt_internal_add_module(Pdf
     PUBLIC_LIBRARIES
         Qt::Core
         Qt::Gui
+        rt
     GENERATE_CPP_EXPORTS
     GENERATE_PRIVATE_CPP_EXPORTS
 )
