diff --git a/configure.pri b/configure.pri
index 25475574303fc8aa0010aceedc7b7b84654a7548..26c57ce61fbebe91d13e962fbda036058cda0e59 100644
--- a/configure.pri
+++ b/configure.pri
@@ -294,3 +294,21 @@ defineTest(qtConfTest_isWindowsHostCompiler64) {
     qtLog("Required 64-bit cross-building or native toolchain was not detected.")
     return(false)
 }
+
+# Fixme QTBUG-71772
+defineTest(qtConfTest_hasThumbFlag) {
+    FLAG = $$extractCFlag("-mthumb")
+    !isEmpty(FLAG): return(true)
+    FLAG = $$extractCFlag("-marm")
+    !isEmpty(FLAG): return(false)
+
+    MARCH = $$extractCFlag("-march=.*")
+    MARMV = $$replace(MARCH, "armv",)
+    !isEmpty(MARMV) {
+        MARMV = $$split(MARMV,)
+        MARMV = $$member(MARMV, 0)
+    }
+    if (isEmpty(MARMV) | lessThan(MARMV, 7)): return(false)
+    # no flag assume mthumb
+    return(true)
+}
diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
index 0eea066e4ebeb1a1444cfea11ccc8425e5db4ac1..752d2281f69aedf5a854358159a950110537d3cb 100644
--- a/src/core/config/linux.pri
+++ b/src/core/config/linux.pri
@@ -69,6 +69,7 @@ contains(QT_ARCH, "arm") {
         gn_args += arm_version=$$MARMV
     }
 
+    # TODO: use neon detection from qtbase
     !lessThan(MARMV, 8) {
         gn_args += arm_use_neon=true
     } else {
@@ -83,10 +84,16 @@ contains(QT_ARCH, "arm") {
         }
     }
 
-    MTHUMB = $$extractCFlag("-mthumb")
-    MARM = $$extractCFlag("-marm")
-    if (isEmpty(MARMV) | lessThan(MARMV, 7) | !isEmpty(MARM)): gn_args += arm_use_thumb=false
-    else: !isEmpty(MTHUMB): gn_args += arm_use_thumb=true
+    qtConfig(webengine-arm-thumb) {
+        gn_args += arm_use_thumb=true # this adds -mthumb
+    } else {
+        gn_args += arm_use_thumb=false
+        !qtConfig(webengine-system-ffmpeg) {
+             # Fixme QTBUG-71772
+             gn_args += media_use_ffmpeg=false
+             gn_args += use_webaudio_ffmpeg=false
+        }
+    }
 }
 
 contains(QT_ARCH, "mips") {
diff --git a/src/core/configure.json b/src/core/configure.json
index f49bf08d143239a16af3dc07a70c0b201fce3e02..e176053021a83883a9dabd9430f48dde1fcfc626 100644
--- a/src/core/configure.json
+++ b/src/core/configure.json
@@ -328,6 +328,10 @@
         "webengine-win-compiler64": {
             "label": "64bit compiler",
             "type": "isWindowsHostCompiler64"
+        },
+        "webengine-arm-thumb" : {
+            "label": "thumb instruction set",
+            "type": "hasThumbFlag"
         }
     },
 
@@ -659,6 +663,11 @@
             "label": "64bit compiler",
             "condition": "config.win32 && tests.webengine-win-compiler64",
             "output": [ "privateFeature" ]
+        },
+        "webengine-arm-thumb": {
+            "label": "Thumb instruction set",
+            "condition": "config.linux && features.webengine-embedded-build && arch.arm && tests.webengine-arm-thumb",
+            "output": [ "privateFeature" ]
         }
     },
 
@@ -697,6 +706,11 @@
             "type": "warning",
             "condition": "config.win32 && !features.webengine-win-compiler64",
             "message": "64-bit cross-building or native toolchain is required to build QtWebEngine."
+        },
+        {
+            "type": "warning",
+            "condition": "config.linux && features.webengine-embedded-build && !features.webengine-system-ffmpeg && arch.arm && !features.webengine-arm-thumb",
+            "message": "Thumb instruction set is required to build ffmpeg for QtWebEngine."
         }
     ],