36c8c3d95a
ROOT CAUSE: Qt6's auto-generated Wayland wrappers pass NULL proxies to wl_*_add_listener() during initialization. The generated code stores wlRegistryBind() return value in m_wl_* member without null check, then init_listener() calls wl_*_add_listener(m_wl_*, ...) which page-faults at null+8 (write to proxy->object.implementation). FIX (kded6): wrapper script renames libqwayland.so to .disabled before launching kded6.real. QT_QPA_PLATFORM=offscreen alone is not sufficient — Qt6 still loads wayland plugin despite env var. FIX (libwayland): null guards in redox.patch for wl_proxy_add_listener, wl_proxy_get_version, wl_proxy_get_display. Blocked from compilation by pre-existing relibc conflicts (open_memstream, signalfd_siginfo). FIX (Qt6 wrappers): regex-based null guard insertion proven in concept. Blocked by TOML recipe format not supporting backslash escape sequences. Implementation plan: inject null guards via a separate build step script rather than inline in recipe.toml.
12 lines
508 B
Diff
12 lines
508 B
Diff
--- a/src/header/signal/cbindgen.toml
|
|
+++ b/src/header/signal/cbindgen.toml
|
|
@@ -6,7 +6,7 @@
|
|
# - "pid_t As described in <sys/types.h>."
|
|
# - "The <signal.h> header shall define the pthread_attr_t type as described in <sys/types.h>."
|
|
# - "Inclusion of the <signal.h> header may make visible all symbols from the <time.h> header."
|
|
-sys_includes = ["sys/types.h"]
|
|
+sys_includes = ["sys/types.h", "stdint.h"]
|
|
include_guard = "_RELIBC_SIGNAL_H"
|
|
after_includes = """
|
|
#include <bits/sigset-t.h> // for sigset_t
|