From 7f9fcbd827295df72b15466fd3c47589d52117b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= 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 --- 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