summaryrefslogtreecommitdiff
path: root/package/mongrel2
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-01-27 22:25:25 +0100
committerPeter Korsgaard <peter@korsgaard.com>2016-02-01 19:32:42 +0100
commitd9c26b1ffc0907483d2743b644999d9d505a01a8 (patch)
treefae2ecb123444c01f326760f688fe4ea13fe6833 /package/mongrel2
parent60a062b74f01e3d97ece56094b39d021d438bc05 (diff)
mongrel2: allow using uClibc but only on certain architectures
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>
Diffstat (limited to 'package/mongrel2')
-rw-r--r--package/mongrel2/Config.in22
1 files changed, 12 insertions, 10 deletions
diff --git a/package/mongrel2/Config.in b/package/mongrel2/Config.in
index 1c7b4950b..49dd6fd97 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