Initial commit
This commit is contained in:
3747
package/utils/lua/patches-host/010-lua-5.1.3-lnum-full-260308.patch
Normal file
3747
package/utils/lua/patches-host/010-lua-5.1.3-lnum-full-260308.patch
Normal file
File diff suppressed because it is too large
Load Diff
11
package/utils/lua/patches-host/011-lnum-use-double.patch
Normal file
11
package/utils/lua/patches-host/011-lnum-use-double.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/src/lnum_config.h
|
||||
+++ b/src/lnum_config.h
|
||||
@@ -11,7 +11,7 @@
|
||||
** Default number modes
|
||||
*/
|
||||
#if (!defined LNUM_DOUBLE) && (!defined LNUM_FLOAT) && (!defined LNUM_LDOUBLE)
|
||||
-# define LNUM_FLOAT
|
||||
+# define LNUM_DOUBLE
|
||||
#endif
|
||||
#if (!defined LNUM_INT16) && (!defined LNUM_INT32) && (!defined LNUM_INT64)
|
||||
# define LNUM_INT32
|
||||
@@ -0,0 +1,22 @@
|
||||
--- a/src/lvm.c
|
||||
+++ b/src/lvm.c
|
||||
@@ -284,7 +284,8 @@ int luaV_lessthan (lua_State *L, const T
|
||||
else
|
||||
return luai_numlt( nvalue_fast(l), cast_num(ivalue(r)) );
|
||||
|
||||
- } else if ((res = call_orderTM(L, l, r, TM_LT)) != -1)
|
||||
+ }
|
||||
+ if ((res = call_orderTM(L, l, r, TM_LT)) != -1)
|
||||
return res;
|
||||
|
||||
return luaG_ordererror(L, l, r);
|
||||
@@ -322,7 +323,8 @@ static int lessequal (lua_State *L, cons
|
||||
else
|
||||
return luai_numle( nvalue_fast(l), cast_num(ivalue(r)) );
|
||||
|
||||
- } else if ((res = call_orderTM(L, l, r, TM_LE)) != -1) /* first try `le' */
|
||||
+ }
|
||||
+ if ((res = call_orderTM(L, l, r, TM_LE)) != -1) /* first try `le' */
|
||||
return res;
|
||||
else if ((res = call_orderTM(L, r, l, TM_LT)) != -1) /* else try `lt' */
|
||||
return !res;
|
||||
@@ -0,0 +1,48 @@
|
||||
diff --git a/src/lnum.c b/src/lnum.c
|
||||
index 1456b6a2ed23..b0632b04c2b7 100644
|
||||
--- a/src/lnum.c
|
||||
+++ b/src/lnum.c
|
||||
@@ -127,6 +127,8 @@ static int luaO_str2i (const char *s, lua_Integer *res, char **endptr_ref) {
|
||||
#else
|
||||
return 0; /* Reject the number */
|
||||
#endif
|
||||
+ } else if (v > LUA_INTEGER_MAX) {
|
||||
+ return TK_NUMBER;
|
||||
}
|
||||
} else if ((v > LUA_INTEGER_MAX) || (*endptr && (!isspace(*endptr)))) {
|
||||
return TK_NUMBER; /* not in signed range, or has '.', 'e' etc. trailing */
|
||||
@@ -310,3 +312,13 @@ int try_unmint( lua_Integer *r, lua_Integer ib ) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#ifdef LONG_OVERFLOW_LUA_INTEGER
|
||||
+unsigned LUA_INTEGER lua_str2ul( const char *str, char **endptr, int base ) {
|
||||
+ unsigned long v= strtoul(str, endptr, base);
|
||||
+ if ( v > LUA_INTEGER_MAX ) {
|
||||
+ errno= ERANGE;
|
||||
+ v= ULONG_MAX;
|
||||
+ }
|
||||
+ return (unsigned LUA_INTEGER)v;
|
||||
+}
|
||||
+#endif
|
||||
diff --git a/src/lnum_config.h b/src/lnum_config.h
|
||||
index 19d7a4231a49..1092eead6629 100644
|
||||
--- a/src/lnum_config.h
|
||||
+++ b/src/lnum_config.h
|
||||
@@ -141,7 +141,12 @@
|
||||
#endif
|
||||
|
||||
#ifndef lua_str2ul
|
||||
-# define lua_str2ul (unsigned LUA_INTEGER)strtoul
|
||||
+# if LONG_MAX > LUA_INTEGER_MAX
|
||||
+# define LONG_OVERFLOW_LUA_INTEGER
|
||||
+ unsigned LUA_INTEGER lua_str2ul( const char *str, char **endptr, int base );
|
||||
+# else
|
||||
+# define lua_str2ul (unsigned LUA_INTEGER)strtoul
|
||||
+# endif
|
||||
#endif
|
||||
#ifndef LUA_INTEGER_MIN
|
||||
# define LUA_INTEGER_MIN (-LUA_INTEGER_MAX -1) /* -2^16|32 */
|
||||
--
|
||||
1.9.1
|
||||
|
||||
11
package/utils/lua/patches-host/015-lnum-ppc-compat.patch
Normal file
11
package/utils/lua/patches-host/015-lnum-ppc-compat.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/src/lua.h
|
||||
+++ b/src/lua.h
|
||||
@@ -79,7 +79,7 @@ typedef void * (*lua_Alloc) (void *ud, v
|
||||
* not acceptable for 5.1, maybe 5.2 onwards?
|
||||
* 9: greater than existing (5.1) type values.
|
||||
*/
|
||||
-#define LUA_TINT (-2)
|
||||
+#define LUA_TINT 9
|
||||
|
||||
#define LUA_TNIL 0
|
||||
#define LUA_TBOOLEAN 1
|
||||
@@ -0,0 +1,111 @@
|
||||
--- a/src/ldump.c
|
||||
+++ b/src/ldump.c
|
||||
@@ -67,12 +67,12 @@ static void DumpString(const TString* s,
|
||||
{
|
||||
if (s==NULL || getstr(s)==NULL)
|
||||
{
|
||||
- size_t size=0;
|
||||
+ unsigned int size=0;
|
||||
DumpVar(size,D);
|
||||
}
|
||||
else
|
||||
{
|
||||
- size_t size=s->tsv.len+1; /* include trailing '\0' */
|
||||
+ unsigned int size=s->tsv.len+1; /* include trailing '\0' */
|
||||
DumpVar(size,D);
|
||||
DumpBlock(getstr(s),size,D);
|
||||
}
|
||||
--- a/src/lundump.c
|
||||
+++ b/src/lundump.c
|
||||
@@ -25,6 +25,7 @@ typedef struct {
|
||||
ZIO* Z;
|
||||
Mbuffer* b;
|
||||
const char* name;
|
||||
+ int swap;
|
||||
} LoadState;
|
||||
|
||||
#ifdef LUAC_TRUST_BINARIES
|
||||
@@ -40,7 +41,6 @@ static void error(LoadState* S, const ch
|
||||
}
|
||||
#endif
|
||||
|
||||
-#define LoadMem(S,b,n,size) LoadBlock(S,b,(n)*(size))
|
||||
#define LoadByte(S) (lu_byte)LoadChar(S)
|
||||
#define LoadVar(S,x) LoadMem(S,&x,1,sizeof(x))
|
||||
#define LoadVector(S,b,n,size) LoadMem(S,b,n,size)
|
||||
@@ -51,6 +51,49 @@ static void LoadBlock(LoadState* S, void
|
||||
IF (r!=0, "unexpected end");
|
||||
}
|
||||
|
||||
+static void LoadMem (LoadState* S, void* b, int n, size_t size)
|
||||
+{
|
||||
+ LoadBlock(S,b,n*size);
|
||||
+ if (S->swap)
|
||||
+ {
|
||||
+ char* p=(char*) b;
|
||||
+ char c;
|
||||
+ switch (size)
|
||||
+ {
|
||||
+ case 1:
|
||||
+ break;
|
||||
+ case 2:
|
||||
+ while (n--)
|
||||
+ {
|
||||
+ c=p[0]; p[0]=p[1]; p[1]=c;
|
||||
+ p+=2;
|
||||
+ }
|
||||
+ break;
|
||||
+ case 4:
|
||||
+ while (n--)
|
||||
+ {
|
||||
+ c=p[0]; p[0]=p[3]; p[3]=c;
|
||||
+ c=p[1]; p[1]=p[2]; p[2]=c;
|
||||
+ p+=4;
|
||||
+ }
|
||||
+ break;
|
||||
+ case 8:
|
||||
+ while (n--)
|
||||
+ {
|
||||
+ c=p[0]; p[0]=p[7]; p[7]=c;
|
||||
+ c=p[1]; p[1]=p[6]; p[6]=c;
|
||||
+ c=p[2]; p[2]=p[5]; p[5]=c;
|
||||
+ c=p[3]; p[3]=p[4]; p[4]=c;
|
||||
+ p+=8;
|
||||
+ }
|
||||
+ break;
|
||||
+ default:
|
||||
+ IF(1, "bad size");
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static int LoadChar(LoadState* S)
|
||||
{
|
||||
char x;
|
||||
@@ -82,7 +125,7 @@ static lua_Integer LoadInteger(LoadState
|
||||
|
||||
static TString* LoadString(LoadState* S)
|
||||
{
|
||||
- size_t size;
|
||||
+ unsigned int size;
|
||||
LoadVar(S,size);
|
||||
if (size==0)
|
||||
return NULL;
|
||||
@@ -196,6 +239,7 @@ static void LoadHeader(LoadState* S)
|
||||
char s[LUAC_HEADERSIZE];
|
||||
luaU_header(h);
|
||||
LoadBlock(S,s,LUAC_HEADERSIZE);
|
||||
+ S->swap=(s[6]!=h[6]); s[6]=h[6];
|
||||
IF (memcmp(h,s,LUAC_HEADERSIZE)!=0, "bad header");
|
||||
}
|
||||
|
||||
@@ -230,7 +274,7 @@ void luaU_header (char* h)
|
||||
*h++=(char)LUAC_FORMAT;
|
||||
*h++=(char)*(char*)&x; /* endianness */
|
||||
*h++=(char)sizeof(int);
|
||||
- *h++=(char)sizeof(size_t);
|
||||
+ *h++=(char)sizeof(unsigned int);
|
||||
*h++=(char)sizeof(Instruction);
|
||||
*h++=(char)sizeof(lua_Number);
|
||||
|
||||
49
package/utils/lua/patches-host/100-no_readline.patch
Normal file
49
package/utils/lua/patches-host/100-no_readline.patch
Normal file
@@ -0,0 +1,49 @@
|
||||
--- a/src/luaconf.h
|
||||
+++ b/src/luaconf.h
|
||||
@@ -38,7 +38,6 @@
|
||||
#if defined(LUA_USE_LINUX)
|
||||
#define LUA_USE_POSIX
|
||||
#define LUA_USE_DLOPEN /* needs an extra library: -ldl */
|
||||
-#define LUA_USE_READLINE /* needs some extra libraries */
|
||||
#endif
|
||||
|
||||
#if defined(LUA_USE_MACOSX)
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -17,6 +17,7 @@
|
||||
MYCFLAGS=
|
||||
MYLDFLAGS=
|
||||
MYLIBS=
|
||||
+# USE_READLINE=1
|
||||
|
||||
# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
|
||||
|
||||
@@ -75,7 +76,7 @@
|
||||
@echo "MYLIBS = $(MYLIBS)"
|
||||
|
||||
# convenience targets for popular platforms
|
||||
-
|
||||
+RFLAG=$(if $(USE_READLINE),-DLUA_USE_READLINE)
|
||||
none:
|
||||
@echo "Please choose a platform:"
|
||||
@echo " $(PLATS)"
|
||||
@@ -90,16 +91,16 @@
|
||||
$(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-Wl,-E"
|
||||
|
||||
freebsd:
|
||||
- $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX" MYLIBS="-Wl,-E -lreadline"
|
||||
+ $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX" $(RFLAG)" MYLIBS="-Wl,-E$(if $(USE_READLINE), -lreadline)"
|
||||
|
||||
generic:
|
||||
$(MAKE) all MYCFLAGS=
|
||||
|
||||
linux:
|
||||
- $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses"
|
||||
+ $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX $(RFLAG)" MYLIBS="-Wl,-E -ldl $(if $(USE_READLINE), -lreadline -lhistory -lncurses)"
|
||||
|
||||
macosx:
|
||||
- $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-lreadline"
|
||||
+ $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX $(if $(USE_READLINE), MYLIBS="-lreadline")
|
||||
# use this on Mac OS X 10.3-
|
||||
# $(MAKE) all MYCFLAGS=-DLUA_USE_MACOSX
|
||||
|
||||
Reference in New Issue
Block a user