All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [git commit] mongrel2: allow using uClibc but only on certain architectures
@ 2016-02-01 18:32 Peter Korsgaard
  0 siblings, 0 replies; only message in thread
From: Peter Korsgaard @ 2016-02-01 18:32 UTC (permalink / raw)
  To: buildroot

commit: https://git.buildroot.net/buildroot/commit/?id=d9c26b1ffc0907483d2743b644999d9d505a01a8
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

mongrel2 uses the {get,make,swap}context functions:

 - With glibc, no problem, they are available on all supported
   architectures

 - With uClibc, they are available only on a subset of the
   architectures. Until now, only BR2_UCLIBC_VERSION_SNAPSHOT
   configurations were allowed to select mongrel2, but we are going to
   get rid of the uClibc snapshot version, and uClibc-ng is as capable
   as the uClibc snapshot. However, only certain architectures have
   the *context() functions.

 - With musl, there is no *context() support.

Since this dependency is quite complicated, we introduce a
BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS hidden boolean to encode which C
libraries are supported.

Also, listing the supported uClibc architectures would be too long in
the comment, so we simply indicate that the package needs uClibc or
glibc.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 package/mongrel2/Config.in | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/package/mongrel2/Config.in b/package/mongrel2/Config.in
index 1c7b495..49dd6fd 100644
--- a/package/mongrel2/Config.in
+++ b/package/mongrel2/Config.in
@@ -1,10 +1,16 @@
-comment "mongrel2 needs a toolchain w/ C++, threads, wchar, dynamic library"
-	depends on BR2_UCLIBC_VERSION_SNAPSHOT || \
-		BR2_TOOLCHAIN_USES_GLIBC || \
-		BR2_arm
+# mongrel2 uses {get,make,swap}context() functions, which are
+# available in glibc for all architectures and in uClibc only for a
+# subset of the architectures
+config BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS
+	bool
+	default y if BR2_TOOLCHAIN_USES_GLIBC
+	default y if BR2_TOOLCHAIN_USES_UCLIBC && \
+		(BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || BR2_x86_64)
+
+comment "mongrel2 needs a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library"
 	depends on !BR2_INSTALL_LIBSTDCPP || \
 		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
-		BR2_STATIC_LIBS
+		BR2_STATIC_LIBS || !BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS
 
 config BR2_PACKAGE_MONGREL2
 	bool "mongrel2"
@@ -14,11 +20,7 @@ config BR2_PACKAGE_MONGREL2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
 	depends on BR2_USE_WCHAR # zeromq -> util-linux
 	depends on !BR2_STATIC_LIBS # uses dlopen()
-	# {get,make,swap}context functions present in
-	# {e,}glibc and in uClibc's master branch. Source has arm workaround
-	depends on BR2_UCLIBC_VERSION_SNAPSHOT || \
-		BR2_TOOLCHAIN_USES_GLIBC || \
-		BR2_arm
+	depends on BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS
 	help
 	  Mongrel2 is an application, language, and network architecture
 	  agnostic web server that focuses on web applications using

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-02-01 18:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-01 18:32 [Buildroot] [git commit] mongrel2: allow using uClibc but only on certain architectures Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.