diff mbox series

[meta-oe,01/13] frame: Fix build with lld without x11

Message ID 20261114193733.1743149-1-khem.raj@oss.qualcomm.com
State New
Headers show
Series [meta-oe,01/13] frame: Fix build with lld without x11 | expand

Commit Message

Khem Raj Nov. 14, 2026, 7:37 p.m. UTC
The frame_x11_* functions are only built with the X11 backend, but the
version script always lists them, so lld fails without x11 with:

  error: version script assignment of 'FRAME_2.2' to symbol 'frame_x11_new' failed: symbol not defined

Generate a version script without them when the X11 backend is disabled.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
---
 ...bols-from-the-version-script-without.patch | 50 +++++++++++++++++++
 .../canonical-multitouch/frame_2.5.0.bb       |  4 +-
 2 files changed, 53 insertions(+), 1 deletion(-)
 create mode 100644 meta-oe/recipes-support/canonical-multitouch/frame/0001-Drop-the-X11-symbols-from-the-version-script-without.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-support/canonical-multitouch/frame/0001-Drop-the-X11-symbols-from-the-version-script-without.patch b/meta-oe/recipes-support/canonical-multitouch/frame/0001-Drop-the-X11-symbols-from-the-version-script-without.patch
new file mode 100644
index 0000000000..816f6bcf76
--- /dev/null
+++ b/meta-oe/recipes-support/canonical-multitouch/frame/0001-Drop-the-X11-symbols-from-the-version-script-without.patch
@@ -0,0 +1,50 @@ 
+From ef439367ab9ead953b128971cf85349669802441 Mon Sep 17 00:00:00 2001
+From: Khem Raj <khem.raj@oss.qualcomm.com>
+Date: Mon, 9 Nov 2026 08:37:30 -0800
+Subject: [PATCH] Drop the X11 symbols from the version script without X11
+
+When the X11 backend is disabled, the frame_x11_* functions are not
+built, and linkers that check the version script, like lld, fail with:
+
+  error: version script assignment of 'FRAME_2.2' to symbol 'frame_x11_new' failed: symbol not defined
+
+Generate a version script without them in that case.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
+---
+ src/Makefile.am | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 0d1f547..3664644 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,4 +1,12 @@
++if HAVE_XINPUT
+ version_script = $(srcdir)/libframe.ver
++else
++# The X11 backend is not built, so its symbols must not be in the version script
++version_script = libframe-nox11.ver
++libframe-nox11.ver: $(srcdir)/libframe.ver
++	$(AM_V_GEN)sed -e '/frame_x11_/d' $(srcdir)/libframe.ver > $@
++CLEANFILES = libframe-nox11.ver
++endif
+ 
+ lib_LTLIBRARIES = libframe.la
+ 
+@@ -7,6 +15,8 @@ libframe_la_LDFLAGS = \
+ 	-Wl,-z,defs -Wl,--as-needed \
+ 	-Wl,--version-script=$(version_script)
+ 
++libframe_la_DEPENDENCIES = $(version_script)
++
+ libframe_la_LIBADD = \
+ 	-lm \
+ 	$(COVERAGE_LIBS) \
+@@ -69,4 +79,4 @@ libframe_la_SOURCES += \
+ 	x11/window_x11.cpp
+ endif
+ 
+-EXTRA_DIST = $(version_script)
++EXTRA_DIST = $(srcdir)/libframe.ver
diff --git a/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb b/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
index 3afc9c0b31..57ad7a85db 100644
--- a/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
+++ b/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
@@ -13,7 +13,9 @@  inherit autotools pkgconfig features_check
 REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl', '', d)}"
 
 SRC_URI = "https://launchpad.net/${BPN}/trunk/v${PV}/+download/${BPN}-${PV}.tar.gz \
-           file://pessimizing-move.patch"
+           file://pessimizing-move.patch \
+           file://0001-Drop-the-X11-symbols-from-the-version-script-without.patch \
+           "
 
 UPSTREAM_CHECK_URI = "https://launchpad.net/frame/trunk"