diff mbox series

[1/1] package/libdex: needs ucontext

Message ID 20240723193314.333631-1-fontaine.fabrice@gmail.com
State Superseded
Headers show
Series [1/1] package/libdex: needs ucontext | expand

Commit Message

Fabrice Fontaine July 23, 2024, 7:33 p.m. UTC
libdex needs ucontext since its addition in commit
70319b47f646f74f407ed3355baf5b581a10518a:

/home/autobuild/autobuild/instance-11/output-1/host/lib/gcc/aarch64-buildroot-linux-musl/13.3.0/../../../../aarch64-buildroot-linux-musl/bin/ld: src/libdex-1.a.p/dex-fiber.c.o: in function `dex_fiber_context_init':
/home/autobuild/autobuild/instance-11/output-1/build/libdex-0.6.1/build/../src/dex-fiber-context-private.h:131:(.text+0x30c): undefined reference to `getcontext'

[...]

In file included from ../src/dex-fiber-private.h:34,
                 from ../src/dex-scheduler.c:25:
../src/dex-fiber-context-private.h: In function '_dex_fiber_context_makecontext':
../src/dex-fiber-context-private.h:108:3: error: implicit declaration of function 'makecontext' [-Werror=implicit-function-declaration]
  108 |   makecontext (ucontext,
      |   ^~~~~~~~~~~

Fixes: 70319b47f646f74f407ed3355baf5b581a10518a
 - http://autobuild.buildroot.org/results/5f23b0e41f2957b0562c5d168f35e42f13bdad0b
 - http://autobuild.buildroot.org/results/67d958e9a8e1dfb147ac7be4fcb74fcafbbce987

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 package/libdex/Config.in | 10 ++++++++--
 package/libdex/libdex.mk |  5 +++++
 2 files changed, 13 insertions(+), 2 deletions(-)

Comments

Thomas Petazzoni July 23, 2024, 8:21 p.m. UTC | #1
Hello Fabrice,

On Tue, 23 Jul 2024 21:33:14 +0200
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> +	depends on BR2_TOOLCHAIN_HAS_UCONTEXT || \
> +		BR2_PACKAGE_LIBUCONTEXT_ARCH_SUPPORTS
> +	select BR2_PACKAGE_LIBUCONTEXT if \
> +		BR2_PACKAGE_LIBUCONTEXT_ARCH_SUPPORTS

This should be:

	select BR2_PACKAGE_LIBUCONTEXT if \
		BR2_PACKAGE_LIBUCONTEXT_ARCH_SUPPORTS && !BR2_TOOLCHAIN_HAS_UCONTEXT

so that when the toolchain has ucontext support, you don't needlessly
select the libucontext package.

Thanks!

Thomas
diff mbox series

Patch

diff --git a/package/libdex/Config.in b/package/libdex/Config.in
index f10bdac46f..38382dad78 100644
--- a/package/libdex/Config.in
+++ b/package/libdex/Config.in
@@ -3,6 +3,10 @@  config BR2_PACKAGE_LIBDEX
 	depends on BR2_USE_MMU # libglib2
 	depends on BR2_USE_WCHAR # libglib2, gettext
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+	depends on BR2_TOOLCHAIN_HAS_UCONTEXT || \
+		BR2_PACKAGE_LIBUCONTEXT_ARCH_SUPPORTS
+	select BR2_PACKAGE_LIBUCONTEXT if \
+		BR2_PACKAGE_LIBUCONTEXT_ARCH_SUPPORTS
 	select BR2_PACKAGE_LIBGLIB2
 	help
 	  Dex provides Future-based programming for GLib-based
@@ -12,6 +16,8 @@  config BR2_PACKAGE_LIBDEX
 
 	  https://gitlab.gnome.org/GNOME/libdex
 
-comment "libdex needs a toolchain w/ wchar, threads"
+comment "libdex needs a toolchain w/ wchar, threads, ucontext"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!(BR2_TOOLCHAIN_HAS_UCONTEXT || \
+			BR2_PACKAGE_LIBUCONTEXT_ARCH_SUPPORTS)
diff --git a/package/libdex/libdex.mk b/package/libdex/libdex.mk
index 7c652a0409..360b389255 100644
--- a/package/libdex/libdex.mk
+++ b/package/libdex/libdex.mk
@@ -22,6 +22,11 @@  LIBDEX_CONF_OPTS = \
 	-Deventfd=enabled \
 	-Dintrospection=disabled
 
+ifeq ($(BR2_PACKAGE_LIBUCONTEXT),y)
+LIBDEX_DEPENDENCIES += libucontext
+LIBDEX_LDFLAGS += $(TARGET_LDFLAGS) -lucontext
+endif
+
 ifeq ($(BR2_PACKAGE_LIBURING),y)
 LIBDEX_CONF_OPTS += -Dliburing=enabled
 LIBDEX_DEPENDENCIES += liburing