Patch: update libubox to compile against lua-5.3
Ed W
lists at wildgooses.com
Mon Dec 14 09:20:56 EST 2020
Hi, I was interested to use uqmi in another project using gentoo, so I needed to create an ebuild
package. I'm using lua-5.3, so I hit some compile errors with libubox
Now, I sense that you are unlikely to upgrade your lua anytime soon, but these changes seem pretty
trivial and I think with a wrapper for "luaL_setfuncs" which does something like the following you
should be able to support all versions of lua 5.1-5.4?
#if LUA_VERSION_NUM < 502
# define luaL_setfuncs(L,l,nup) luaI_openlib(L,NULL,l,nup)
#endif
I'm not really a lua guy though... Just know enough to shoot foot off..
Could someone please take a look at this and perhaps smooth it off to ensure it works with your
existing lua5.1 as well?
Signed-off-by: Ed Wildgoose <lists at wildgooses.com>
--- a/lua/uloop.c 2020-12-14 14:00:27.826908981 +0000
+++ b/lua/uloop.c 2020-12-14 14:00:43.478066405 +0000
@@ -57,7 +57,7 @@
lua_pushvalue(L, -1);
lua_setmetatable(L, -3);
lua_pushvalue(L, -2);
- luaI_openlib(L, NULL, reg, 1);
+ luaL_setfuncs(L, reg, 1);
lua_pushvalue(L, -2);
return ret;
@@ -341,8 +341,8 @@
if (pid == 0) {
/* child */
- int argn = lua_objlen(L, -3);
- int envn = lua_objlen(L, -2);
+ int argn = lua_rawlen(L, -3);
+ int envn = lua_rawlen(L, -2);
char** argp = malloc(sizeof(char*) * (argn + 2));
char** envp = malloc(sizeof(char*) * (envn + 1));
int i = 1;
@@ -404,7 +404,7 @@
return 1;
}
-static luaL_reg uloop_func[] = {
+static luaL_Reg uloop_func[] = {
{"init", ul_init},
{"run", ul_run},
{"timer", ul_timer},
@@ -428,7 +428,11 @@
lua_createtable(L, 1, 0);
lua_setglobal(L, "__uloop_fds");
- luaL_openlib(L, "uloop", uloop_func, 0);
+ //luaL_openlib(L, "uloop", uloop_func, 0);
+ lua_newtable(L);
+ luaL_setfuncs(L, uloop_func, 0);
+ lua_setglobal(L, "uloop");
+
lua_pushstring(L, "_VERSION");
lua_pushstring(L, "1.0");
lua_rawset(L, -3);
More information about the openwrt-devel
mailing list