kumquat-buildroot/package/mongrel2/Config.in
Thomas Petazzoni d9c26b1ffc 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>
2016-02-01 19:32:42 +01:00

34 lines
1.3 KiB
Plaintext

# 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_PACKAGE_MONGREL2_LIBC_SUPPORTS
config BR2_PACKAGE_MONGREL2
bool "mongrel2"
select BR2_PACKAGE_SQLITE
select BR2_PACKAGE_ZEROMQ
depends on BR2_INSTALL_LIBSTDCPP # zeromq
depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
depends on BR2_USE_WCHAR # zeromq -> util-linux
depends on !BR2_STATIC_LIBS # uses dlopen()
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
modern browser technologies.
Mongrel2 supports 17 languages and platforms, HTTP, Flash
sockets, WebSockets, Long Polling, and many ways to deploy
and hack on it.
http://www.mongrel2.org