1dada5122b
build and publish packages / distcc-avahi-aarch64 (push) Successful in 30s
build and publish packages / lmcp-any (push) Successful in 7s
build and publish packages / lmcp-debian (push) Successful in 5s
build and publish packages / claude-his-any (push) Successful in 8s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 12m5s
build and publish packages / claude-his-debian (push) Successful in 4s
Three small runtime checks in qtbase 6.11.0: 1. src/opengl/qopengltextureglyphcache.cpp createTextureData() and load_glyph_image_to_texture() — the `#else` branch (active when qtbase is built with QT_CONFIG(opengles2), every aarch64 distro) hard-codes GL_ALPHA without checking the runtime context's ES version. Replace with `useR8 = ctx->format().majorVersion() >= 3` so ES 3+ contexts get GL_R8 + GL_RED. 2. src/gui/rhi/qrhigles2.cpp toGlTextureFormat() RED_OR_ALPHA8 case — gated only on caps.coreProfile. Extend with `caps.gles && caps.ctxMajor >= 3`. 3. src/opengl/qopengltextureuploader.cpp Format_Alpha8 and Format_Grayscale8 cases — short-circuit on `context->isOpenGLES()` before reaching the swizzle fallback. Restrict to ES 2 only so ES 3+ falls through to the existing TextureSwizzle path. Discovered while validating chromium-fourier patch 3/3 (NV12 EXTERNAL_OES) on ohm. The chrome stall, VLC vout init failure and mpv "could not initialize video chain" all share this Qt 6 root cause: every Qt application running on Mali / panfrost / panthor under a KWin Wayland session emits glTexImage2D(GL_ALPHA) on every text-glyph cache upload, mesa returns GL_INVALID_VALUE, the compositor's frame-callback path stalls, and every wayland video client deadlocks behind it. PKGBUILD inherits from extra/qt6-base 6.11.0-2 with arch+=aarch64, epoch=1 to dominate Arch's pkgrel until upstream lands the fix. qt6-base-cflags.patch and qt6-base-nostrip.patch carried verbatim from upstream packaging. KWIN_PIVOT.md (in chromium-fourier/) carries the full diagnosis thread.
47 lines
2.6 KiB
Diff
47 lines
2.6 KiB
Diff
diff --git a/mkspecs/common/g++-unix.conf b/mkspecs/common/g++-unix.conf
|
|
index a493cd5984..41342f5020 100644
|
|
--- a/mkspecs/common/g++-unix.conf
|
|
+++ b/mkspecs/common/g++-unix.conf
|
|
@@ -10,5 +10,6 @@
|
|
|
|
include(g++-base.conf)
|
|
|
|
-QMAKE_LFLAGS_RELEASE += -Wl,-O1
|
|
+SYSTEM_LDFLAGS = $$(LDFLAGS)
|
|
+!isEmpty(SYSTEM_LDFLAGS) { eval(QMAKE_LFLAGS_RELEASE += $$(LDFLAGS)) } else { QMAKE_LFLAGS_RELEASE += -Wl,-O1 }
|
|
QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined
|
|
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
|
|
index 1f919d270a..7ef6046326 100644
|
|
--- a/mkspecs/common/gcc-base.conf
|
|
+++ b/mkspecs/common/gcc-base.conf
|
|
@@ -40,9 +40,11 @@ QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os
|
|
QMAKE_CFLAGS_DEPS += -M
|
|
QMAKE_CFLAGS_WARN_ON += -Wall -Wextra
|
|
QMAKE_CFLAGS_WARN_OFF += -w
|
|
-QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE
|
|
-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
|
|
-QMAKE_CFLAGS_DEBUG += -g
|
|
+SYSTEM_CFLAGS = $$(CFLAGS)
|
|
+SYSTEM_DEBUG_CFLAGS = $$(DEBUG_CFLAGS)
|
|
+!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE += $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
|
|
+!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -g $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
|
|
+!isEmpty(SYSTEM_DEBUG_CFLAGS) { eval(QMAKE_CFLAGS_DEBUG += $$(DEBUG_CFLAGS)) } else { QMAKE_CFLAGS_DEBUG += -g }
|
|
QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC
|
|
QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC
|
|
QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC
|
|
@@ -59,9 +61,11 @@ QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
|
|
QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS
|
|
QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON
|
|
QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF
|
|
-QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE
|
|
-QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
|
|
-QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG
|
|
+SYSTEM_CXXFLAGS = $$(CXXFLAGS)
|
|
+SYSTEM_DEBUG_CXXFLAGS = $$(DEBUG_CXXFLAGS)
|
|
+!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE += $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
|
|
+!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -g $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
|
|
+!isEmpty(SYSTEM_DEBUG_CXXFLAGS) { eval(QMAKE_CXXFLAGS_DEBUG += $$(DEBUG_CXXFLAGS)) } else { QMAKE_CXXFLAGS_DEBUG += -g }
|
|
QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB
|
|
QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
|
|
QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP
|