| From 7f9fcbd827295df72b15466fd3c47589d52117b9 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks> |
| Date: Wed, 31 Oct 2018 18:22:31 +0100 |
| Subject: [PATCH] Add missing define for luaL_newlib for Lua 5.1 |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| Since commit c286f3b741d0968fd1c49c28da83bc723468ecba, which bumped the |
| library luv to version 1.22.0-1, building luvi fails. |
| |
| The reason for this error is, that instead of defining Lua 5.3 API itself, |
| luv now [1] uses lua-compat-5.3 [1,2] for providing a Lua 5.3 API. |
| |
| Unfortunately, upstreams "luv.h" now exposes "compat-5.3.h" directly, causing |
| redefinition errors when building luvi 2.7.6 (as well as latest release 2.8.0) |
| with luv 1.22.0-1. Instead, "compat-5.3.h" should only be included in "luv.c", |
| which is addressed in patching luv (Patch: "Do not include compat-5.3.h in luv |
| header file"). |
| |
| Patching luv reveals an issue in luvi itself, as it is using the Lua 5.3 API, |
| without defining the Lua 5.3 itself, nor using lua-compat-5.3. Instead, it was |
| using the definition provided by the "luv.h" file in luv versions before 1.22.0. |
| |
| Correctly, luvi should define the necessary Lua 5.3 itself, which is done by |
| this patch, by providing a definition for `luaL_newlib`. |
| |
| Note, that this patch is not upstreamable, as upstream already switched to |
| using lua-compat-5.3 [3,4]. However, backporting this patch set is to much of a |
| burden, so we keep it simple, by just defining `luaL_newlib`. |
| |
| [1] https://github.com/luvit/luv/commit/34ada3e1d75796d2295ec54f3f20b3e2abf93406 |
| [2] https://github.com/keplerproject/lua-compat-5.3 |
| [3] https://github.com/luvit/luvi/commit/3a444d183d2fde91b6c2f3798b37881cdaa29691 |
| [4] https://github.com/luvit/luvi/commit/0376894bae7c1c3bee42ddad65e824da9cccdada |
| |
| Signed-off-by: Jรถrg Krause <joerg.krause@embedded.rocks> |
| --- |
| src/luvi.h | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/src/luvi.h b/src/luvi.h |
| index e7558b3..ceca2b9 100644 |
| --- a/src/luvi.h |
| +++ b/src/luvi.h |
| @@ -52,6 +52,12 @@ int luaopen_lpeg(lua_State* L); |
| #endif |
| #endif |
| |
| +#if LUA_VERSION_NUM < 502 |
| +#ifndef luaL_newlib |
| +# define luaL_newlib(L,l) (lua_newtable(L), luaL_register(L,NULL,l)) |
| +#endif |
| +#endif |
| + |
| #if (LUA_VERSION_NUM >= 502) |
| # undef luaL_register |
| # define luaL_register(L,n,f) \ |
| -- |
| 2.19.1 |
| |