[Buildroot] [PATCH 2/2] package/efl: enable luajit support
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Sun Mar 20 21:42:34 UTC 2016
Hello,
On Sat, 5 Mar 2016 00:00:43 +0100, Romain Naour wrote:
> The lua-old support is currently broken for Lua 5.2+ due to [1] and it's not
> yet fixed with efl 1.17.
>
> In order to bump to a newer efl version, we need to enable the luajit support
> and use it by default.
>
> We need to build Elua for the host to enable luajit support for the target.
>
> [1] https://phab.enlightenment.org/T2728
I don't really understand the discussion in this bug report, and it
seems like you got no feedback. Maybe the explanation was not clear
enough as to which cases work / don't work.
In the below, I wonder if it's worth to support Lua 5.1 at all.
Supporting Luajit would make the whole thing a lot simpler, no? Do we
really care enough to offer the possibility of using Lua instead of
Luajit, when recent versions of Lua are in fact not supported?
> diff --git a/package/efl/Config.in b/package/efl/Config.in
> index 88e2c36..0851961 100644
> --- a/package/efl/Config.in
> +++ b/package/efl/Config.in
> @@ -2,8 +2,10 @@ config BR2_PACKAGE_EFL
> bool "efl"
> depends on BR2_INSTALL_LIBSTDCPP
> depends on BR2_PACKAGE_HAS_UDEV # libudev
> + depends on BR2_PACKAGE_HAS_LUAINTERPRETER # luajit or Lua 5.1
> # https://phab.enlightenment.org/T2728
> - depends on BR2_PACKAGE_LUA_5_1 # needs lua 5.1, broken with 5.2+
> + depends on !BR2_PACKAGE_LUA_5_2 # broken with 5.2+
> + depends on !BR2_PACKAGE_LUA_5_3 # broken with 5.2+
I'd prefer:
depends on BR2_PACKAGE_HAS_LUAINTERPRETER && \
!BR2_PACKAGE_LUA_5_2 && !BR2_PACKAGE_LUA_5_3
> depends on BR2_TOOLCHAIN_HAS_THREADS # untested without threads
> depends on BR2_USE_MMU
> depends on BR2_USE_WCHAR # use wchar_t
> @@ -186,6 +188,11 @@ comment "efl needs udev /dev management and a toolchain w/ C++, dynamic library,
> || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
> depends on BR2_USE_MMU
>
> -comment "efl needs lua 5.1"
> - depends on !BR2_PACKAGE_LUA_5_1
> +comment "efl needs a lua interpreter (luajit or lua 5.1)"
> + depends on !BR2_PACKAGE_HAS_LUAINTERPRETER
> + depends on BR2_USE_MMU
> +
> +comment "efl needs Lua 5.1"
> + depends on BR2_PACKAGE_LUA_5_2 # broken with 5.2+
> + depends on BR2_PACKAGE_LUA_5_3 # broken with 5.2+
> depends on BR2_USE_MMU
I don't think two comments are needed. Only one is enough:
comment "elf needs a lua interpreter (luajit or lua 5.1)"
depends on BR2_USE_MMU
depends on !BR2_PACKAGE_HAS_LUAINTERPRETER || \
BR2_PACKAGE_LUA_5_2 || BR2_PACKAGE_LUA_5_3
> +# We need to build Elua for the host to enable luajit support for the target.
> +# --disable-lua-old: build elua for the target.
> +# --enable-lua-old: disable Elua and remove luajit dependency.
> +ifeq ($(BR2_PACKAGE_LUAJIT),y)
> +EFL_CONF_OPTS += --disable-lua-old
> +else
> +EFL_CONF_OPTS += --enable-lua-old
> +endif
I must say I don't really understand this comment, and why you're
adding --disable-lua-old/--enable-lua-old to both the target and host
EFL configure options, in both cases depending on BR2_PACKAGE_LUAJIT.
Here, you are saying "We need to build Elua for the host", but the
below code is changing the configuration options for the target variant
of EFL, which looks weird.
> +# If luajit is enabled for the target, we need to build Elua for the host.
> +# --disable-lua-old: build elua for the host.
> +# --enable-lua-old: disable Elua and remove luajit dependency.
> +ifeq ($(BR2_PACKAGE_LUAJIT),y)
> +HOST_EFL_CONF_OPTS += --disable-lua-old
> +else
> +HOST_EFL_CONF_OPTS += --enable-lua-old
> +endif
Ditto.
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
More information about the buildroot
mailing list