diff options
Diffstat (limited to 'Build/source/libs/luajit/TLpatches')
16 files changed, 259 insertions, 288 deletions
diff --git a/Build/source/libs/luajit/TLpatches/ChangeLog b/Build/source/libs/luajit/TLpatches/ChangeLog index b74ee1d6be4..2e29cb46ab0 100644 --- a/Build/source/libs/luajit/TLpatches/ChangeLog +++ b/Build/source/libs/luajit/TLpatches/ChangeLog @@ -1,3 +1,8 @@ +2017-20-06 Luigi Scarso <luigi.scarso@gmail.com> + * Luajit-2.1.0-beta3 + * Removed lj_bcdef.h, lj_ffdef.h, lj_folddef.h, lj_libdef.h + lj_recdef.h, they are generated at building time. + 2016-03-07 Luigi Scarso <luigi.scarso@gmail.com> Luajit-2.1.0-beta2 diff --git a/Build/source/libs/luajit/TLpatches/patch-01 b/Build/source/libs/luajit/TLpatches/patch-01 new file mode 100644 index 00000000000..7fcb2cadf0b --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-01 @@ -0,0 +1,21 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/Makefile LuaJIT-2.1.0-beta3/src/Makefile +--- LuaJIT-2.1.0-beta3-orig/src/Makefile 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/Makefile 2017-06-16 17:14:56.792102569 +0200 +@@ -99,7 +99,7 @@ + # enabled by default. Some other features that *might* break some existing + # code (e.g. __pairs or os.execute() return values) can be enabled here. + # Note: this does not provide full compatibility with Lua 5.2 at this time. +-#XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT ++XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT + # + # Disable the JIT compiler, i.e. turn LuaJIT into a pure interpreter. + #XCFLAGS+= -DLUAJIT_DISABLE_JIT +@@ -475,7 +475,7 @@ + LJVM_BOUT= $(LJVM_S) + LJVM_MODE= elfasm + +-LJLIB_O= lib_base.o lib_math.o lib_bit.o lib_string.o lib_table.o \ ++LJLIB_O= lib_base.o lib_math.o lbitlib.o lib_bit.o lib_string.o lib_table.o \ + lib_io.o lib_os.o lib_package.o lib_debug.o lib_jit.o lib_ffi.o + LJLIB_C= $(LJLIB_O:.o=.c) + diff --git a/Build/source/libs/luajit/TLpatches/patch-01-LuaJITTeX b/Build/source/libs/luajit/TLpatches/patch-01-LuaJITTeX deleted file mode 100644 index 2e8220e0c36..00000000000 --- a/Build/source/libs/luajit/TLpatches/patch-01-LuaJITTeX +++ /dev/null @@ -1,221 +0,0 @@ -diff -bur LuaJIT-src-orig/src/lauxlib.h LuaJIT-src/src/lauxlib.h ---- LuaJIT-src-orig/src/lauxlib.h 2016-03-07 09:43:42.708069718 +0100 -+++ LuaJIT-src/src/lauxlib.h 2016-03-04 16:52:23.000000000 +0100 -@@ -86,6 +86,32 @@ - int level); - - -+ -+/* -+** {====================================================== -+** File handles for IO library -+** ======================================================= -+*/ -+ -+/* -+** A file handle is a userdata with metatable 'LUA_FILEHANDLE' and -+** initial structure 'luaL_Stream' (it may contain other fields -+** after that initial structure). -+*/ -+ -+#define LUA_FILEHANDLE "FILE*" -+ -+ -+typedef struct luaL_Stream { -+ FILE *f; /* stream (NULL for incompletely created streams) */ -+ lua_CFunction closef; /* to close stream (NULL for closed streams) */ -+} luaL_Stream; -+ -+/* }====================================================== */ -+ -+ -+ -+ - /* - ** =============================================================== - ** some useful macros -@@ -144,6 +170,8 @@ - LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); - LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); - -+/* Luajittex needs this one because it overloads loadfile */ -+LUALIB_API int (RESERVED_load_aux_JIT) (lua_State *L, int status, int envarg); - - /* }====================================================== */ - -diff -bur LuaJIT-src-orig/src/lib_init.c LuaJIT-src/src/lib_init.c ---- LuaJIT-src-orig/src/lib_init.c 2016-03-07 09:43:42.720069718 +0100 -+++ LuaJIT-src/src/lib_init.c 2016-03-07 11:47:15.847946480 +0100 -@@ -26,6 +26,7 @@ - { LUA_DBLIBNAME, luaopen_debug }, - { LUA_BITLIBNAME, luaopen_bit }, - { LUA_JITLIBNAME, luaopen_jit }, -+ { LUA_BITLIBNAME_32, luaopen_bit32 }, - { NULL, NULL } - }; - -diff -bur LuaJIT-src-orig/src/lib_package.c LuaJIT-src/src/lib_package.c ---- LuaJIT-src-orig/src/lib_package.c 2016-03-07 09:43:42.712069718 +0100 -+++ LuaJIT-src/src/lib_package.c 2016-03-07 11:49:15.655944489 +0100 -@@ -362,6 +362,29 @@ - return 1; /* library loaded successfully */ - } - -+#define LUA_POF "luaopen_" -+#define LUA_OFSEP "_" -+#define POF LUA_POF -+ -+static const char *mkfuncname (lua_State *L, const char *modname) { -+ const char *funcname; -+ const char *mark = strchr(modname, *LUA_IGMARK); -+ if (mark) modname = mark + 1; -+ funcname = luaL_gsub(L, modname, ".", LUA_OFSEP); -+ funcname = lua_pushfstring(L, POF"%s", funcname); -+ lua_remove(L, -2); /* remove 'gsub' result */ -+ return funcname; -+} -+ -+ -+int loader_C_luatex (lua_State *L, const char *name, const char *filename) { -+ const char *funcname; -+ funcname = mkfuncname(L, name); -+ if (ll_loadfunc(L, filename, funcname,0) != 0) -+ loaderror(L, filename); -+ return 1; /* library loaded successfully */ -+} -+ - static int lj_cf_package_loader_croot(lua_State *L) - { - const char *filename; -@@ -381,6 +404,21 @@ - return 1; - } - -+int loader_Call_luatex (lua_State *L, const char *name, const char *filename) { -+ const char *funcname; -+ int stat; -+ if (filename == NULL) return 1; /* root not found */ -+ funcname = mkfuncname(L, name); -+ if ((stat = ll_loadfunc(L, filename, funcname,0)) != 0) { -+ if (stat != PACKAGE_ERR_FUNC) loaderror(L, filename); /* real error */ -+ lua_pushfstring(L, "\n\tno module " LUA_QS " in file " LUA_QS, -+ name, filename); -+ return 1; /* function not found */ -+ } -+ return 1; /* library loaded successfully */ -+} -+ -+ - static int lj_cf_package_loader_preload(lua_State *L) - { - const char *name = luaL_checkstring(L, 1); - -diff -bur LuaJIT-src-orig/src/lj_load.c LuaJIT-src/src/lj_load.c ---- LuaJIT-src-orig/src/lj_load.c 2016-03-07 09:43:42.716069718 +0100 -+++ LuaJIT-src/src/lj_load.c 2016-03-07 12:09:10.771924621 +0100 -@@ -166,3 +166,19 @@ - return 1; - } - -+/* -- Luajittex needs this one because it overloads loadfile -- */ -+LUALIB_API int RESERVED_load_aux_JIT(lua_State *L, int status, int envarg) -+{ -+ if (status == 0) { -+ if (tvistab(L->base+envarg-1)) { -+ GCfunc *fn = funcV(L->top-1); -+ GCtab *t = tabV(L->base+envarg-1); -+ setgcref(fn->c.env, obj2gco(t)); -+ lj_gc_objbarrier(L, fn, t); -+ } -+ return 1; -+ } else { -+ setnilV(L->top-2); -+ return 2; -+ } -+} - -diff -bur LuaJIT-src-orig/src/lua.h LuaJIT-src/src/lua.h ---- LuaJIT-src-orig/src/lua.h 2016-03-07 09:43:42.716069718 +0100 -+++ LuaJIT-src/src/lua.h 2016-03-07 11:56:24.855937353 +0100 -@@ -103,6 +103,9 @@ - typedef LUA_INTEGER lua_Integer; - - -+/* communication with LuaJiTTeX */ -+LUA_API int luajittex_choose_hash_function; -+ - - /* - ** state manipulation -@@ -349,6 +352,16 @@ - const char *chunkname, const char *mode); - - -+#define LUA_OPEQ 0 -+#define LUA_OPLT 1 -+#define LUA_OPLE 2 -+#define LUA_OK 0 -+ -+/* see http://comments.gmane.org/gmane.comp.programming.swig/18673 */ -+# define lua_rawlen lua_objlen -+ -+ -+ - struct lua_Debug { - int event; - const char *name; /* (n) */ - -diff -bur LuaJIT-src-orig/src/lualib.h LuaJIT-src/src/lualib.h ---- LuaJIT-src-orig/src/lualib.h 2016-03-07 09:43:42.724069718 +0100 -+++ LuaJIT-src/src/lualib.h 2016-03-07 11:58:19.151935453 +0100 -@@ -22,6 +22,8 @@ - #define LUA_JITLIBNAME "jit" - #define LUA_FFILIBNAME "ffi" - -+#define LUA_BITLIBNAME_32 "bit32" -+ - LUALIB_API int luaopen_base(lua_State *L); - LUALIB_API int luaopen_math(lua_State *L); - LUALIB_API int luaopen_string(lua_State *L); -@@ -34,6 +36,8 @@ - LUALIB_API int luaopen_jit(lua_State *L); - LUALIB_API int luaopen_ffi(lua_State *L); - -+LUALIB_API int luaopen_bit32(lua_State *L); -+ - LUALIB_API void luaL_openlibs(lua_State *L); - - #ifndef lua_assert - -diff -bur LuaJIT-src-orig/src/Makefile LuaJIT-src/src/Makefile ---- LuaJIT-src-orig/src/Makefile 2016-03-07 09:43:42.716069718 +0100 -+++ LuaJIT-src/src/Makefile 2016-03-07 12:02:42.319931078 +0100 -@@ -99,7 +99,7 @@ - # enabled by default. Some other features that *might* break some existing - # code (e.g. __pairs or os.execute() return values) can be enabled here. - # Note: this does not provide full compatibility with Lua 5.2 at this time. --#XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT -+XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT - # - # Disable the JIT compiler, i.e. turn LuaJIT into a pure interpreter. - #XCFLAGS+= -DLUAJIT_DISABLE_JIT -@@ -471,7 +471,7 @@ - LJVM_BOUT= $(LJVM_S) - LJVM_MODE= elfasm - --LJLIB_O= lib_base.o lib_math.o lib_bit.o lib_string.o lib_table.o \ -+LJLIB_O= lib_base.o lib_math.o lbitlib.o lib_bit.o lib_string.o lib_table.o \ - lib_io.o lib_os.o lib_package.o lib_debug.o lib_jit.o lib_ffi.o - LJLIB_C= $(LJLIB_O:.o=.c) - -diff -bur LuaJIT-src-orig/src/Makefile.dep LuaJIT-src/src/Makefile.dep ---- LuaJIT-src-orig/src/Makefile.dep 2016-03-07 09:43:42.696069718 +0100 -+++ LuaJIT-src/src/Makefile.dep 2016-03-07 12:05:19.343928468 +0100 -@@ -6,6 +6,7 @@ - lj_tab.h lj_meta.h lj_state.h lj_ctype.h lj_cconv.h lj_bc.h lj_ff.h \ - lj_ffdef.h lj_dispatch.h lj_jit.h lj_ir.h lj_char.h lj_strscan.h \ - lj_strfmt.h lj_lib.h lj_libdef.h -+lbitlib.o: lbitlib.c lua.h luaconf.h lauxlib.h lualib.h - lib_bit.o: lib_bit.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ - lj_arch.h lj_err.h lj_errmsg.h lj_buf.h lj_gc.h lj_str.h lj_strscan.h \ - lj_strfmt.h lj_ctype.h lj_cdata.h lj_cconv.h lj_carith.h lj_ff.h \ diff --git a/Build/source/libs/luajit/TLpatches/patch-02 b/Build/source/libs/luajit/TLpatches/patch-02 new file mode 100644 index 00000000000..2f75f8b84f5 --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-02 @@ -0,0 +1,11 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/Makefile.dep LuaJIT-2.1.0-beta3/src/Makefile.dep +--- LuaJIT-2.1.0-beta3-orig/src/Makefile.dep 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/Makefile.dep 2017-06-16 18:35:00.582631351 +0200 +@@ -6,6 +6,7 @@ + lj_tab.h lj_meta.h lj_state.h lj_frame.h lj_bc.h lj_ctype.h lj_cconv.h \ + lj_ff.h lj_ffdef.h lj_dispatch.h lj_jit.h lj_ir.h lj_char.h lj_strscan.h \ + lj_strfmt.h lj_lib.h lj_libdef.h ++lbitlib.o: lbitlib.c lua.h luaconf.h lauxlib.h lualib.h + lib_bit.o: lib_bit.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ + lj_arch.h lj_err.h lj_errmsg.h lj_buf.h lj_gc.h lj_str.h lj_strscan.h \ + lj_strfmt.h lj_ctype.h lj_cdata.h lj_cconv.h lj_carith.h lj_ff.h \ diff --git a/Build/source/libs/luajit/TLpatches/patch-03 b/Build/source/libs/luajit/TLpatches/patch-03 new file mode 100644 index 00000000000..0caddf8bfd4 --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-03 @@ -0,0 +1,12 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/host/buildvm.c LuaJIT-2.1.0-beta3/src/host/buildvm.c +--- LuaJIT-2.1.0-beta3-orig/src/host/buildvm.c 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/host/buildvm.c 2017-06-16 18:56:14.538560987 +0200 +@@ -113,7 +113,7 @@ + name[0] = name[1] == 'R' ? '_' : '@'; /* Just for _RtlUnwind@16. */ + else + *p = '\0'; +-#elif LJ_TARGET_PPC && !LJ_TARGET_CONSOLE ++#elif LJ_TARGET_PPC && !LJ_TARGET_OSX && !LJ_TARGET_CONSOLE + /* Keep @plt etc. */ + #else + *p = '\0'; diff --git a/Build/source/libs/luajit/TLpatches/patch-04 b/Build/source/libs/luajit/TLpatches/patch-04 new file mode 100644 index 00000000000..83881026a1d --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-04 @@ -0,0 +1,44 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/lauxlib.h LuaJIT-2.1.0-beta3/src/lauxlib.h +--- LuaJIT-2.1.0-beta3-orig/src/lauxlib.h 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/lauxlib.h 2017-06-16 19:12:18.325405265 +0200 +@@ -92,6 +92,31 @@ + LUALIB_API void (luaL_setmetatable) (lua_State *L, const char *tname); + + ++ ++/* ++** {====================================================== ++** File handles for IO library ++** ======================================================= ++*/ ++ ++/* ++** A file handle is a userdata with metatable 'LUA_FILEHANDLE' and ++** initial structure 'luaL_Stream' (it may contain other fields ++** after that initial structure). ++*/ ++ ++#define LUA_FILEHANDLE "FILE*" ++ ++ ++typedef struct luaL_Stream { ++ FILE *f; /* stream (NULL for incompletely created streams) */ ++ lua_CFunction closef; /* to close stream (NULL for closed streams) */ ++} luaL_Stream; ++ ++/* }====================================================== */ ++ ++ ++ + /* + ** =============================================================== + ** some useful macros +@@ -155,6 +180,8 @@ + LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); + LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); + ++/* Luajittex needs this one because it overloads loadfile */ ++LUALIB_API int (RESERVED_load_aux_JIT) (lua_State *L, int status, int envarg); + + /* }====================================================== */ + diff --git a/Build/source/libs/luajit/TLpatches/patch-05 b/Build/source/libs/luajit/TLpatches/patch-05 new file mode 100644 index 00000000000..6014f5597c1 --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-05 @@ -0,0 +1,11 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/lib_init.c LuaJIT-2.1.0-beta3/src/lib_init.c +--- LuaJIT-2.1.0-beta3-orig/src/lib_init.c 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/lib_init.c 2017-06-16 19:19:00.352961298 +0200 +@@ -26,6 +26,7 @@ + { LUA_DBLIBNAME, luaopen_debug }, + { LUA_BITLIBNAME, luaopen_bit }, + { LUA_JITLIBNAME, luaopen_jit }, ++ { LUA_BITLIBNAME_32, luaopen_bit32 }, + { NULL, NULL } + }; + diff --git a/Build/source/libs/luajit/TLpatches/patch-06 b/Build/source/libs/luajit/TLpatches/patch-06 new file mode 100644 index 00000000000..8786dd4d621 --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-06 @@ -0,0 +1,53 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/lib_package.c LuaJIT-2.1.0-beta3/src/lib_package.c +--- LuaJIT-2.1.0-beta3-orig/src/lib_package.c 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/lib_package.c 2017-06-19 16:54:20.092831408 +0200 +@@ -361,6 +361,28 @@ + return 1; /* library loaded successfully */ + } + ++#define LUA_POF "luaopen_" ++#define LUA_OFSEP "_" ++#define POF LUA_POF ++ ++static const char *mkfuncname (lua_State *L, const char *modname) { ++ const char *funcname; ++ const char *mark = strchr(modname, *LUA_IGMARK); ++ if (mark) modname = mark + 1; ++ funcname = luaL_gsub(L, modname, ".", LUA_OFSEP); ++ funcname = lua_pushfstring(L, POF"%s", funcname); ++ lua_remove(L, -2); /* remove 'gsub' result */ ++ return funcname; ++} ++ ++int loader_C_luatex (lua_State *L, const char *name, const char *filename) { ++ const char *funcname; ++ funcname = mkfuncname(L, name); ++ if (ll_loadfunc(L, filename, funcname,0) != 0) ++ loaderror(L, filename); ++ return 1; /* library loaded successfully */ ++} ++ + static int lj_cf_package_loader_croot(lua_State *L) + { + const char *filename; +@@ -380,6 +402,20 @@ + return 1; + } + ++int loader_Call_luatex (lua_State *L, const char *name, const char *filename) { ++ const char *funcname; ++ int stat; ++ if (filename == NULL) return 1; /* root not found */ ++ funcname = mkfuncname(L, name); ++ if ((stat = ll_loadfunc(L, filename, funcname,0)) != 0) { ++ if (stat != PACKAGE_ERR_FUNC) loaderror(L, filename); /* real error */ ++ lua_pushfstring(L, "\n\tno module " LUA_QS " in file " LUA_QS, ++ name, filename); ++ return 1; /* function not found */ ++ } ++ return 1; /* library loaded successfully */ ++} ++ + static int lj_cf_package_loader_preload(lua_State *L) + { + const char *name = luaL_checkstring(L, 1); diff --git a/Build/source/libs/luajit/TLpatches/patch-06-ppc-darwin b/Build/source/libs/luajit/TLpatches/patch-06-ppc-darwin deleted file mode 100644 index cc4855ea8de..00000000000 --- a/Build/source/libs/luajit/TLpatches/patch-06-ppc-darwin +++ /dev/null @@ -1,25 +0,0 @@ -diff -bur LuaJIT-src-orig/src/host/buildvm.c LuaJIT-src/src/host/buildvm.c ---- LuaJIT-src-orig/src/host/buildvm.c 2016-03-07 09:43:42.728069718 +0100 -+++ LuaJIT-src/src/host/buildvm.c 2016-03-07 12:29:03.891904786 +0100 -@@ -113,7 +113,7 @@ - name[0] = '@'; - else - *p = '\0'; --#elif LJ_TARGET_PPC && !LJ_TARGET_CONSOLE -+#elif LJ_TARGET_PPC && !LJ_TARGET_OSX && !LJ_TARGET_CONSOLE - /* Keep @plt etc. */ - #else - *p = '\0'; - -diff -bur LuaJIT-src-orig/src/lj_arch.h LuaJIT-src/src/lj_arch.h ---- LuaJIT-src-orig/src/lj_arch.h 2016-03-07 09:43:42.712069718 +0100 -+++ LuaJIT-src/src/lj_arch.h 2016-03-07 12:31:33.351902301 +0100 -@@ -350,7 +350,7 @@ - #if __GNUC__ < 4 - #error "Need at least GCC 4.0 or newer" - #endif --#elif LJ_TARGET_ARM -+#elif LJ_TARGET_ARM || LJ_TARGET_PPC - #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 2) - #error "Need at least GCC 4.2 or newer" - #endif diff --git a/Build/source/libs/luajit/TLpatches/patch-07 b/Build/source/libs/luajit/TLpatches/patch-07 new file mode 100644 index 00000000000..f37d1ded06d --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-07 @@ -0,0 +1,12 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/lj_arch.h LuaJIT-2.1.0-beta3/src/lj_arch.h +--- LuaJIT-2.1.0-beta3-orig/src/lj_arch.h 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/lj_arch.h 2017-06-19 17:51:41.683624004 +0200 +@@ -376,7 +376,7 @@ + #if __GNUC__ < 4 + #error "Need at least GCC 4.0 or newer" + #endif +-#elif LJ_TARGET_ARM ++#elif LJ_TARGET_ARM || LJ_TARGET_PPC + #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 2) + #error "Need at least GCC 4.2 or newer" + #endif diff --git a/Build/source/libs/luajit/TLpatches/patch-07-x86_64-cygwin b/Build/source/libs/luajit/TLpatches/patch-07-x86_64-cygwin deleted file mode 100644 index 4b278dd2c99..00000000000 --- a/Build/source/libs/luajit/TLpatches/patch-07-x86_64-cygwin +++ /dev/null @@ -1,12 +0,0 @@ -diff -bur LuaJIT-src-orig/src/lj_arch.h LuaJIT-src/src/lj_arch.h ---- LuaJIT-src-orig/src/lj_arch.h 2016-03-07 09:43:42.712069718 +0100 -+++ LuaJIT-src/src/lj_arch.h 2016-03-07 12:31:33.351902301 +0100 -@@ -350,7 +350,7 @@ - #if __GNUC__ < 4 - #error "Need at least GCC 4.0 or newer" - #endif --#elif LJ_TARGET_ARM -+#elif LJ_TARGET_ARM || LJ_TARGET_PPC - #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 2) - #error "Need at least GCC 4.2 or newer" - #endif diff --git a/Build/source/libs/luajit/TLpatches/patch-08 b/Build/source/libs/luajit/TLpatches/patch-08 new file mode 100644 index 00000000000..80a214fb39d --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-08 @@ -0,0 +1,12 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/lj_def.h LuaJIT-2.1.0-beta3/src/lj_def.h +--- LuaJIT-2.1.0-beta3-orig/src/lj_def.h 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/lj_def.h 2017-06-19 17:52:54.085933629 +0200 +@@ -66,7 +66,7 @@ + #define LJ_MAX_BCINS (1<<26) /* Max. # of bytecode instructions. */ + #define LJ_MAX_SLOTS 250 /* Max. # of slots in a Lua func. */ + #define LJ_MAX_LOCVAR 200 /* Max. # of local variables. */ +-#define LJ_MAX_UPVAL 60 /* Max. # of upvalues. */ ++#define LJ_MAX_UPVAL 249 /* Max. # of upvalues. */ + + #define LJ_MAX_IDXCHAIN 100 /* __index/__newindex chain limit. */ + #define LJ_STACK_EXTRA (5+2*LJ_FR2) /* Extra stack space (metamethods). */ diff --git a/Build/source/libs/luajit/TLpatches/patch-09 b/Build/source/libs/luajit/TLpatches/patch-09 new file mode 100644 index 00000000000..312031f36f2 --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-09 @@ -0,0 +1,26 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/lj_load.c LuaJIT-2.1.0-beta3/src/lj_load.c +--- LuaJIT-2.1.0-beta3-orig/src/lj_load.c 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/lj_load.c 2017-06-19 18:05:35.864190001 +0200 +@@ -166,3 +166,22 @@ + return 1; + } + ++ ++ ++/* -- Luajittex needs this one because it overloads loadfile -- */ ++LUALIB_API int RESERVED_load_aux_JIT(lua_State *L, int status, int envarg) ++{ ++ if (status == 0) { ++ if (tvistab(L->base+envarg-1)) { ++ GCfunc *fn = funcV(L->top-1); ++ GCtab *t = tabV(L->base+envarg-1); ++ setgcref(fn->c.env, obj2gco(t)); ++ lj_gc_objbarrier(L, fn, t); ++ } ++ return 1; ++ } else { ++ setnilV(L->top-2); ++ return 2; ++ } ++} ++ diff --git a/Build/source/libs/luajit/TLpatches/patch-05-LuaJITTeX b/Build/source/libs/luajit/TLpatches/patch-10 index 884d3392bf7..840f154b1dd 100644 --- a/Build/source/libs/luajit/TLpatches/patch-05-LuaJITTeX +++ b/Build/source/libs/luajit/TLpatches/patch-10 @@ -1,19 +1,6 @@ -diff -bur LuaJIT-src-orig/src/lj_def.h LuaJIT-src/src/lj_def.h ---- LuaJIT-src-orig/src/lj_def.h 2016-03-07 09:43:42.728069718 +0100 -+++ LuaJIT-src/src/lj_def.h 2016-03-07 12:23:43.327910115 +0100 -@@ -66,7 +66,7 @@ - #define LJ_MAX_BCINS (1<<26) /* Max. # of bytecode instructions. */ - #define LJ_MAX_SLOTS 250 /* Max. # of slots in a Lua func. */ - #define LJ_MAX_LOCVAR 200 /* Max. # of local variables. */ --#define LJ_MAX_UPVAL 60 /* Max. # of upvalues. */ -+#define LJ_MAX_UPVAL 249 /* Max. # of upvalues. */ - - #define LJ_MAX_IDXCHAIN 100 /* __index/__newindex chain limit. */ - #define LJ_STACK_EXTRA (5+2*LJ_FR2) /* Extra stack space (metamethods). */ - -diff -bur LuaJIT-src-orig/src/lj_str.c LuaJIT-src/src/lj_str.c ---- LuaJIT-src-orig/src/lj_str.c 2016-03-07 09:43:42.696069718 +0100 -+++ LuaJIT-src/src/lj_str.c 2016-03-07 12:25:22.031908474 +0100 +diff -bur LuaJIT-2.1.0-beta3-orig/src/lj_str.c LuaJIT-2.1.0-beta3/src/lj_str.c +--- LuaJIT-2.1.0-beta3-orig/src/lj_str.c 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/lj_str.c 2017-06-19 18:20:09.668443066 +0200 @@ -118,6 +118,16 @@ g->strhash = newhash; } @@ -70,17 +57,3 @@ diff -bur LuaJIT-src-orig/src/lj_str.c LuaJIT-src/src/lj_str.c /* Check if the string has already been interned. */ o = gcref(g->strhash[h & g->strmask]); if (LJ_LIKELY((((uintptr_t)str+len-1) & (LJ_PAGESIZE-1)) <= LJ_PAGESIZE-4)) { - -diff -bur LuaJIT-src-orig/src/lj_err.c LuaJIT-src/src/lj_err.c ---- LuaJIT-src-orig/src/lj_err.c 2016-03-15 12:06:56.844436191 +0100 -+++ LuaJIT-src/src/lj_err.c 2016-03-15 11:58:30.000000000 +0100 -@@ -310,7 +310,6 @@ - #define _US_FORCE_UNWIND 8 - - typedef struct _Unwind_Control_Block _Unwind_Control_Block; --typedef struct _Unwind_Context _Unwind_Context; - - struct _Unwind_Control_Block { - uint64_t exclass; - - diff --git a/Build/source/libs/luajit/TLpatches/patch-11 b/Build/source/libs/luajit/TLpatches/patch-11 new file mode 100644 index 00000000000..b4b187813fc --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-11 @@ -0,0 +1,28 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/lua.h LuaJIT-2.1.0-beta3/src/lua.h +--- LuaJIT-2.1.0-beta3-orig/src/lua.h 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/lua.h 2017-06-19 18:26:51.143299683 +0200 +@@ -103,7 +103,8 @@ + /* type for integer functions */ + typedef LUA_INTEGER lua_Integer; + +- ++/* communication with LuaJiTTeX */ ++LUA_API int luajittex_choose_hash_function; + + /* + ** state manipulation +@@ -353,6 +354,14 @@ + LUA_API lua_Number lua_tonumberx (lua_State *L, int idx, int *isnum); + LUA_API lua_Integer lua_tointegerx (lua_State *L, int idx, int *isnum); + ++ ++#define LUA_OPEQ 0 ++#define LUA_OPLT 1 ++#define LUA_OPLE 2 ++ ++/* see http://comments.gmane.org/gmane.comp.programming.swig/18673 */ ++# define lua_rawlen lua_objlen ++ + /* From Lua 5.3. */ + LUA_API int lua_isyieldable (lua_State *L); + diff --git a/Build/source/libs/luajit/TLpatches/patch-12 b/Build/source/libs/luajit/TLpatches/patch-12 new file mode 100644 index 00000000000..27be2c8cdaa --- /dev/null +++ b/Build/source/libs/luajit/TLpatches/patch-12 @@ -0,0 +1,21 @@ +diff -bur LuaJIT-2.1.0-beta3-orig/src/lualib.h LuaJIT-2.1.0-beta3/src/lualib.h +--- LuaJIT-2.1.0-beta3-orig/src/lualib.h 2017-05-01 21:05:00.000000000 +0200 ++++ LuaJIT-2.1.0-beta3/src/lualib.h 2017-06-19 18:27:55.065836605 +0200 +@@ -22,6 +22,8 @@ + #define LUA_JITLIBNAME "jit" + #define LUA_FFILIBNAME "ffi" + ++#define LUA_BITLIBNAME_32 "bit32" ++ + LUALIB_API int luaopen_base(lua_State *L); + LUALIB_API int luaopen_math(lua_State *L); + LUALIB_API int luaopen_string(lua_State *L); +@@ -34,6 +36,8 @@ + LUALIB_API int luaopen_jit(lua_State *L); + LUALIB_API int luaopen_ffi(lua_State *L); + ++LUALIB_API int luaopen_bit32(lua_State *L); ++ + LUALIB_API void luaL_openlibs(lua_State *L); + + #ifndef lua_assert |