mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH 1/2] lua: Correct implementation for version 5.1.4
@ 2011-12-07 16:02 Benoît BURNICHON
  2011-12-07 16:55 ` Michael Olbrich
  0 siblings, 1 reply; 11+ messages in thread
From: Benoît BURNICHON @ 2011-12-07 16:02 UTC (permalink / raw)
  To: ptxdist


---
 patches/lua-5.1.4/autoconfize.diff               |  912 ++++++++++++++++++++++
 patches/lua-5.1.4/automakize.diff                |  113 +++
 patches/lua-5.1.4/lua-5.1.3-autoconfize.diff     |  910 ---------------------
 patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff      |   26 -
 patches/lua-5.1.4/lua-5.1.3-automakize.diff      |  111 ---
 patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff |  149 ----
 patches/lua-5.1.4/remove-Makefile.diff           |  149 ++++
 patches/lua-5.1.4/series                         |    7 +-
 rules/lua.make                                   |    2 +-
 9 files changed, 1178 insertions(+), 1201 deletions(-)
 create mode 100644 patches/lua-5.1.4/autoconfize.diff
 create mode 100644 patches/lua-5.1.4/automakize.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-autoconfize.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-automakize.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff
 create mode 100644 patches/lua-5.1.4/remove-Makefile.diff

diff --git a/patches/lua-5.1.4/autoconfize.diff b/patches/lua-5.1.4/autoconfize.diff
new file mode 100644
index 0000000..4682f3e
--- /dev/null
+++ b/patches/lua-5.1.4/autoconfize.diff
@@ -0,0 +1,912 @@
+Subject: Add lua support to ptxdist 1.99: add autoconf files
+From: Erwin Rol <erwin@erwinrol.com>
+
+This patch add lua support to ptxdist 1.99. It has a menu entry under
+scripting languages. And a patch that makes it possible to use autoconf
+to build.
+
+This part of the patch adds the autoconf files.
+
+Signed-off-by: Erwin Rol <erwin@erwinrol.com>
+Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
+
+---
+ configure.ac              |   68 ++++
+ etc/lua.pc.in             |   32 +
+ src/luaconf.h.template.in |  777 ++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 877 insertions(+)
+
+Index: lua-5.1.4/configure.ac
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/configure.ac     2011-12-06 11:47:49.675076314 +0100
+@@ -0,0 +1,70 @@
++AC_PREREQ([2.67])
++AC_INIT([Autotoolized Lua],[5.1.4],[],[lua-at])
++
++AC_CONFIG_MACRO_DIR([m4])
++
++AC_CONFIG_HEADERS([config.h])
++AC_CONFIG_SRCDIR([src/lapi.c])
++
++AM_INIT_AUTOMAKE([1.9 foreign])
++
++AC_PROG_CC
++LT_INIT
++
++AC_ARG_WITH(
++  [readline],
++  [AS_HELP_STRING([--with-readline],[Use readline for interpreter input [default=yes]])],
++  [use_readline=$withval],
++  [use_readline=yes]
++)
++
++LUA_LIBS="-lm"
++
++# Check for readline
++READLINE_DEFS="#undef LUA_USE_READLINE"
++if test "x$use_readline" == "xyes"; then
++  AC_CHECK_LIB([readline], [readline], [], [use_readline=no])
++  AC_CHECK_HEADERS([readline/readline.h readline/history.h], [], [use_readline=no])
++  if test "x$use_readline" == "xno"; then
++    AC_MSG_WARN([readline headers could not be found, disabling readline support])
++  else
++    READLINE_DEFS="#define LUA_USE_READLINE"
++    LUA_LIBS="$LUA_LIBS -lreadline"
++  fi
++fi
++AC_SUBST(READLINE_DEFS)
++
++case "$host" in
++  *-mingw*)  use_os=win32  ;;
++  *-darwin*) use_os=macosx ;;
++  *)         use_os=posix  ;;
++esac
++
++POSIX_DEFS="#undef LUA_USE_POSIX"
++LUA_DL_DEFS="#undef LUA_USE_DLOPEN"
++LUA_BUILD_AS_DLL_DEFS="#undef LUA_BUILD_AS_DLL"
++
++if test "x$use_os" == "xwin32"; then
++  LUA_BUILD_AS_DLL_DEFS="#define LUA_BUILD_AS_DLL"
++elif test "x$use_os" == "xmacosx"; then
++  POSIX_DEFS="#define LUA_USE_POSIX"
++  LUA_DL_DEFS="#define LUA_DL_DYLD"
++elif test "x$use_os" == "xposix"; then
++  POSIX_DEFS="#define LUA_USE_POSIX"
++  LUA_DL_DEFS="#define LUA_DL_DLOPEN"
++  LUA_LIBS="$LUA_LIBS -ldl"
++fi
++AC_SUBST(POSIX_DEFS)
++AC_SUBST(LUA_DL_DEFS)
++AC_SUBST(LUA_BUILD_AS_DLL_DEFS)
++
++AC_SUBST(LUA_LIBS)
++
++AC_CONFIG_FILES([Makefile
++                 src/Makefile
++                 src/luaconf.h.template
++                 etc/Makefile
++                 etc/lua.pc
++                 doc/Makefile
++               test/Makefile])
++AC_OUTPUT
+Index: lua-5.1.4/etc/lua.pc.in
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/etc/lua.pc.in    2011-12-06 11:44:52.103826880 +0100
+@@ -0,0 +1,32 @@
++# lua.pc -- pkg-config data for Lua
++
++# vars from install Makefile
++
++# grep '^V=' ../Makefile
++V= 5.1
++# grep '^R=' ../Makefile
++R= @VERSION@
++
++# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
++# plus autotoolification
++prefix= @prefix@
++INSTALL_BIN= ${prefix}/bin
++INSTALL_INC= ${prefix}/include
++INSTALL_LIB= ${prefix}/lib
++INSTALL_MAN= ${prefix}/man/man1
++INSTALL_LMOD= ${prefix}/share/lua/${V}
++INSTALL_CMOD= ${prefix}/lib/lua/${V}
++
++# canonical vars
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include
++
++Name: Lua
++Description: An Extensible Extension Language
++Version: ${R}
++Requires:
++Libs: -L${libdir} -llua -lm
++Cflags: -I${includedir}
++
++# (end of lua.pc)
+Index: lua-5.1.4/src/luaconf.h.template.in
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/src/luaconf.h.template.in        2011-12-06 11:44:52.103826880 +0100
+@@ -0,0 +1,777 @@
++/*
++** $Id: luaconf.h,v 1.82a 2006/04/10 18:27:23 roberto Exp $
++** Configuration file for Lua
++** See Copyright Notice in lua.h
++*/
++
++
++#ifndef lconfig_h
++#define lconfig_h
++
++#include <limits.h>
++#include <stddef.h>
++
++/*
++** =================
++** Autotoolification
++** =================
++*/
++
++/** autotoolize patch **/
++@POSIX_DEFS@
++@LUA_DL_DEFS@
++@LUA_BUILD_AS_DLL_DEFS@
++@READLINE_DEFS@
++/** autotoolize patch **/
++
++/*
++** ==================================================================
++** Search for "@@" to find all configurable definitions.
++** ===================================================================
++*/
++
++
++/*
++@@ LUA_ANSI controls the use of non-ansi features.
++** CHANGE it (define it) if you want Lua to avoid the use of any
++** non-ansi feature or library.
++*/
++#if defined(__STRICT_ANSI__)
++#define LUA_ANSI
++#endif
++
++
++#if !defined(LUA_ANSI) && defined(_WIN32)
++#define LUA_WIN
++#endif
++
++#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)
++#define LUA_USE_POSIX
++#define LUA_DL_DYLD           /* does not need extra library */
++#endif
++
++
++
++/*
++@@ LUA_USE_POSIX includes all functionallity listed as X/Open System
++@* Interfaces Extension (XSI).
++** CHANGE it (define it) if your system is XSI compatible.
++*/
++#if defined(LUA_USE_POSIX)
++#define LUA_USE_MKSTEMP
++#define LUA_USE_ISATTY
++#define LUA_USE_POPEN
++#define LUA_USE_ULONGJMP
++#endif
++
++
++/*
++@@ LUA_PATH and LUA_CPATH are the names of the environment variables that
++@* Lua check to set its paths.
++@@ LUA_INIT is the name of the environment variable that Lua
++@* checks for initialization code.
++** CHANGE them if you want different names.
++*/
++#define LUA_PATH        "LUA_PATH"
++#define LUA_CPATH       "LUA_CPATH"
++#define LUA_INIT      "LUA_INIT"
++
++
++/*
++@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for
++@* Lua libraries.
++@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for
++@* C libraries.
++** CHANGE them if your machine has a non-conventional directory
++** hierarchy or if you want to install your libraries in
++** non-conventional directories.
++*/
++#if defined(_WIN32)
++/*
++** In Windows, any exclamation mark ('!') in the path is replaced by the
++** path of the directory of the executable file of the current process.
++*/
++#define LUA_LDIR      "!\\lua\\"
++#define LUA_CDIR      "!\\"
++#define LUA_PATH_DEFAULT  \
++              ".\\?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?\\init.lua;" \
++                           LUA_CDIR"?.lua;"  LUA_CDIR"?\\init.lua"
++#define LUA_CPATH_DEFAULT \
++      ".\\?.dll;"  LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
++
++#else
++
++/** autotoolize patch **/
++#define LUA_LDIR      "%lua_datadir%/lua/5.1/"
++#define LUA_CDIR      "%lua_libdir%/lua/5.1/"
++/** autotoolize patch **/
++
++#define LUA_PATH_DEFAULT  \
++              "./?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?/init.lua;" \
++                          LUA_CDIR"?.lua;"  LUA_CDIR"?/init.lua"
++#define LUA_CPATH_DEFAULT \
++      "./?.so;"  LUA_CDIR"?.so;" LUA_CDIR"loadall.so"
++#endif
++
++
++/*
++@@ LUA_DIRSEP is the directory separator (for submodules).
++** CHANGE it if your machine does not use "/" as the directory separator
++** and is not Windows. (On Windows Lua automatically uses "\".)
++*/
++#if defined(_WIN32)
++#define LUA_DIRSEP    "\\"
++#else
++#define LUA_DIRSEP    "/"
++#endif
++
++
++/*
++@@ LUA_PATHSEP is the character that separates templates in a path.
++@@ LUA_PATH_MARK is the string that marks the substitution points in a
++@* template.
++@@ LUA_EXECDIR in a Windows path is replaced by the executable's
++@* directory.
++@@ LUA_IGMARK is a mark to ignore all before it when bulding the
++@* luaopen_ function name.
++** CHANGE them if for some reason your system cannot use those
++** characters. (E.g., if one of those characters is a common character
++** in file/directory names.) Probably you do not need to change them.
++*/
++#define LUA_PATHSEP   ";"
++#define LUA_PATH_MARK "?"
++#define LUA_EXECDIR   "!"
++#define LUA_IGMARK    "-"
++
++
++/*
++@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger.
++** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
++** machines, ptrdiff_t gives a good choice between int or long.)
++*/
++#define LUA_INTEGER   ptrdiff_t
++
++
++/*
++@@ LUA_API is a mark for all core API functions.
++@@ LUALIB_API is a mark for all standard library functions.
++** CHANGE them if you need to define those functions in some special way.
++** For instance, if you want to create one Windows DLL with the core and
++** the libraries, you may want to use the following definition (define
++** LUA_BUILD_AS_DLL to get it).
++*/
++#if defined(LUA_BUILD_AS_DLL)
++
++#if defined(LUA_CORE) || defined(LUA_LIB)
++#define LUA_API __declspec(dllexport)
++#else
++#define LUA_API __declspec(dllimport)
++#endif
++
++#else
++
++#define LUA_API               extern
++
++#endif
++
++/* more often than not the libs go together with the core */
++#define LUALIB_API    LUA_API
++
++
++/*
++@@ LUAI_FUNC is a mark for all extern functions that are not to be
++@* exported to outside modules.
++@@ LUAI_DATA is a mark for all extern (const) variables that are not to
++@* be exported to outside modules.
++** CHANGE them if you need to mark them in some special way. Elf/gcc
++** (versions 3.2 and later) mark them as "hidden" to optimize access
++** when Lua is compiled as a shared library.
++*/
++#if defined(luaall_c)
++#define LUAI_FUNC     static
++#define LUAI_DATA     /* empty */
++
++#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
++      defined(__ELF__)
++#define LUAI_FUNC     __attribute__((visibility("hidden"))) extern
++#define LUAI_DATA     LUAI_FUNC
++
++#else
++#define LUAI_FUNC     extern
++#define LUAI_DATA     extern
++#endif
++
++
++
++/*
++@@ LUA_QL describes how error messages quote program elements.
++** CHANGE it if you want a different appearance.
++*/
++#define LUA_QL(x)     "'" x "'"
++#define LUA_QS                LUA_QL("%s")
++
++
++/*
++@@ LUA_IDSIZE gives the maximum size for the description of the source
++@* of a function in debug information.
++** CHANGE it if you want a different size.
++*/
++#define LUA_IDSIZE    60
++
++
++/*
++** {==================================================================
++** Stand-alone configuration
++** ===================================================================
++*/
++
++#if defined(lua_c) || defined(luaall_c)
++
++/*
++@@ lua_stdin_is_tty detects whether the standard input is a 'tty' (that
++@* is, whether we're running lua interactively).
++** CHANGE it if you have a better definition for non-POSIX/non-Windows
++** systems.
++*/
++#if defined(LUA_USE_ISATTY)
++#include <unistd.h>
++#define lua_stdin_is_tty()    isatty(0)
++#elif defined(LUA_WIN)
++#include <io.h>
++#include <stdio.h>
++#define lua_stdin_is_tty()    _isatty(_fileno(stdin))
++#else
++#define lua_stdin_is_tty()    1  /* assume stdin is a tty */
++#endif
++
++
++/*
++@@ LUA_PROMPT is the default prompt used by stand-alone Lua.
++@@ LUA_PROMPT2 is the default continuation prompt used by stand-alone Lua.
++** CHANGE them if you want different prompts. (You can also change the
++** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.)
++*/
++#define LUA_PROMPT            "> "
++#define LUA_PROMPT2           ">> "
++
++
++/*
++@@ LUA_PROGNAME is the default name for the stand-alone Lua program.
++** CHANGE it if your stand-alone interpreter has a different name and
++** your system is not able to detect that name automatically.
++*/
++#define LUA_PROGNAME          "lua"
++
++
++/*
++@@ LUA_MAXINPUT is the maximum length for an input line in the
++@* stand-alone interpreter.
++** CHANGE it if you need longer lines.
++*/
++#define LUA_MAXINPUT  512
++
++
++/*
++@@ lua_readline defines how to show a prompt and then read a line from
++@* the standard input.
++@@ lua_saveline defines how to "save" a read line in a "history".
++@@ lua_freeline defines how to free a line read by lua_readline.
++** CHANGE them if you want to improve this functionality (e.g., by using
++** GNU readline and history facilities).
++*/
++#if defined(LUA_USE_READLINE)
++#include <stdio.h>
++#include <readline/readline.h>
++#include <readline/history.h>
++#define lua_readline(L,b,p)   ((void)L, ((b)=readline(p)) != NULL)
++#define lua_saveline(L,idx) \
++      if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \
++        add_history(lua_tostring(L, idx));  /* add it to history */
++#define lua_freeline(L,b)     ((void)L, free(b))
++#else
++#define lua_readline(L,b,p)   \
++      ((void)L, fputs(p, stdout), fflush(stdout),  /* show prompt */ \
++      fgets(b, LUA_MAXINPUT, stdin) != NULL)  /* get line */
++#define lua_saveline(L,idx)   { (void)L; (void)idx; }
++#define lua_freeline(L,b)     { (void)L; (void)b; }
++#endif
++
++#endif
++
++/* }================================================================== */
++
++
++/*
++@@ LUAI_GCPAUSE defines the default pause between garbage-collector cycles
++@* as a percentage.
++** CHANGE it if you want the GC to run faster or slower (higher values
++** mean larger pauses which mean slower collection.) You can also change
++** this value dynamically.
++*/
++#define LUAI_GCPAUSE  200  /* 200% (wait memory to double before next GC) */
++
++
++/*
++@@ LUAI_GCMUL defines the default speed of garbage collection relative to
++@* memory allocation as a percentage.
++** CHANGE it if you want to change the granularity of the garbage
++** collection. (Higher values mean coarser collections. 0 represents
++** infinity, where each step performs a full collection.) You can also
++** change this value dynamically.
++*/
++#define LUAI_GCMUL    200 /* GC runs 'twice the speed' of memory allocation */
++
++
++
++/*
++@@ LUA_COMPAT_GETN controls compatibility with old getn behavior.
++** CHANGE it (define it) if you want exact compatibility with the
++** behavior of setn/getn in Lua 5.0.
++*/
++#undef LUA_COMPAT_GETN
++
++/*
++@@ LUA_COMPAT_LOADLIB controls compatibility about global loadlib.
++** CHANGE it to undefined as soon as you do not need a global 'loadlib'
++** function (the function is still available as 'package.loadlib').
++*/
++#undef LUA_COMPAT_LOADLIB
++
++/*
++@@ LUA_COMPAT_VARARG controls compatibility with old vararg feature.
++** CHANGE it to undefined as soon as your programs use only '...' to
++** access vararg parameters (instead of the old 'arg' table).
++*/
++#define LUA_COMPAT_VARARG
++
++/*
++@@ LUA_COMPAT_MOD controls compatibility with old math.mod function.
++** CHANGE it to undefined as soon as your programs use 'math.fmod' or
++** the new '%' operator instead of 'math.mod'.
++*/
++#define LUA_COMPAT_MOD
++
++/*
++@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting
++@* facility.
++** CHANGE it to 2 if you want the old behaviour, or undefine it to turn
++** off the advisory error when nesting [[...]].
++*/
++#define LUA_COMPAT_LSTR               1
++
++/*
++@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name.
++** CHANGE it to undefined as soon as you rename 'string.gfind' to
++** 'string.gmatch'.
++*/
++#define LUA_COMPAT_GFIND
++
++/*
++@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib'
++@* behavior.
++** CHANGE it to undefined as soon as you replace to 'luaL_register'
++** your uses of 'luaL_openlib'
++*/
++#define LUA_COMPAT_OPENLIB
++
++
++
++/*
++@@ luai_apicheck is the assert macro used by the Lua-C API.
++** CHANGE luai_apicheck if you want Lua to perform some checks in the
++** parameters it gets from API calls. This may slow down the interpreter
++** a bit, but may be quite useful when debugging C code that interfaces
++** with Lua. A useful redefinition is to use assert.h.
++*/
++#if defined(LUA_USE_APICHECK)
++#include <assert.h>
++#define luai_apicheck(L,o)    { (void)L; assert(o); }
++#else
++#define luai_apicheck(L,o)    { (void)L; }
++#endif
++
++
++/*
++@@ LUAI_BITSINT defines the number of bits in an int.
++** CHANGE here if Lua cannot automatically detect the number of bits of
++** your machine. Probably you do not need to change this.
++*/
++/* avoid overflows in comparison */
++#if INT_MAX-20 < 32760
++#define LUAI_BITSINT  16
++#elif INT_MAX > 2147483640L
++/* int has at least 32 bits */
++#define LUAI_BITSINT  32
++#else
++#error "you must define LUA_BITSINT with number of bits in an integer"
++#endif
++
++
++/*
++@@ LUAI_UINT32 is an unsigned integer with at least 32 bits.
++@@ LUAI_INT32 is an signed integer with at least 32 bits.
++@@ LUAI_UMEM is an unsigned integer big enough to count the total
++@* memory used by Lua.
++@@ LUAI_MEM is a signed integer big enough to count the total memory
++@* used by Lua.
++** CHANGE here if for some weird reason the default definitions are not
++** good enough for your machine. (The definitions in the 'else'
++** part always works, but may waste space on machines with 64-bit
++** longs.) Probably you do not need to change this.
++*/
++#if LUAI_BITSINT >= 32
++#define LUAI_UINT32   unsigned int
++#define LUAI_INT32    int
++#define LUAI_MAXINT32 INT_MAX
++#define LUAI_UMEM     size_t
++#define LUAI_MEM      ptrdiff_t
++#else
++/* 16-bit ints */
++#define LUAI_UINT32   unsigned long
++#define LUAI_INT32    long
++#define LUAI_MAXINT32 LONG_MAX
++#define LUAI_UMEM     unsigned long
++#define LUAI_MEM      long
++#endif
++
++
++/*
++@@ LUAI_MAXCALLS limits the number of nested calls.
++** CHANGE it if you need really deep recursive calls. This limit is
++** arbitrary; its only purpose is to stop infinite recursion before
++** exhausting memory.
++*/
++#define LUAI_MAXCALLS 20000
++
++
++/*
++@@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function
++@* can use.
++** CHANGE it if you need lots of (Lua) stack space for your C
++** functions. This limit is arbitrary; its only purpose is to stop C
++** functions to consume unlimited stack space.
++*/
++#define LUAI_MAXCSTACK        2048
++
++
++
++/*
++** {==================================================================
++** CHANGE (to smaller values) the following definitions if your system
++** has a small C stack. (Or you may want to change them to larger
++** values if your system has a large C stack and these limits are
++** too rigid for you.) Some of these constants control the size of
++** stack-allocated arrays used by the compiler or the interpreter, while
++** others limit the maximum number of recursive calls that the compiler
++** or the interpreter can perform. Values too large may cause a C stack
++** overflow for some forms of deep constructs.
++** ===================================================================
++*/
++
++
++/*
++@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and
++@* syntactical nested non-terminals in a program.
++*/
++#define LUAI_MAXCCALLS                200
++
++
++/*
++@@ LUAI_MAXVARS is the maximum number of local variables per function
++@* (must be smaller than 250).
++*/
++#define LUAI_MAXVARS          200
++
++
++/*
++@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function
++@* (must be smaller than 250).
++*/
++#define LUAI_MAXUPVALUES      60
++
++
++/*
++@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
++*/
++#define LUAL_BUFFERSIZE               BUFSIZ
++
++/* }================================================================== */
++
++
++
++
++/*
++** {==================================================================
++@@ LUA_NUMBER is the type of numbers in Lua.
++** CHANGE the following definitions only if you want to build Lua
++** with a number type different from double. You may also need to
++** change lua_number2int & lua_number2integer.
++** ===================================================================
++*/
++
++#define LUA_NUMBER_DOUBLE
++#define LUA_NUMBER    double
++
++/*
++@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
++@* over a number.
++*/
++#define LUAI_UACNUMBER        double
++
++
++/*
++@@ LUA_NUMBER_SCAN is the format for reading numbers.
++@@ LUA_NUMBER_FMT is the format for writing numbers.
++@@ lua_number2str converts a number to a string.
++@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
++@@ lua_str2number converts a string to a number.
++*/
++#define LUA_NUMBER_SCAN               "%lf"
++#define LUA_NUMBER_FMT                "%.14g"
++#define lua_number2str(s,n)   sprintf((s), LUA_NUMBER_FMT, (n))
++#define LUAI_MAXNUMBER2STR    32 /* 16 digits, sign, point, and \0 */
++#define lua_str2number(s,p)   strtod((s), (p))
++
++
++/*
++@@ The luai_num* macros define the primitive operations over numbers.
++*/
++#if defined(LUA_CORE)
++#include <math.h>
++#define luai_numadd(a,b)      ((a)+(b))
++#define luai_numsub(a,b)      ((a)-(b))
++#define luai_nummul(a,b)      ((a)*(b))
++#define luai_numdiv(a,b)      ((a)/(b))
++#define luai_nummod(a,b)      ((a) - floor((a)/(b))*(b))
++#define luai_numpow(a,b)      (pow(a,b))
++#define luai_numunm(a)                (-(a))
++#define luai_numeq(a,b)               ((a)==(b))
++#define luai_numlt(a,b)               ((a)<(b))
++#define luai_numle(a,b)               ((a)<=(b))
++#define luai_numisnan(a)      (!luai_numeq((a), (a)))
++#endif
++
++
++/*
++@@ lua_number2int is a macro to convert lua_Number to int.
++@@ lua_number2integer is a macro to convert lua_Number to lua_Integer.
++** CHANGE them if you know a faster way to convert a lua_Number to
++** int (with any rounding method and without throwing errors) in your
++** system. In Pentium machines, a naive typecast from double to int
++** in C is extremely slow, so any alternative is worth trying.
++*/
++
++/* On a Pentium, resort to a trick */
++#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \
++    (defined(__i386) || defined (_M_IX86) || defined(__i386__))
++
++/* On a Microsoft compiler, use assembler */
++#if defined(_MSC_VER)
++
++#define lua_number2int(i,d)   __asm fld d   __asm fistp i
++#define lua_number2integer(i,n)               lua_number2int(i, n)
++
++/* the next trick should work on any Pentium, but sometimes clashes
++   with a DirectX idiosyncrasy */
++#else
++
++union luai_Cast { double l_d; long l_l; };
++#define lua_number2int(i,d) \
++  { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; }
++#define lua_number2integer(i,n)               lua_number2int(i, n)
++
++#endif
++
++
++/* this option always works, but may be slow */
++#else
++#define lua_number2int(i,d)   ((i)=(int)(d))
++#define lua_number2integer(i,d)       ((i)=(lua_Integer)(d))
++
++#endif
++
++/* }================================================================== */
++
++
++/*
++@@ LUAI_USER_ALIGNMENT_T is a type that requires maximum alignment.
++** CHANGE it if your system requires alignments larger than double. (For
++** instance, if your system supports long doubles and they must be
++** aligned in 16-byte boundaries, then you should add long double in the
++** union.) Probably you do not need to change this.
++*/
++#define LUAI_USER_ALIGNMENT_T union { double u; void *s; long l; }
++
++
++/*
++@@ LUAI_THROW/LUAI_TRY define how Lua does exception handling.
++** CHANGE them if you prefer to use longjmp/setjmp even with C++
++** or if want/don't to use _longjmp/_setjmp instead of regular
++** longjmp/setjmp. By default, Lua handles errors with exceptions when
++** compiling as C++ code, with _longjmp/_setjmp when asked to use them,
++** and with longjmp/setjmp otherwise.
++*/
++#if defined(__cplusplus)
++/* C++ exceptions */
++#define LUAI_THROW(L,c)       throw(c)
++#define LUAI_TRY(L,c,a)       try { a } catch(...) \
++      { if ((c)->status == 0) (c)->status = -1; }
++#define luai_jmpbuf   int  /* dummy variable */
++
++#elif defined(LUA_USE_ULONGJMP)
++/* in Unix, try _longjmp/_setjmp (more efficient) */
++#define LUAI_THROW(L,c)       _longjmp((c)->b, 1)
++#define LUAI_TRY(L,c,a)       if (_setjmp((c)->b) == 0) { a }
++#define luai_jmpbuf   jmp_buf
++
++#else
++/* default handling with long jumps */
++#define LUAI_THROW(L,c)       longjmp((c)->b, 1)
++#define LUAI_TRY(L,c,a)       if (setjmp((c)->b) == 0) { a }
++#define luai_jmpbuf   jmp_buf
++
++#endif
++
++
++/*
++@@ LUA_MAXCAPTURES is the maximum number of captures that a pattern
++@* can do during pattern-matching.
++** CHANGE it if you need more captures. This limit is arbitrary.
++*/
++#define LUA_MAXCAPTURES               32
++
++
++/*
++@@ lua_tmpnam is the function that the OS library uses to create a
++@* temporary name.
++@@ LUA_TMPNAMBUFSIZE is the maximum size of a name created by lua_tmpnam.
++** CHANGE them if you have an alternative to tmpnam (which is considered
++** insecure) or if you want the original tmpnam anyway.  By default, Lua
++** uses tmpnam except when POSIX is available, where it uses mkstemp.
++*/
++#if defined(loslib_c) || defined(luaall_c)
++
++#if defined(LUA_USE_MKSTEMP)
++#include <unistd.h>
++#define LUA_TMPNAMBUFSIZE     32
++#define lua_tmpnam(b,e)       { \
++      strcpy(b, "/tmp/lua_XXXXXX"); \
++      e = mkstemp(b); \
++      if (e != -1) close(e); \
++      e = (e == -1); }
++
++#else
++#define LUA_TMPNAMBUFSIZE     L_tmpnam
++#define lua_tmpnam(b,e)               { e = (tmpnam(b) == NULL); }
++#endif
++
++#endif
++
++
++/*
++@@ lua_popen spawns a new process connected to the current one through
++@* the file streams.
++** CHANGE it if you have a way to implement it in your system.
++*/
++#if defined(LUA_USE_POPEN)
++
++#define lua_popen(L,c,m)      ((void)L, popen(c,m))
++#define lua_pclose(L,file)    ((void)L, (pclose(file) != -1))
++
++#elif defined(LUA_WIN)
++
++#define lua_popen(L,c,m)      ((void)L, _popen(c,m))
++#define lua_pclose(L,file)    ((void)L, (_pclose(file) != -1))
++
++#else
++
++#define lua_popen(L,c,m)      ((void)((void)c, m),  \
++              luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0)
++#define lua_pclose(L,file)            ((void)((void)L, file), 0)
++
++#endif
++
++/*
++@@ LUA_DL_* define which dynamic-library system Lua should use.
++** CHANGE here if Lua has problems choosing the appropriate
++** dynamic-library system for your platform (either Windows' DLL, Mac's
++** dyld, or Unix's dlopen). If your system is some kind of Unix, there
++** is a good chance that it has dlopen, so LUA_DL_DLOPEN will work for
++** it.  To use dlopen you also need to adapt the src/Makefile (probably
++** adding -ldl to the linker options), so Lua does not select it
++** automatically.  (When you change the makefile to add -ldl, you must
++** also add -DLUA_USE_DLOPEN.)
++** If you do not want any kind of dynamic library, undefine all these
++** options.
++** By default, _WIN32 gets LUA_DL_DLL and MAC OS X gets LUA_DL_DYLD.
++*/
++#if defined(LUA_USE_DLOPEN)
++#define LUA_DL_DLOPEN
++#endif
++
++#if defined(LUA_WIN)
++#define LUA_DL_DLL
++#endif
++
++
++/*
++@@ LUAI_EXTRASPACE allows you to add user-specific data in a lua_State
++@* (the data goes just *before* the lua_State pointer).
++** CHANGE (define) this if you really need that. This value must be
++** a multiple of the maximum alignment required for your machine.
++*/
++#define LUAI_EXTRASPACE               0
++
++
++/*
++@@ luai_userstate* allow user-specific actions on threads.
++** CHANGE them if you defined LUAI_EXTRASPACE and need to do something
++** extra when a thread is created/deleted/resumed/yielded.
++*/
++#define luai_userstateopen(L)         ((void)L)
++#define luai_userstateclose(L)                ((void)L)
++#define luai_userstatethread(L,L1)    ((void)L)
++#define luai_userstatefree(L)         ((void)L)
++#define luai_userstateresume(L,n)     ((void)L)
++#define luai_userstateyield(L,n)      ((void)L)
++
++
++/*
++@@ LUA_INTFRMLEN is the length modifier for integer conversions
++@* in 'string.format'.
++@@ LUA_INTFRM_T is the integer type correspoding to the previous length
++@* modifier.
++** CHANGE them if your system supports long long or does not support long.
++*/
++
++#if defined(LUA_USELONGLONG)
++
++#define LUA_INTFRMLEN         "ll"
++#define LUA_INTFRM_T          long long
++
++#else
++
++#define LUA_INTFRMLEN         "l"
++#define LUA_INTFRM_T          long
++
++#endif
++
++
++
++/* =================================================================== */
++
++/*
++** Local configuration. You can use this space to add your redefinitions
++** without modifying the main part of the file.
++*/
++
++
++
++#endif
++
diff --git a/patches/lua-5.1.4/automakize.diff b/patches/lua-5.1.4/automakize.diff
new file mode 100644
index 0000000..0dae724
--- /dev/null
+++ b/patches/lua-5.1.4/automakize.diff
@@ -0,0 +1,113 @@
+Subject: Add lua support to ptxdist 1.99: add automake files
+From: Erwin Rol <erwin@erwinrol.com>
+
+This patch add lua support to ptxdist 1.99. It has a menu entry under
+scripting languages. And a patch that makes it possible to use autoconf
+to build.
+
+This part of the patch adds the automake files.
+
+Signed-off-by: Erwin Rol <erwin@erwinrol.com>
+Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
+
+---
+ Makefile.am      |    3 +++
+ doc/Makefile.am  |    5 +++++
+ etc/Makefile.am  |    8 ++++++++
+ src/Makefile.am  |   45 +++++++++++++++++++++++++++++++++++++++++++++
+ test/Makefile.am |    5 +++++
+ 5 files changed, 66 insertions(+)
+
+Index: lua-5.1.4/doc/Makefile.am
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/doc/Makefile.am  2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,5 @@
++man1_MANS = lua.1 luac.1
++
++EXTRA_DIST = \
++      contents.html  lua.1   luac.html  lua.html     manual.html \
++      logo.gif       luac.1  lua.css    readme.html
+Index: lua-5.1.4/etc/Makefile.am
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/etc/Makefile.am  2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,8 @@
++include_HEADERS = lua.hpp
++
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = lua.pc
++
++EXTRA_DIST = \
++      all.c      lua.ico    lua.pc.in  noparser.c  strict.lua \
++      luavs.bat  min.c      README
+Index: lua-5.1.4/Makefile.am
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/Makefile.am      2011-12-06 11:50:14.559076265 +0100
+@@ -0,0 +1,5 @@
++ACLOCAL_AMFLAGS = -I m4
++
++SUBDIRS = src doc etc test
++
++EXTRA_DIST = autogen.sh COPYRIGHT HISTORY INSTALL README
+Index: lua-5.1.4/src/Makefile.am
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/src/Makefile.am  2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,45 @@
++AM_CFLAGS = -Wall
++
++include_HEADERS = lua.h lualib.h lauxlib.h
++nodist_include_HEADERS = luaconf.h
++
++lib_LTLIBRARIES = liblua.la
++liblua_la_LDFLAGS = -release @VERSION@
++liblua_la_SOURCES = \
++      lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c \
++      lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c  \
++      lundump.c lvm.c lzio.c \
++      lauxlib.c lbaselib.c ldblib.c liolib.c lmathlib.c loslib.c ltablib.c \
++      lstrlib.c loadlib.c linit.c \
++      lapi.h ldebug.h lgc.h lmem.h lparser.h ltable.h lzio.h ldo.h llex.h \
++      lobject.h lstate.h ltm.h lundump.h lcode.h lfunc.h llimits.h lopcodes.h \
++      lstring.h lvm.h
++
++bin_PROGRAMS = lua luac
++
++lua_SOURCES = lua.c
++lua_LDADD = liblua.la @LUA_LIBS@
++lua_DEPENDENCIES = liblua.la
++
++luac_SOURCES = luac.c print.c
++luac_LDADD = liblua.la @LUA_LIBS@
++luac_DEPENDENCIES = liblua.la
++
++# luac must be linked statically because it uses functions that
++# don't get exported to the shared object
++luac_LDFLAGS = -static
++
++EXTRA_DIST = luaconf.h.template.in
++BUILT_SOURCES = luaconf.h
++CLEANFILES = luaconf.h
++
++readline_defs = @READLINE_DEFS@
++
++edit =        sed \
++        -e 's,%lua_datadir%,$(datadir),g' \
++        -e 's,%lua_libdir%,$(libdir),g'
++
++luaconf.h : luaconf.h.template
++      rm -f luaconf.h luaconf.h.tmp
++      $(edit) luaconf.h.template > luaconf.h.tmp
++      mv luaconf.h.tmp luaconf.h
+Index: lua-5.1.4/test/Makefile.am
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/test/Makefile.am 2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,5 @@
++EXTRA_DIST = \
++      bisect.lua  env.lua         fib.lua      life.lua          printf.lua \
++      sieve.lua   trace-calls.lua cf.lua       factorial.lua     globals.lua \
++      luac.lua    README          sort.lua     trace-globals.lua echo.lua \
++      fibfor.lua  hello.lua       readonly.lua table.lua         xd.lua
diff --git a/patches/lua-5.1.4/lua-5.1.3-autoconfize.diff b/patches/lua-5.1.4/lua-5.1.3-autoconfize.diff
deleted file mode 100644
index f9ff8ff..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-autoconfize.diff
+++ /dev/null
@@ -1,910 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: add autoconf files
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch adds the autoconf files.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- configure.ac              |   68 ++++
- etc/lua.pc.in             |   32 +
- src/luaconf.h.template.in |  777 ++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 877 insertions(+)
-
-Index: lua-5.1.4/configure.ac
-===================================================================
---- /dev/null
-+++ lua-5.1.4/configure.ac
-@@ -0,0 +1,68 @@
-+AC_PREREQ(2.59)
-+AC_INIT([Autotoolized Lua], [5.1.4], [], [lua-at])
-+
-+AC_CONFIG_HEADERS([config.h])
-+AC_CONFIG_SRCDIR([src/lapi.c])
-+
-+AM_INIT_AUTOMAKE([1.9 foreign])
-+
-+AC_PROG_CC
-+AC_PROG_LIBTOOL
-+
-+AC_ARG_WITH(
-+  [readline],
-+  [AC_HELP_STRING([--with-readline], [Use readline for interpreter input [default=yes]])],
-+  [use_readline=$withval],
-+  [use_readline=yes]
-+)
-+
-+LUA_LIBS="-lm"
-+
-+# Check for readline
-+READLINE_DEFS="#undef LUA_USE_READLINE"
-+if test "x$use_readline" == "xyes"; then
-+  AC_CHECK_LIB([readline], [readline], [], [use_readline=no])
-+  AC_CHECK_HEADERS([readline/readline.h readline/history.h], [], [use_readline=no])
-+  if test "x$use_readline" == "xno"; then
-+    AC_MSG_WARN([readline headers could not be found, disabling readline support])
-+  else
-+    READLINE_DEFS="#define LUA_USE_READLINE"
-+    LUA_LIBS="$LUA_LIBS -lreadline"
-+  fi
-+fi
-+AC_SUBST(READLINE_DEFS)
-+
-+case "$host" in
-+  *-mingw*)  use_os=win32  ;;
-+  *-darwin*) use_os=macosx ;;
-+  *)         use_os=posix  ;;
-+esac
-+
-+POSIX_DEFS="#undef LUA_USE_POSIX"
-+LUA_DL_DEFS="#undef LUA_USE_DLOPEN"
-+LUA_BUILD_AS_DLL_DEFS="#undef LUA_BUILD_AS_DLL"
-+
-+if test "x$use_os" == "xwin32"; then
-+  LUA_BUILD_AS_DLL_DEFS="#define LUA_BUILD_AS_DLL"
-+elif test "x$use_os" == "xmacosx"; then
-+  POSIX_DEFS="#define LUA_USE_POSIX"
-+  LUA_DL_DEFS="#define LUA_DL_DYLD"
-+elif test "x$use_os" == "xposix"; then
-+  POSIX_DEFS="#define LUA_USE_POSIX"
-+  LUA_DL_DEFS="#define LUA_DL_DLOPEN"
-+  LUA_LIBS="$LUA_LIBS -ldl"
-+fi
-+AC_SUBST(POSIX_DEFS)
-+AC_SUBST(LUA_DL_DEFS)
-+AC_SUBST(LUA_BUILD_AS_DLL_DEFS)
-+
-+AC_SUBST(LUA_LIBS)
-+
-+AC_CONFIG_FILES([Makefile
-+                 src/Makefile
-+                 src/luaconf.h.template
-+                 etc/Makefile
-+                 etc/lua.pc
-+                 doc/Makefile
-+               test/Makefile])
-+AC_OUTPUT
-Index: lua-5.1.4/etc/lua.pc.in
-===================================================================
---- /dev/null
-+++ lua-5.1.4/etc/lua.pc.in
-@@ -0,0 +1,32 @@
-+# lua.pc -- pkg-config data for Lua
-+
-+# vars from install Makefile
-+
-+# grep '^V=' ../Makefile
-+V= 5.1
-+# grep '^R=' ../Makefile
-+R= 5.1.3
-+
-+# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
-+# plus autotoolification
-+prefix= @prefix@
-+INSTALL_BIN= ${prefix}/bin
-+INSTALL_INC= ${prefix}/include
-+INSTALL_LIB= ${prefix}/lib
-+INSTALL_MAN= ${prefix}/man/man1
-+INSTALL_LMOD= ${prefix}/share/lua/${V}
-+INSTALL_CMOD= ${prefix}/lib/lua/${V}
-+
-+# canonical vars
-+exec_prefix=${prefix}
-+libdir=${exec_prefix}/lib
-+includedir=${prefix}/include
-+
-+Name: Lua
-+Description: An Extensible Extension Language
-+Version: ${R}
-+Requires:
-+Libs: -L${libdir} -llua -lm
-+Cflags: -I${includedir}
-+
-+# (end of lua.pc)
-Index: lua-5.1.4/src/luaconf.h.template.in
-===================================================================
---- /dev/null
-+++ lua-5.1.4/src/luaconf.h.template.in
-@@ -0,0 +1,777 @@
-+/*
-+** $Id: luaconf.h,v 1.82a 2006/04/10 18:27:23 roberto Exp $
-+** Configuration file for Lua
-+** See Copyright Notice in lua.h
-+*/
-+
-+
-+#ifndef lconfig_h
-+#define lconfig_h
-+
-+#include <limits.h>
-+#include <stddef.h>
-+
-+/*
-+** =================
-+** Autotoolification
-+** =================
-+*/
-+
-+/** autotoolize patch **/
-+@POSIX_DEFS@
-+@LUA_DL_DEFS@
-+@LUA_BUILD_AS_DLL_DEFS@
-+@READLINE_DEFS@
-+/** autotoolize patch **/
-+
-+/*
-+** ==================================================================
-+** Search for "@@" to find all configurable definitions.
-+** ===================================================================
-+*/
-+
-+
-+/*
-+@@ LUA_ANSI controls the use of non-ansi features.
-+** CHANGE it (define it) if you want Lua to avoid the use of any
-+** non-ansi feature or library.
-+*/
-+#if defined(__STRICT_ANSI__)
-+#define LUA_ANSI
-+#endif
-+
-+
-+#if !defined(LUA_ANSI) && defined(_WIN32)
-+#define LUA_WIN
-+#endif
-+
-+#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)
-+#define LUA_USE_POSIX
-+#define LUA_DL_DYLD           /* does not need extra library */
-+#endif
-+
-+
-+
-+/*
-+@@ LUA_USE_POSIX includes all functionallity listed as X/Open System
-+@* Interfaces Extension (XSI).
-+** CHANGE it (define it) if your system is XSI compatible.
-+*/
-+#if defined(LUA_USE_POSIX)
-+#define LUA_USE_MKSTEMP
-+#define LUA_USE_ISATTY
-+#define LUA_USE_POPEN
-+#define LUA_USE_ULONGJMP
-+#endif
-+
-+
-+/*
-+@@ LUA_PATH and LUA_CPATH are the names of the environment variables that
-+@* Lua check to set its paths.
-+@@ LUA_INIT is the name of the environment variable that Lua
-+@* checks for initialization code.
-+** CHANGE them if you want different names.
-+*/
-+#define LUA_PATH        "LUA_PATH"
-+#define LUA_CPATH       "LUA_CPATH"
-+#define LUA_INIT      "LUA_INIT"
-+
-+
-+/*
-+@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for
-+@* Lua libraries.
-+@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for
-+@* C libraries.
-+** CHANGE them if your machine has a non-conventional directory
-+** hierarchy or if you want to install your libraries in
-+** non-conventional directories.
-+*/
-+#if defined(_WIN32)
-+/*
-+** In Windows, any exclamation mark ('!') in the path is replaced by the
-+** path of the directory of the executable file of the current process.
-+*/
-+#define LUA_LDIR      "!\\lua\\"
-+#define LUA_CDIR      "!\\"
-+#define LUA_PATH_DEFAULT  \
-+              ".\\?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?\\init.lua;" \
-+                           LUA_CDIR"?.lua;"  LUA_CDIR"?\\init.lua"
-+#define LUA_CPATH_DEFAULT \
-+      ".\\?.dll;"  LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
-+
-+#else
-+
-+/** autotoolize patch **/
-+#define LUA_LDIR      "%lua_datadir%/lua/5.1/"
-+#define LUA_CDIR      "%lua_libdir%/lua/5.1/"
-+/** autotoolize patch **/
-+
-+#define LUA_PATH_DEFAULT  \
-+              "./?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?/init.lua;" \
-+                          LUA_CDIR"?.lua;"  LUA_CDIR"?/init.lua"
-+#define LUA_CPATH_DEFAULT \
-+      "./?.so;"  LUA_CDIR"?.so;" LUA_CDIR"loadall.so"
-+#endif
-+
-+
-+/*
-+@@ LUA_DIRSEP is the directory separator (for submodules).
-+** CHANGE it if your machine does not use "/" as the directory separator
-+** and is not Windows. (On Windows Lua automatically uses "\".)
-+*/
-+#if defined(_WIN32)
-+#define LUA_DIRSEP    "\\"
-+#else
-+#define LUA_DIRSEP    "/"
-+#endif
-+
-+
-+/*
-+@@ LUA_PATHSEP is the character that separates templates in a path.
-+@@ LUA_PATH_MARK is the string that marks the substitution points in a
-+@* template.
-+@@ LUA_EXECDIR in a Windows path is replaced by the executable's
-+@* directory.
-+@@ LUA_IGMARK is a mark to ignore all before it when bulding the
-+@* luaopen_ function name.
-+** CHANGE them if for some reason your system cannot use those
-+** characters. (E.g., if one of those characters is a common character
-+** in file/directory names.) Probably you do not need to change them.
-+*/
-+#define LUA_PATHSEP   ";"
-+#define LUA_PATH_MARK "?"
-+#define LUA_EXECDIR   "!"
-+#define LUA_IGMARK    "-"
-+
-+
-+/*
-+@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger.
-+** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
-+** machines, ptrdiff_t gives a good choice between int or long.)
-+*/
-+#define LUA_INTEGER   ptrdiff_t
-+
-+
-+/*
-+@@ LUA_API is a mark for all core API functions.
-+@@ LUALIB_API is a mark for all standard library functions.
-+** CHANGE them if you need to define those functions in some special way.
-+** For instance, if you want to create one Windows DLL with the core and
-+** the libraries, you may want to use the following definition (define
-+** LUA_BUILD_AS_DLL to get it).
-+*/
-+#if defined(LUA_BUILD_AS_DLL)
-+
-+#if defined(LUA_CORE) || defined(LUA_LIB)
-+#define LUA_API __declspec(dllexport)
-+#else
-+#define LUA_API __declspec(dllimport)
-+#endif
-+
-+#else
-+
-+#define LUA_API               extern
-+
-+#endif
-+
-+/* more often than not the libs go together with the core */
-+#define LUALIB_API    LUA_API
-+
-+
-+/*
-+@@ LUAI_FUNC is a mark for all extern functions that are not to be
-+@* exported to outside modules.
-+@@ LUAI_DATA is a mark for all extern (const) variables that are not to
-+@* be exported to outside modules.
-+** CHANGE them if you need to mark them in some special way. Elf/gcc
-+** (versions 3.2 and later) mark them as "hidden" to optimize access
-+** when Lua is compiled as a shared library.
-+*/
-+#if defined(luaall_c)
-+#define LUAI_FUNC     static
-+#define LUAI_DATA     /* empty */
-+
-+#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
-+      defined(__ELF__)
-+#define LUAI_FUNC     __attribute__((visibility("hidden"))) extern
-+#define LUAI_DATA     LUAI_FUNC
-+
-+#else
-+#define LUAI_FUNC     extern
-+#define LUAI_DATA     extern
-+#endif
-+
-+
-+
-+/*
-+@@ LUA_QL describes how error messages quote program elements.
-+** CHANGE it if you want a different appearance.
-+*/
-+#define LUA_QL(x)     "'" x "'"
-+#define LUA_QS                LUA_QL("%s")
-+
-+
-+/*
-+@@ LUA_IDSIZE gives the maximum size for the description of the source
-+@* of a function in debug information.
-+** CHANGE it if you want a different size.
-+*/
-+#define LUA_IDSIZE    60
-+
-+
-+/*
-+** {==================================================================
-+** Stand-alone configuration
-+** ===================================================================
-+*/
-+
-+#if defined(lua_c) || defined(luaall_c)
-+
-+/*
-+@@ lua_stdin_is_tty detects whether the standard input is a 'tty' (that
-+@* is, whether we're running lua interactively).
-+** CHANGE it if you have a better definition for non-POSIX/non-Windows
-+** systems.
-+*/
-+#if defined(LUA_USE_ISATTY)
-+#include <unistd.h>
-+#define lua_stdin_is_tty()    isatty(0)
-+#elif defined(LUA_WIN)
-+#include <io.h>
-+#include <stdio.h>
-+#define lua_stdin_is_tty()    _isatty(_fileno(stdin))
-+#else
-+#define lua_stdin_is_tty()    1  /* assume stdin is a tty */
-+#endif
-+
-+
-+/*
-+@@ LUA_PROMPT is the default prompt used by stand-alone Lua.
-+@@ LUA_PROMPT2 is the default continuation prompt used by stand-alone Lua.
-+** CHANGE them if you want different prompts. (You can also change the
-+** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.)
-+*/
-+#define LUA_PROMPT            "> "
-+#define LUA_PROMPT2           ">> "
-+
-+
-+/*
-+@@ LUA_PROGNAME is the default name for the stand-alone Lua program.
-+** CHANGE it if your stand-alone interpreter has a different name and
-+** your system is not able to detect that name automatically.
-+*/
-+#define LUA_PROGNAME          "lua"
-+
-+
-+/*
-+@@ LUA_MAXINPUT is the maximum length for an input line in the
-+@* stand-alone interpreter.
-+** CHANGE it if you need longer lines.
-+*/
-+#define LUA_MAXINPUT  512
-+
-+
-+/*
-+@@ lua_readline defines how to show a prompt and then read a line from
-+@* the standard input.
-+@@ lua_saveline defines how to "save" a read line in a "history".
-+@@ lua_freeline defines how to free a line read by lua_readline.
-+** CHANGE them if you want to improve this functionality (e.g., by using
-+** GNU readline and history facilities).
-+*/
-+#if defined(LUA_USE_READLINE)
-+#include <stdio.h>
-+#include <readline/readline.h>
-+#include <readline/history.h>
-+#define lua_readline(L,b,p)   ((void)L, ((b)=readline(p)) != NULL)
-+#define lua_saveline(L,idx) \
-+      if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \
-+        add_history(lua_tostring(L, idx));  /* add it to history */
-+#define lua_freeline(L,b)     ((void)L, free(b))
-+#else
-+#define lua_readline(L,b,p)   \
-+      ((void)L, fputs(p, stdout), fflush(stdout),  /* show prompt */ \
-+      fgets(b, LUA_MAXINPUT, stdin) != NULL)  /* get line */
-+#define lua_saveline(L,idx)   { (void)L; (void)idx; }
-+#define lua_freeline(L,b)     { (void)L; (void)b; }
-+#endif
-+
-+#endif
-+
-+/* }================================================================== */
-+
-+
-+/*
-+@@ LUAI_GCPAUSE defines the default pause between garbage-collector cycles
-+@* as a percentage.
-+** CHANGE it if you want the GC to run faster or slower (higher values
-+** mean larger pauses which mean slower collection.) You can also change
-+** this value dynamically.
-+*/
-+#define LUAI_GCPAUSE  200  /* 200% (wait memory to double before next GC) */
-+
-+
-+/*
-+@@ LUAI_GCMUL defines the default speed of garbage collection relative to
-+@* memory allocation as a percentage.
-+** CHANGE it if you want to change the granularity of the garbage
-+** collection. (Higher values mean coarser collections. 0 represents
-+** infinity, where each step performs a full collection.) You can also
-+** change this value dynamically.
-+*/
-+#define LUAI_GCMUL    200 /* GC runs 'twice the speed' of memory allocation */
-+
-+
-+
-+/*
-+@@ LUA_COMPAT_GETN controls compatibility with old getn behavior.
-+** CHANGE it (define it) if you want exact compatibility with the
-+** behavior of setn/getn in Lua 5.0.
-+*/
-+#undef LUA_COMPAT_GETN
-+
-+/*
-+@@ LUA_COMPAT_LOADLIB controls compatibility about global loadlib.
-+** CHANGE it to undefined as soon as you do not need a global 'loadlib'
-+** function (the function is still available as 'package.loadlib').
-+*/
-+#undef LUA_COMPAT_LOADLIB
-+
-+/*
-+@@ LUA_COMPAT_VARARG controls compatibility with old vararg feature.
-+** CHANGE it to undefined as soon as your programs use only '...' to
-+** access vararg parameters (instead of the old 'arg' table).
-+*/
-+#define LUA_COMPAT_VARARG
-+
-+/*
-+@@ LUA_COMPAT_MOD controls compatibility with old math.mod function.
-+** CHANGE it to undefined as soon as your programs use 'math.fmod' or
-+** the new '%' operator instead of 'math.mod'.
-+*/
-+#define LUA_COMPAT_MOD
-+
-+/*
-+@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting
-+@* facility.
-+** CHANGE it to 2 if you want the old behaviour, or undefine it to turn
-+** off the advisory error when nesting [[...]].
-+*/
-+#define LUA_COMPAT_LSTR               1
-+
-+/*
-+@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name.
-+** CHANGE it to undefined as soon as you rename 'string.gfind' to
-+** 'string.gmatch'.
-+*/
-+#define LUA_COMPAT_GFIND
-+
-+/*
-+@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib'
-+@* behavior.
-+** CHANGE it to undefined as soon as you replace to 'luaL_register'
-+** your uses of 'luaL_openlib'
-+*/
-+#define LUA_COMPAT_OPENLIB
-+
-+
-+
-+/*
-+@@ luai_apicheck is the assert macro used by the Lua-C API.
-+** CHANGE luai_apicheck if you want Lua to perform some checks in the
-+** parameters it gets from API calls. This may slow down the interpreter
-+** a bit, but may be quite useful when debugging C code that interfaces
-+** with Lua. A useful redefinition is to use assert.h.
-+*/
-+#if defined(LUA_USE_APICHECK)
-+#include <assert.h>
-+#define luai_apicheck(L,o)    { (void)L; assert(o); }
-+#else
-+#define luai_apicheck(L,o)    { (void)L; }
-+#endif
-+
-+
-+/*
-+@@ LUAI_BITSINT defines the number of bits in an int.
-+** CHANGE here if Lua cannot automatically detect the number of bits of
-+** your machine. Probably you do not need to change this.
-+*/
-+/* avoid overflows in comparison */
-+#if INT_MAX-20 < 32760
-+#define LUAI_BITSINT  16
-+#elif INT_MAX > 2147483640L
-+/* int has at least 32 bits */
-+#define LUAI_BITSINT  32
-+#else
-+#error "you must define LUA_BITSINT with number of bits in an integer"
-+#endif
-+
-+
-+/*
-+@@ LUAI_UINT32 is an unsigned integer with at least 32 bits.
-+@@ LUAI_INT32 is an signed integer with at least 32 bits.
-+@@ LUAI_UMEM is an unsigned integer big enough to count the total
-+@* memory used by Lua.
-+@@ LUAI_MEM is a signed integer big enough to count the total memory
-+@* used by Lua.
-+** CHANGE here if for some weird reason the default definitions are not
-+** good enough for your machine. (The definitions in the 'else'
-+** part always works, but may waste space on machines with 64-bit
-+** longs.) Probably you do not need to change this.
-+*/
-+#if LUAI_BITSINT >= 32
-+#define LUAI_UINT32   unsigned int
-+#define LUAI_INT32    int
-+#define LUAI_MAXINT32 INT_MAX
-+#define LUAI_UMEM     size_t
-+#define LUAI_MEM      ptrdiff_t
-+#else
-+/* 16-bit ints */
-+#define LUAI_UINT32   unsigned long
-+#define LUAI_INT32    long
-+#define LUAI_MAXINT32 LONG_MAX
-+#define LUAI_UMEM     unsigned long
-+#define LUAI_MEM      long
-+#endif
-+
-+
-+/*
-+@@ LUAI_MAXCALLS limits the number of nested calls.
-+** CHANGE it if you need really deep recursive calls. This limit is
-+** arbitrary; its only purpose is to stop infinite recursion before
-+** exhausting memory.
-+*/
-+#define LUAI_MAXCALLS 20000
-+
-+
-+/*
-+@@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function
-+@* can use.
-+** CHANGE it if you need lots of (Lua) stack space for your C
-+** functions. This limit is arbitrary; its only purpose is to stop C
-+** functions to consume unlimited stack space.
-+*/
-+#define LUAI_MAXCSTACK        2048
-+
-+
-+
-+/*
-+** {==================================================================
-+** CHANGE (to smaller values) the following definitions if your system
-+** has a small C stack. (Or you may want to change them to larger
-+** values if your system has a large C stack and these limits are
-+** too rigid for you.) Some of these constants control the size of
-+** stack-allocated arrays used by the compiler or the interpreter, while
-+** others limit the maximum number of recursive calls that the compiler
-+** or the interpreter can perform. Values too large may cause a C stack
-+** overflow for some forms of deep constructs.
-+** ===================================================================
-+*/
-+
-+
-+/*
-+@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and
-+@* syntactical nested non-terminals in a program.
-+*/
-+#define LUAI_MAXCCALLS                200
-+
-+
-+/*
-+@@ LUAI_MAXVARS is the maximum number of local variables per function
-+@* (must be smaller than 250).
-+*/
-+#define LUAI_MAXVARS          200
-+
-+
-+/*
-+@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function
-+@* (must be smaller than 250).
-+*/
-+#define LUAI_MAXUPVALUES      60
-+
-+
-+/*
-+@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
-+*/
-+#define LUAL_BUFFERSIZE               BUFSIZ
-+
-+/* }================================================================== */
-+
-+
-+
-+
-+/*
-+** {==================================================================
-+@@ LUA_NUMBER is the type of numbers in Lua.
-+** CHANGE the following definitions only if you want to build Lua
-+** with a number type different from double. You may also need to
-+** change lua_number2int & lua_number2integer.
-+** ===================================================================
-+*/
-+
-+#define LUA_NUMBER_DOUBLE
-+#define LUA_NUMBER    double
-+
-+/*
-+@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
-+@* over a number.
-+*/
-+#define LUAI_UACNUMBER        double
-+
-+
-+/*
-+@@ LUA_NUMBER_SCAN is the format for reading numbers.
-+@@ LUA_NUMBER_FMT is the format for writing numbers.
-+@@ lua_number2str converts a number to a string.
-+@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
-+@@ lua_str2number converts a string to a number.
-+*/
-+#define LUA_NUMBER_SCAN               "%lf"
-+#define LUA_NUMBER_FMT                "%.14g"
-+#define lua_number2str(s,n)   sprintf((s), LUA_NUMBER_FMT, (n))
-+#define LUAI_MAXNUMBER2STR    32 /* 16 digits, sign, point, and \0 */
-+#define lua_str2number(s,p)   strtod((s), (p))
-+
-+
-+/*
-+@@ The luai_num* macros define the primitive operations over numbers.
-+*/
-+#if defined(LUA_CORE)
-+#include <math.h>
-+#define luai_numadd(a,b)      ((a)+(b))
-+#define luai_numsub(a,b)      ((a)-(b))
-+#define luai_nummul(a,b)      ((a)*(b))
-+#define luai_numdiv(a,b)      ((a)/(b))
-+#define luai_nummod(a,b)      ((a) - floor((a)/(b))*(b))
-+#define luai_numpow(a,b)      (pow(a,b))
-+#define luai_numunm(a)                (-(a))
-+#define luai_numeq(a,b)               ((a)==(b))
-+#define luai_numlt(a,b)               ((a)<(b))
-+#define luai_numle(a,b)               ((a)<=(b))
-+#define luai_numisnan(a)      (!luai_numeq((a), (a)))
-+#endif
-+
-+
-+/*
-+@@ lua_number2int is a macro to convert lua_Number to int.
-+@@ lua_number2integer is a macro to convert lua_Number to lua_Integer.
-+** CHANGE them if you know a faster way to convert a lua_Number to
-+** int (with any rounding method and without throwing errors) in your
-+** system. In Pentium machines, a naive typecast from double to int
-+** in C is extremely slow, so any alternative is worth trying.
-+*/
-+
-+/* On a Pentium, resort to a trick */
-+#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \
-+    (defined(__i386) || defined (_M_IX86) || defined(__i386__))
-+
-+/* On a Microsoft compiler, use assembler */
-+#if defined(_MSC_VER)
-+
-+#define lua_number2int(i,d)   __asm fld d   __asm fistp i
-+#define lua_number2integer(i,n)               lua_number2int(i, n)
-+
-+/* the next trick should work on any Pentium, but sometimes clashes
-+   with a DirectX idiosyncrasy */
-+#else
-+
-+union luai_Cast { double l_d; long l_l; };
-+#define lua_number2int(i,d) \
-+  { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; }
-+#define lua_number2integer(i,n)               lua_number2int(i, n)
-+
-+#endif
-+
-+
-+/* this option always works, but may be slow */
-+#else
-+#define lua_number2int(i,d)   ((i)=(int)(d))
-+#define lua_number2integer(i,d)       ((i)=(lua_Integer)(d))
-+
-+#endif
-+
-+/* }================================================================== */
-+
-+
-+/*
-+@@ LUAI_USER_ALIGNMENT_T is a type that requires maximum alignment.
-+** CHANGE it if your system requires alignments larger than double. (For
-+** instance, if your system supports long doubles and they must be
-+** aligned in 16-byte boundaries, then you should add long double in the
-+** union.) Probably you do not need to change this.
-+*/
-+#define LUAI_USER_ALIGNMENT_T union { double u; void *s; long l; }
-+
-+
-+/*
-+@@ LUAI_THROW/LUAI_TRY define how Lua does exception handling.
-+** CHANGE them if you prefer to use longjmp/setjmp even with C++
-+** or if want/don't to use _longjmp/_setjmp instead of regular
-+** longjmp/setjmp. By default, Lua handles errors with exceptions when
-+** compiling as C++ code, with _longjmp/_setjmp when asked to use them,
-+** and with longjmp/setjmp otherwise.
-+*/
-+#if defined(__cplusplus)
-+/* C++ exceptions */
-+#define LUAI_THROW(L,c)       throw(c)
-+#define LUAI_TRY(L,c,a)       try { a } catch(...) \
-+      { if ((c)->status == 0) (c)->status = -1; }
-+#define luai_jmpbuf   int  /* dummy variable */
-+
-+#elif defined(LUA_USE_ULONGJMP)
-+/* in Unix, try _longjmp/_setjmp (more efficient) */
-+#define LUAI_THROW(L,c)       _longjmp((c)->b, 1)
-+#define LUAI_TRY(L,c,a)       if (_setjmp((c)->b) == 0) { a }
-+#define luai_jmpbuf   jmp_buf
-+
-+#else
-+/* default handling with long jumps */
-+#define LUAI_THROW(L,c)       longjmp((c)->b, 1)
-+#define LUAI_TRY(L,c,a)       if (setjmp((c)->b) == 0) { a }
-+#define luai_jmpbuf   jmp_buf
-+
-+#endif
-+
-+
-+/*
-+@@ LUA_MAXCAPTURES is the maximum number of captures that a pattern
-+@* can do during pattern-matching.
-+** CHANGE it if you need more captures. This limit is arbitrary.
-+*/
-+#define LUA_MAXCAPTURES               32
-+
-+
-+/*
-+@@ lua_tmpnam is the function that the OS library uses to create a
-+@* temporary name.
-+@@ LUA_TMPNAMBUFSIZE is the maximum size of a name created by lua_tmpnam.
-+** CHANGE them if you have an alternative to tmpnam (which is considered
-+** insecure) or if you want the original tmpnam anyway.  By default, Lua
-+** uses tmpnam except when POSIX is available, where it uses mkstemp.
-+*/
-+#if defined(loslib_c) || defined(luaall_c)
-+
-+#if defined(LUA_USE_MKSTEMP)
-+#include <unistd.h>
-+#define LUA_TMPNAMBUFSIZE     32
-+#define lua_tmpnam(b,e)       { \
-+      strcpy(b, "/tmp/lua_XXXXXX"); \
-+      e = mkstemp(b); \
-+      if (e != -1) close(e); \
-+      e = (e == -1); }
-+
-+#else
-+#define LUA_TMPNAMBUFSIZE     L_tmpnam
-+#define lua_tmpnam(b,e)               { e = (tmpnam(b) == NULL); }
-+#endif
-+
-+#endif
-+
-+
-+/*
-+@@ lua_popen spawns a new process connected to the current one through
-+@* the file streams.
-+** CHANGE it if you have a way to implement it in your system.
-+*/
-+#if defined(LUA_USE_POPEN)
-+
-+#define lua_popen(L,c,m)      ((void)L, popen(c,m))
-+#define lua_pclose(L,file)    ((void)L, (pclose(file) != -1))
-+
-+#elif defined(LUA_WIN)
-+
-+#define lua_popen(L,c,m)      ((void)L, _popen(c,m))
-+#define lua_pclose(L,file)    ((void)L, (_pclose(file) != -1))
-+
-+#else
-+
-+#define lua_popen(L,c,m)      ((void)((void)c, m),  \
-+              luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0)
-+#define lua_pclose(L,file)            ((void)((void)L, file), 0)
-+
-+#endif
-+
-+/*
-+@@ LUA_DL_* define which dynamic-library system Lua should use.
-+** CHANGE here if Lua has problems choosing the appropriate
-+** dynamic-library system for your platform (either Windows' DLL, Mac's
-+** dyld, or Unix's dlopen). If your system is some kind of Unix, there
-+** is a good chance that it has dlopen, so LUA_DL_DLOPEN will work for
-+** it.  To use dlopen you also need to adapt the src/Makefile (probably
-+** adding -ldl to the linker options), so Lua does not select it
-+** automatically.  (When you change the makefile to add -ldl, you must
-+** also add -DLUA_USE_DLOPEN.)
-+** If you do not want any kind of dynamic library, undefine all these
-+** options.
-+** By default, _WIN32 gets LUA_DL_DLL and MAC OS X gets LUA_DL_DYLD.
-+*/
-+#if defined(LUA_USE_DLOPEN)
-+#define LUA_DL_DLOPEN
-+#endif
-+
-+#if defined(LUA_WIN)
-+#define LUA_DL_DLL
-+#endif
-+
-+
-+/*
-+@@ LUAI_EXTRASPACE allows you to add user-specific data in a lua_State
-+@* (the data goes just *before* the lua_State pointer).
-+** CHANGE (define) this if you really need that. This value must be
-+** a multiple of the maximum alignment required for your machine.
-+*/
-+#define LUAI_EXTRASPACE               0
-+
-+
-+/*
-+@@ luai_userstate* allow user-specific actions on threads.
-+** CHANGE them if you defined LUAI_EXTRASPACE and need to do something
-+** extra when a thread is created/deleted/resumed/yielded.
-+*/
-+#define luai_userstateopen(L)         ((void)L)
-+#define luai_userstateclose(L)                ((void)L)
-+#define luai_userstatethread(L,L1)    ((void)L)
-+#define luai_userstatefree(L)         ((void)L)
-+#define luai_userstateresume(L,n)     ((void)L)
-+#define luai_userstateyield(L,n)      ((void)L)
-+
-+
-+/*
-+@@ LUA_INTFRMLEN is the length modifier for integer conversions
-+@* in 'string.format'.
-+@@ LUA_INTFRM_T is the integer type correspoding to the previous length
-+@* modifier.
-+** CHANGE them if your system supports long long or does not support long.
-+*/
-+
-+#if defined(LUA_USELONGLONG)
-+
-+#define LUA_INTFRMLEN         "ll"
-+#define LUA_INTFRM_T          long long
-+
-+#else
-+
-+#define LUA_INTFRMLEN         "l"
-+#define LUA_INTFRM_T          long
-+
-+#endif
-+
-+
-+
-+/* =================================================================== */
-+
-+/*
-+** Local configuration. You can use this space to add your redefinitions
-+** without modifying the main part of the file.
-+*/
-+
-+
-+
-+#endif
-+
diff --git a/patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff b/patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff
deleted file mode 100644
index 04cfb8a..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: add autogen.sh
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch adds an autogen.sh script.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- autogen.sh |    5 +++++
- 1 file changed, 5 insertions(+)
-
-Index: lua-5.1.3/autogen.sh
-===================================================================
---- /dev/null
-+++ lua-5.1.3/autogen.sh
-@@ -0,0 +1,5 @@
-+#!/bin/sh
-+
-+autoreconf -fvi
-+
-+echo "Now run ./configure"
diff --git a/patches/lua-5.1.4/lua-5.1.3-automakize.diff b/patches/lua-5.1.4/lua-5.1.3-automakize.diff
deleted file mode 100644
index 7fa3814..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-automakize.diff
+++ /dev/null
@@ -1,111 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: add automake files
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch adds the automake files.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- Makefile.am      |    3 +++
- doc/Makefile.am  |    5 +++++
- etc/Makefile.am  |    8 ++++++++
- src/Makefile.am  |   45 +++++++++++++++++++++++++++++++++++++++++++++
- test/Makefile.am |    5 +++++
- 5 files changed, 66 insertions(+)
-
-Index: lua-5.1.3/doc/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/doc/Makefile.am
-@@ -0,0 +1,5 @@
-+man1_MANS = lua.1 luac.1
-+
-+EXTRA_DIST = \
-+      contents.html  lua.1   luac.html  lua.html     manual.html \
-+      logo.gif       luac.1  lua.css    readme.html
-Index: lua-5.1.3/etc/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/etc/Makefile.am
-@@ -0,0 +1,8 @@
-+include_HEADERS = lua.hpp
-+
-+pkgconfigdir = $(libdir)/pkgconfig
-+pkgconfig_DATA = lua.pc
-+
-+EXTRA_DIST = \
-+      all.c      lua.ico    lua.pc.in  noparser.c  strict.lua \
-+      luavs.bat  min.c      README
-Index: lua-5.1.3/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/Makefile.am
-@@ -0,0 +1,3 @@
-+SUBDIRS = src doc etc test
-+
-+EXTRA_DIST = autogen.sh COPYRIGHT HISTORY INSTALL README
-Index: lua-5.1.3/src/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/src/Makefile.am
-@@ -0,0 +1,45 @@
-+AM_CFLAGS = -Wall
-+
-+include_HEADERS = lua.h lualib.h lauxlib.h
-+nodist_include_HEADERS = luaconf.h
-+
-+lib_LTLIBRARIES = liblua.la
-+liblua_la_LDFLAGS = -release 5.1.3
-+liblua_la_SOURCES = \
-+      lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c \
-+      lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c  \
-+      lundump.c lvm.c lzio.c \
-+      lauxlib.c lbaselib.c ldblib.c liolib.c lmathlib.c loslib.c ltablib.c \
-+      lstrlib.c loadlib.c linit.c \
-+      lapi.h ldebug.h lgc.h lmem.h lparser.h ltable.h lzio.h ldo.h llex.h \
-+      lobject.h lstate.h ltm.h lundump.h lcode.h lfunc.h llimits.h lopcodes.h \
-+      lstring.h lvm.h
-+
-+bin_PROGRAMS = lua luac
-+
-+lua_SOURCES = lua.c
-+lua_LDADD = liblua.la @LUA_LIBS@
-+lua_DEPENDENCIES = liblua.la
-+
-+luac_SOURCES = luac.c print.c
-+luac_LDADD = liblua.la @LUA_LIBS@
-+luac_DEPENDENCIES = liblua.la
-+
-+# luac must be linked statically because it uses functions that
-+# don't get exported to the shared object
-+luac_LDFLAGS = -static
-+
-+EXTRA_DIST = luaconf.h.template.in
-+BUILT_SOURCES = luaconf.h
-+CLEANFILES = luaconf.h
-+
-+readline_defs = @READLINE_DEFS@
-+
-+edit =        sed \
-+        -e 's,%lua_datadir%,$(datadir),g' \
-+        -e 's,%lua_libdir%,$(libdir),g'
-+
-+luaconf.h : luaconf.h.template
-+      rm -f luaconf.h luaconf.h.tmp
-+      $(edit) luaconf.h.template > luaconf.h.tmp
-+      mv luaconf.h.tmp luaconf.h
-Index: lua-5.1.3/test/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/test/Makefile.am
-@@ -0,0 +1,5 @@
-+EXTRA_DIST = \
-+      bisect.lua  env.lua         fib.lua      life.lua          printf.lua \
-+      sieve.lua   trace-calls.lua cf.lua       factorial.lua     globals.lua \
-+      luac.lua    README          sort.lua     trace-globals.lua echo.lua \
-+      fibfor.lua  hello.lua       readonly.lua table.lua         xd.lua
diff --git a/patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff b/patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff
deleted file mode 100644
index 172e31e..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff
+++ /dev/null
@@ -1,149 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: remove old Makefile
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch removes the old Makefile.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- Makefile |  128 ---------------------------------------------------------------
- 1 file changed, 128 deletions(-)
-
-Index: lua-5.1.4/Makefile
-===================================================================
---- lua-5.1.4.orig/Makefile
-+++ /dev/null
-@@ -1,128 +0,0 @@
--# makefile for installing Lua
--# see INSTALL for installation instructions
--# see src/Makefile and src/luaconf.h for further customization
--
--# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
--
--# Your platform. See PLATS for possible values.
--PLAT= none
--
--# Where to install. The installation starts in the src and doc directories,
--# so take care if INSTALL_TOP is not an absolute path.
--INSTALL_TOP= /usr/local
--INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
--INSTALL_LIB= $(INSTALL_TOP)/lib
--INSTALL_MAN= $(INSTALL_TOP)/man/man1
--#
--# You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with
--# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h (and also with etc/lua.pc).
--INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
--INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
--
--# How to install. If your install program does not support "-p", then you
--# may have to run ranlib on the installed liblua.a (do "make ranlib").
--INSTALL= install -p
--INSTALL_EXEC= $(INSTALL) -m 0755
--INSTALL_DATA= $(INSTALL) -m 0644
--#
--# If you don't have install you can use cp instead.
--# INSTALL= cp -p
--# INSTALL_EXEC= $(INSTALL)
--# INSTALL_DATA= $(INSTALL)
--
--# Utilities.
--MKDIR= mkdir -p
--RANLIB= ranlib
--
--# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
--
--# Convenience platforms targets.
--PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
--
--# What to install.
--TO_BIN= lua luac
--TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
--TO_LIB= liblua.a
--TO_MAN= lua.1 luac.1
--
--# Lua version and release.
--V= 5.1
--R= 5.1.4
--
--all:  $(PLAT)
--
--$(PLATS) clean:
--      cd src && $(MAKE) $@
--
--test: dummy
--      src/lua test/hello.lua
--
--install: dummy
--      cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
--      cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
--      cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
--      cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
--      cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
--
--ranlib:
--      cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
--
--local:
--      $(MAKE) install INSTALL_TOP=..
--
--none:
--      @echo "Please do"
--      @echo "   make PLATFORM"
--      @echo "where PLATFORM is one of these:"
--      @echo "   $(PLATS)"
--      @echo "See INSTALL for complete instructions."
--
--# make may get confused with test/ and INSTALL in a case-insensitive OS
--dummy:
--
--# echo config parameters
--echo:
--      @echo ""
--      @echo "These are the parameters currently set in src/Makefile to build Lua $R:"
--      @echo ""
--      @cd src && $(MAKE) -s echo
--      @echo ""
--      @echo "These are the parameters currently set in Makefile to install Lua $R:"
--      @echo ""
--      @echo "PLAT = $(PLAT)"
--      @echo "INSTALL_TOP = $(INSTALL_TOP)"
--      @echo "INSTALL_BIN = $(INSTALL_BIN)"
--      @echo "INSTALL_INC = $(INSTALL_INC)"
--      @echo "INSTALL_LIB = $(INSTALL_LIB)"
--      @echo "INSTALL_MAN = $(INSTALL_MAN)"
--      @echo "INSTALL_LMOD = $(INSTALL_LMOD)"
--      @echo "INSTALL_CMOD = $(INSTALL_CMOD)"
--      @echo "INSTALL_EXEC = $(INSTALL_EXEC)"
--      @echo "INSTALL_DATA = $(INSTALL_DATA)"
--      @echo ""
--      @echo "See also src/luaconf.h ."
--      @echo ""
--
--# echo private config parameters
--pecho:
--      @echo "V = $(V)"
--      @echo "R = $(R)"
--      @echo "TO_BIN = $(TO_BIN)"
--      @echo "TO_INC = $(TO_INC)"
--      @echo "TO_LIB = $(TO_LIB)"
--      @echo "TO_MAN = $(TO_MAN)"
--
--# echo config parameters as Lua code
--# uncomment the last sed expression if you want nil instead of empty strings
--lecho:
--      @echo "-- installation parameters for Lua $R"
--      @echo "VERSION = '$V'"
--      @echo "RELEASE = '$R'"
--      @$(MAKE) echo | grep = | sed -e 's/= /= "/' -e 's/$$/"/' #-e 's/""/nil/'
--      @echo "-- EOF"
--
--# list targets that do not create files (but not all makes understand .PHONY)
--.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
--
--# (end of Makefile)
diff --git a/patches/lua-5.1.4/remove-Makefile.diff b/patches/lua-5.1.4/remove-Makefile.diff
new file mode 100644
index 0000000..172e31e
--- /dev/null
+++ b/patches/lua-5.1.4/remove-Makefile.diff
@@ -0,0 +1,149 @@
+Subject: Add lua support to ptxdist 1.99: remove old Makefile
+From: Erwin Rol <erwin@erwinrol.com>
+
+This patch add lua support to ptxdist 1.99. It has a menu entry under
+scripting languages. And a patch that makes it possible to use autoconf
+to build.
+
+This part of the patch removes the old Makefile.
+
+Signed-off-by: Erwin Rol <erwin@erwinrol.com>
+Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
+
+---
+ Makefile |  128 ---------------------------------------------------------------
+ 1 file changed, 128 deletions(-)
+
+Index: lua-5.1.4/Makefile
+===================================================================
+--- lua-5.1.4.orig/Makefile
++++ /dev/null
+@@ -1,128 +0,0 @@
+-# makefile for installing Lua
+-# see INSTALL for installation instructions
+-# see src/Makefile and src/luaconf.h for further customization
+-
+-# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
+-
+-# Your platform. See PLATS for possible values.
+-PLAT= none
+-
+-# Where to install. The installation starts in the src and doc directories,
+-# so take care if INSTALL_TOP is not an absolute path.
+-INSTALL_TOP= /usr/local
+-INSTALL_BIN= $(INSTALL_TOP)/bin
+-INSTALL_INC= $(INSTALL_TOP)/include
+-INSTALL_LIB= $(INSTALL_TOP)/lib
+-INSTALL_MAN= $(INSTALL_TOP)/man/man1
+-#
+-# You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with
+-# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h (and also with etc/lua.pc).
+-INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
+-INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
+-
+-# How to install. If your install program does not support "-p", then you
+-# may have to run ranlib on the installed liblua.a (do "make ranlib").
+-INSTALL= install -p
+-INSTALL_EXEC= $(INSTALL) -m 0755
+-INSTALL_DATA= $(INSTALL) -m 0644
+-#
+-# If you don't have install you can use cp instead.
+-# INSTALL= cp -p
+-# INSTALL_EXEC= $(INSTALL)
+-# INSTALL_DATA= $(INSTALL)
+-
+-# Utilities.
+-MKDIR= mkdir -p
+-RANLIB= ranlib
+-
+-# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+-
+-# Convenience platforms targets.
+-PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+-
+-# What to install.
+-TO_BIN= lua luac
+-TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
+-TO_LIB= liblua.a
+-TO_MAN= lua.1 luac.1
+-
+-# Lua version and release.
+-V= 5.1
+-R= 5.1.4
+-
+-all:  $(PLAT)
+-
+-$(PLATS) clean:
+-      cd src && $(MAKE) $@
+-
+-test: dummy
+-      src/lua test/hello.lua
+-
+-install: dummy
+-      cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
+-      cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
+-      cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
+-      cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
+-      cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
+-
+-ranlib:
+-      cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
+-
+-local:
+-      $(MAKE) install INSTALL_TOP=..
+-
+-none:
+-      @echo "Please do"
+-      @echo "   make PLATFORM"
+-      @echo "where PLATFORM is one of these:"
+-      @echo "   $(PLATS)"
+-      @echo "See INSTALL for complete instructions."
+-
+-# make may get confused with test/ and INSTALL in a case-insensitive OS
+-dummy:
+-
+-# echo config parameters
+-echo:
+-      @echo ""
+-      @echo "These are the parameters currently set in src/Makefile to build Lua $R:"
+-      @echo ""
+-      @cd src && $(MAKE) -s echo
+-      @echo ""
+-      @echo "These are the parameters currently set in Makefile to install Lua $R:"
+-      @echo ""
+-      @echo "PLAT = $(PLAT)"
+-      @echo "INSTALL_TOP = $(INSTALL_TOP)"
+-      @echo "INSTALL_BIN = $(INSTALL_BIN)"
+-      @echo "INSTALL_INC = $(INSTALL_INC)"
+-      @echo "INSTALL_LIB = $(INSTALL_LIB)"
+-      @echo "INSTALL_MAN = $(INSTALL_MAN)"
+-      @echo "INSTALL_LMOD = $(INSTALL_LMOD)"
+-      @echo "INSTALL_CMOD = $(INSTALL_CMOD)"
+-      @echo "INSTALL_EXEC = $(INSTALL_EXEC)"
+-      @echo "INSTALL_DATA = $(INSTALL_DATA)"
+-      @echo ""
+-      @echo "See also src/luaconf.h ."
+-      @echo ""
+-
+-# echo private config parameters
+-pecho:
+-      @echo "V = $(V)"
+-      @echo "R = $(R)"
+-      @echo "TO_BIN = $(TO_BIN)"
+-      @echo "TO_INC = $(TO_INC)"
+-      @echo "TO_LIB = $(TO_LIB)"
+-      @echo "TO_MAN = $(TO_MAN)"
+-
+-# echo config parameters as Lua code
+-# uncomment the last sed expression if you want nil instead of empty strings
+-lecho:
+-      @echo "-- installation parameters for Lua $R"
+-      @echo "VERSION = '$V'"
+-      @echo "RELEASE = '$R'"
+-      @$(MAKE) echo | grep = | sed -e 's/= /= "/' -e 's/$$/"/' #-e 's/""/nil/'
+-      @echo "-- EOF"
+-
+-# list targets that do not create files (but not all makes understand .PHONY)
+-.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
+-
+-# (end of Makefile)
diff --git a/patches/lua-5.1.4/series b/patches/lua-5.1.4/series
index eccc62a..2c51e37 100644
--- a/patches/lua-5.1.4/series
+++ b/patches/lua-5.1.4/series
@@ -1,4 +1,3 @@
-lua-5.1.3-remove-Makefile.diff
-lua-5.1.3-autoconfize.diff
-lua-5.1.3-automakize.diff
-lua-5.1.3-autogen.sh.diff
+remove-Makefile.diff
+autoconfize.diff
+automakize.diff
diff --git a/rules/lua.make b/rules/lua.make
index 19bb1c5..56c7918 100644
--- a/rules/lua.make
+++ b/rules/lua.make
@@ -60,7 +60,7 @@ ifdef PTXCONF_LUA_INSTALL_LUAC
        @$(call install_copy, lua, 0, 0, 0755, -, /usr/bin/luac)
 endif
 ifdef PTXCONF_LUA_INSTALL_LIBLUA
-       @$(call install_lib, lua, 0, 0, 0644, liblua-5.1.3)
+       @$(call install_lib, lua, 0, 0, 0644, liblua-$(LUA_VERSION))
 endif
        @$(call install_finish, lua)

--
1.7.2.5


________________________________

Ce courriel et toutes les pièces jointes sont confidentiels et peuvent être couverts par un privilège ou une protection légale. Il est établi à l’attention exclusive de ses destinataires. Toute utilisation de ce courriel non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse préalable.
This email and any attachment are confidential and may be legally privileged or otherwise protected from disclosure. It is intended only for the stated addressee(s) and access to it by any other person(s) is unauthorized. Any use, dissemination or disclosure not in accordance with its purpose, either in whole or in part, is prohibited without our prior formal approval.
-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [ptxdist] [PATCH 1/2] lua: Correct implementation for version 5.1.4
  2011-12-07 16:02 [ptxdist] [PATCH 1/2] lua: Correct implementation for version 5.1.4 Benoît BURNICHON
@ 2011-12-07 16:55 ` Michael Olbrich
  2011-12-07 17:08   ` Benoît BURNICHON
  0 siblings, 1 reply; 11+ messages in thread
From: Michael Olbrich @ 2011-12-07 16:55 UTC (permalink / raw)
  To: ptxdist

Patch does not apply. Please resend.

Michael

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [ptxdist] [PATCH 1/2] lua: Correct implementation for version 5.1.4
  2011-12-07 16:55 ` Michael Olbrich
@ 2011-12-07 17:08   ` Benoît BURNICHON
  2011-12-08 11:22     ` Michael Olbrich
  2011-12-08 11:36     ` [ptxdist] [PATCH 1/2] lua: Correct implementation for version 5.1.4 Michael Olbrich
  0 siblings, 2 replies; 11+ messages in thread
From: Benoît BURNICHON @ 2011-12-07 17:08 UTC (permalink / raw)
  To: ptxdist

[-- Attachment #1: Type: text/plain, Size: 1689 bytes --]

Ok, will then send all my patches as attachments...

Enclosed are:
 - 2 patches for lua.
 - 1 patch for xmlrpc-c
 - 1 patch for php5

Regards,

Ben

> -----Original Message-----
> From: ptxdist-bounces@pengutronix.de [mailto:ptxdist-
> bounces@pengutronix.de] On Behalf Of Michael Olbrich
> Sent: Wednesday, December 07, 2011 5:55 PM
> To: ptxdist@pengutronix.de
> Subject: Re: [ptxdist] [PATCH 1/2] lua: Correct implementation for version
> 5.1.4
>
> Patch does not apply. Please resend.
>
> Michael
>
> --
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>
> --
> ptxdist mailing list
> ptxdist@pengutronix.de

________________________________

Ce courriel et toutes les pièces jointes sont confidentiels et peuvent être couverts par un privilège ou une protection légale. Il est établi à l’attention exclusive de ses destinataires. Toute utilisation de ce courriel non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse préalable.
This email and any attachment are confidential and may be legally privileged or otherwise protected from disclosure. It is intended only for the stated addressee(s) and access to it by any other person(s) is unauthorized. Any use, dissemination or disclosure not in accordance with its purpose, either in whole or in part, is prohibited without our prior formal approval.

[-- Attachment #2: 0001-lua-Correct-implementation-for-version-5.1.4.patch --]
[-- Type: application/octet-stream, Size: 77157 bytes --]

From ab3433be77dac860bc7611eceba9424c405bc8a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
Date: Tue, 6 Dec 2011 12:00:16 +0100
Subject: [PATCH 1/2] lua: Correct implementation for version 5.1.4
To: ptxdist@pengutronix.de

---
 patches/lua-5.1.4/autoconfize.diff               |  912 ++++++++++++++++++++++
 patches/lua-5.1.4/automakize.diff                |  113 +++
 patches/lua-5.1.4/lua-5.1.3-autoconfize.diff     |  910 ---------------------
 patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff      |   26 -
 patches/lua-5.1.4/lua-5.1.3-automakize.diff      |  111 ---
 patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff |  149 ----
 patches/lua-5.1.4/remove-Makefile.diff           |  149 ++++
 patches/lua-5.1.4/series                         |    7 +-
 rules/lua.make                                   |    2 +-
 9 files changed, 1178 insertions(+), 1201 deletions(-)
 create mode 100644 patches/lua-5.1.4/autoconfize.diff
 create mode 100644 patches/lua-5.1.4/automakize.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-autoconfize.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-automakize.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff
 create mode 100644 patches/lua-5.1.4/remove-Makefile.diff

diff --git a/patches/lua-5.1.4/autoconfize.diff b/patches/lua-5.1.4/autoconfize.diff
new file mode 100644
index 0000000..4682f3e
--- /dev/null
+++ b/patches/lua-5.1.4/autoconfize.diff
@@ -0,0 +1,912 @@
+Subject: Add lua support to ptxdist 1.99: add autoconf files
+From: Erwin Rol <erwin@erwinrol.com>
+
+This patch add lua support to ptxdist 1.99. It has a menu entry under
+scripting languages. And a patch that makes it possible to use autoconf
+to build.
+
+This part of the patch adds the autoconf files.
+
+Signed-off-by: Erwin Rol <erwin@erwinrol.com>
+Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
+
+---
+ configure.ac              |   68 ++++
+ etc/lua.pc.in             |   32 +
+ src/luaconf.h.template.in |  777 ++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 877 insertions(+)
+
+Index: lua-5.1.4/configure.ac
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/configure.ac	2011-12-06 11:47:49.675076314 +0100
+@@ -0,0 +1,70 @@
++AC_PREREQ([2.67])
++AC_INIT([Autotoolized Lua],[5.1.4],[],[lua-at])
++
++AC_CONFIG_MACRO_DIR([m4])
++
++AC_CONFIG_HEADERS([config.h])
++AC_CONFIG_SRCDIR([src/lapi.c])
++
++AM_INIT_AUTOMAKE([1.9 foreign])
++
++AC_PROG_CC
++LT_INIT
++
++AC_ARG_WITH(
++  [readline],
++  [AS_HELP_STRING([--with-readline],[Use readline for interpreter input [default=yes]])],
++  [use_readline=$withval],
++  [use_readline=yes]
++)
++
++LUA_LIBS="-lm"
++
++# Check for readline
++READLINE_DEFS="#undef LUA_USE_READLINE"
++if test "x$use_readline" == "xyes"; then
++  AC_CHECK_LIB([readline], [readline], [], [use_readline=no])
++  AC_CHECK_HEADERS([readline/readline.h readline/history.h], [], [use_readline=no])
++  if test "x$use_readline" == "xno"; then
++    AC_MSG_WARN([readline headers could not be found, disabling readline support])
++  else
++    READLINE_DEFS="#define LUA_USE_READLINE"
++    LUA_LIBS="$LUA_LIBS -lreadline"
++  fi
++fi
++AC_SUBST(READLINE_DEFS)
++
++case "$host" in
++  *-mingw*)  use_os=win32  ;;
++  *-darwin*) use_os=macosx ;;
++  *)         use_os=posix  ;;
++esac
++
++POSIX_DEFS="#undef LUA_USE_POSIX"
++LUA_DL_DEFS="#undef LUA_USE_DLOPEN"
++LUA_BUILD_AS_DLL_DEFS="#undef LUA_BUILD_AS_DLL"
++
++if test "x$use_os" == "xwin32"; then
++  LUA_BUILD_AS_DLL_DEFS="#define LUA_BUILD_AS_DLL"
++elif test "x$use_os" == "xmacosx"; then
++  POSIX_DEFS="#define LUA_USE_POSIX"
++  LUA_DL_DEFS="#define LUA_DL_DYLD"
++elif test "x$use_os" == "xposix"; then
++  POSIX_DEFS="#define LUA_USE_POSIX"
++  LUA_DL_DEFS="#define LUA_DL_DLOPEN"
++  LUA_LIBS="$LUA_LIBS -ldl"
++fi
++AC_SUBST(POSIX_DEFS)
++AC_SUBST(LUA_DL_DEFS)
++AC_SUBST(LUA_BUILD_AS_DLL_DEFS)
++
++AC_SUBST(LUA_LIBS)
++
++AC_CONFIG_FILES([Makefile
++                 src/Makefile
++                 src/luaconf.h.template
++                 etc/Makefile
++                 etc/lua.pc
++                 doc/Makefile
++		 test/Makefile])
++AC_OUTPUT
+Index: lua-5.1.4/etc/lua.pc.in
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/etc/lua.pc.in	2011-12-06 11:44:52.103826880 +0100
+@@ -0,0 +1,32 @@
++# lua.pc -- pkg-config data for Lua
++
++# vars from install Makefile
++
++# grep '^V=' ../Makefile
++V= 5.1
++# grep '^R=' ../Makefile
++R= @VERSION@
++
++# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
++# plus autotoolification
++prefix= @prefix@
++INSTALL_BIN= ${prefix}/bin
++INSTALL_INC= ${prefix}/include
++INSTALL_LIB= ${prefix}/lib
++INSTALL_MAN= ${prefix}/man/man1
++INSTALL_LMOD= ${prefix}/share/lua/${V}
++INSTALL_CMOD= ${prefix}/lib/lua/${V}
++
++# canonical vars
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include
++
++Name: Lua
++Description: An Extensible Extension Language
++Version: ${R}
++Requires: 
++Libs: -L${libdir} -llua -lm
++Cflags: -I${includedir}
++
++# (end of lua.pc)
+Index: lua-5.1.4/src/luaconf.h.template.in
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/src/luaconf.h.template.in	2011-12-06 11:44:52.103826880 +0100
+@@ -0,0 +1,777 @@
++/*
++** $Id: luaconf.h,v 1.82a 2006/04/10 18:27:23 roberto Exp $
++** Configuration file for Lua
++** See Copyright Notice in lua.h
++*/
++
++
++#ifndef lconfig_h
++#define lconfig_h
++
++#include <limits.h>
++#include <stddef.h>
++
++/*
++** =================
++** Autotoolification
++** =================
++*/
++
++/** autotoolize patch **/
++@POSIX_DEFS@
++@LUA_DL_DEFS@
++@LUA_BUILD_AS_DLL_DEFS@
++@READLINE_DEFS@
++/** autotoolize patch **/
++
++/*
++** ==================================================================
++** Search for "@@" to find all configurable definitions.
++** ===================================================================
++*/
++
++
++/*
++@@ LUA_ANSI controls the use of non-ansi features.
++** CHANGE it (define it) if you want Lua to avoid the use of any
++** non-ansi feature or library.
++*/
++#if defined(__STRICT_ANSI__)
++#define LUA_ANSI
++#endif
++
++
++#if !defined(LUA_ANSI) && defined(_WIN32)
++#define LUA_WIN
++#endif
++
++#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)
++#define LUA_USE_POSIX
++#define LUA_DL_DYLD		/* does not need extra library */
++#endif
++
++
++
++/*
++@@ LUA_USE_POSIX includes all functionallity listed as X/Open System
++@* Interfaces Extension (XSI).
++** CHANGE it (define it) if your system is XSI compatible.
++*/
++#if defined(LUA_USE_POSIX)
++#define LUA_USE_MKSTEMP
++#define LUA_USE_ISATTY
++#define LUA_USE_POPEN
++#define LUA_USE_ULONGJMP
++#endif
++
++
++/*
++@@ LUA_PATH and LUA_CPATH are the names of the environment variables that
++@* Lua check to set its paths.
++@@ LUA_INIT is the name of the environment variable that Lua
++@* checks for initialization code.
++** CHANGE them if you want different names.
++*/
++#define LUA_PATH        "LUA_PATH"
++#define LUA_CPATH       "LUA_CPATH"
++#define LUA_INIT	"LUA_INIT"
++
++
++/*
++@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for
++@* Lua libraries.
++@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for
++@* C libraries.
++** CHANGE them if your machine has a non-conventional directory
++** hierarchy or if you want to install your libraries in
++** non-conventional directories.
++*/
++#if defined(_WIN32)
++/*
++** In Windows, any exclamation mark ('!') in the path is replaced by the
++** path of the directory of the executable file of the current process.
++*/
++#define LUA_LDIR	"!\\lua\\"
++#define LUA_CDIR	"!\\"
++#define LUA_PATH_DEFAULT  \
++		".\\?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?\\init.lua;" \
++		             LUA_CDIR"?.lua;"  LUA_CDIR"?\\init.lua"
++#define LUA_CPATH_DEFAULT \
++	".\\?.dll;"  LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
++
++#else
++
++/** autotoolize patch **/
++#define LUA_LDIR	"%lua_datadir%/lua/5.1/"
++#define LUA_CDIR	"%lua_libdir%/lua/5.1/"
++/** autotoolize patch **/
++
++#define LUA_PATH_DEFAULT  \
++		"./?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?/init.lua;" \
++		            LUA_CDIR"?.lua;"  LUA_CDIR"?/init.lua"
++#define LUA_CPATH_DEFAULT \
++	"./?.so;"  LUA_CDIR"?.so;" LUA_CDIR"loadall.so"
++#endif
++
++
++/*
++@@ LUA_DIRSEP is the directory separator (for submodules).
++** CHANGE it if your machine does not use "/" as the directory separator
++** and is not Windows. (On Windows Lua automatically uses "\".)
++*/
++#if defined(_WIN32)
++#define LUA_DIRSEP	"\\"
++#else
++#define LUA_DIRSEP	"/"
++#endif
++
++
++/*
++@@ LUA_PATHSEP is the character that separates templates in a path.
++@@ LUA_PATH_MARK is the string that marks the substitution points in a
++@* template.
++@@ LUA_EXECDIR in a Windows path is replaced by the executable's
++@* directory.
++@@ LUA_IGMARK is a mark to ignore all before it when bulding the
++@* luaopen_ function name.
++** CHANGE them if for some reason your system cannot use those
++** characters. (E.g., if one of those characters is a common character
++** in file/directory names.) Probably you do not need to change them.
++*/
++#define LUA_PATHSEP	";"
++#define LUA_PATH_MARK	"?"
++#define LUA_EXECDIR	"!"
++#define LUA_IGMARK	"-"
++
++
++/*
++@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger.
++** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
++** machines, ptrdiff_t gives a good choice between int or long.)
++*/
++#define LUA_INTEGER	ptrdiff_t
++
++
++/*
++@@ LUA_API is a mark for all core API functions.
++@@ LUALIB_API is a mark for all standard library functions.
++** CHANGE them if you need to define those functions in some special way.
++** For instance, if you want to create one Windows DLL with the core and
++** the libraries, you may want to use the following definition (define
++** LUA_BUILD_AS_DLL to get it).
++*/
++#if defined(LUA_BUILD_AS_DLL)
++
++#if defined(LUA_CORE) || defined(LUA_LIB)
++#define LUA_API __declspec(dllexport)
++#else
++#define LUA_API __declspec(dllimport)
++#endif
++
++#else
++
++#define LUA_API		extern
++
++#endif
++
++/* more often than not the libs go together with the core */
++#define LUALIB_API	LUA_API
++
++
++/*
++@@ LUAI_FUNC is a mark for all extern functions that are not to be
++@* exported to outside modules.
++@@ LUAI_DATA is a mark for all extern (const) variables that are not to
++@* be exported to outside modules.
++** CHANGE them if you need to mark them in some special way. Elf/gcc
++** (versions 3.2 and later) mark them as "hidden" to optimize access
++** when Lua is compiled as a shared library.
++*/
++#if defined(luaall_c)
++#define LUAI_FUNC	static
++#define LUAI_DATA	/* empty */
++
++#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
++      defined(__ELF__)
++#define LUAI_FUNC	__attribute__((visibility("hidden"))) extern
++#define LUAI_DATA	LUAI_FUNC
++
++#else
++#define LUAI_FUNC	extern
++#define LUAI_DATA	extern
++#endif
++
++
++
++/*
++@@ LUA_QL describes how error messages quote program elements.
++** CHANGE it if you want a different appearance.
++*/
++#define LUA_QL(x)	"'" x "'"
++#define LUA_QS		LUA_QL("%s")
++
++
++/*
++@@ LUA_IDSIZE gives the maximum size for the description of the source
++@* of a function in debug information.
++** CHANGE it if you want a different size.
++*/
++#define LUA_IDSIZE	60
++
++
++/*
++** {==================================================================
++** Stand-alone configuration
++** ===================================================================
++*/
++
++#if defined(lua_c) || defined(luaall_c)
++
++/*
++@@ lua_stdin_is_tty detects whether the standard input is a 'tty' (that
++@* is, whether we're running lua interactively).
++** CHANGE it if you have a better definition for non-POSIX/non-Windows
++** systems.
++*/
++#if defined(LUA_USE_ISATTY)
++#include <unistd.h>
++#define lua_stdin_is_tty()	isatty(0)
++#elif defined(LUA_WIN)
++#include <io.h>
++#include <stdio.h>
++#define lua_stdin_is_tty()	_isatty(_fileno(stdin))
++#else
++#define lua_stdin_is_tty()	1  /* assume stdin is a tty */
++#endif
++
++
++/*
++@@ LUA_PROMPT is the default prompt used by stand-alone Lua.
++@@ LUA_PROMPT2 is the default continuation prompt used by stand-alone Lua.
++** CHANGE them if you want different prompts. (You can also change the
++** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.)
++*/
++#define LUA_PROMPT		"> "
++#define LUA_PROMPT2		">> "
++
++
++/*
++@@ LUA_PROGNAME is the default name for the stand-alone Lua program.
++** CHANGE it if your stand-alone interpreter has a different name and
++** your system is not able to detect that name automatically.
++*/
++#define LUA_PROGNAME		"lua"
++
++
++/*
++@@ LUA_MAXINPUT is the maximum length for an input line in the
++@* stand-alone interpreter.
++** CHANGE it if you need longer lines.
++*/
++#define LUA_MAXINPUT	512
++
++
++/*
++@@ lua_readline defines how to show a prompt and then read a line from
++@* the standard input.
++@@ lua_saveline defines how to "save" a read line in a "history".
++@@ lua_freeline defines how to free a line read by lua_readline.
++** CHANGE them if you want to improve this functionality (e.g., by using
++** GNU readline and history facilities).
++*/
++#if defined(LUA_USE_READLINE)
++#include <stdio.h>
++#include <readline/readline.h>
++#include <readline/history.h>
++#define lua_readline(L,b,p)	((void)L, ((b)=readline(p)) != NULL)
++#define lua_saveline(L,idx) \
++	if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \
++	  add_history(lua_tostring(L, idx));  /* add it to history */
++#define lua_freeline(L,b)	((void)L, free(b))
++#else
++#define lua_readline(L,b,p)	\
++	((void)L, fputs(p, stdout), fflush(stdout),  /* show prompt */ \
++	fgets(b, LUA_MAXINPUT, stdin) != NULL)  /* get line */
++#define lua_saveline(L,idx)	{ (void)L; (void)idx; }
++#define lua_freeline(L,b)	{ (void)L; (void)b; }
++#endif
++
++#endif
++
++/* }================================================================== */
++
++
++/*
++@@ LUAI_GCPAUSE defines the default pause between garbage-collector cycles
++@* as a percentage.
++** CHANGE it if you want the GC to run faster or slower (higher values
++** mean larger pauses which mean slower collection.) You can also change
++** this value dynamically.
++*/
++#define LUAI_GCPAUSE	200  /* 200% (wait memory to double before next GC) */
++
++
++/*
++@@ LUAI_GCMUL defines the default speed of garbage collection relative to
++@* memory allocation as a percentage.
++** CHANGE it if you want to change the granularity of the garbage
++** collection. (Higher values mean coarser collections. 0 represents
++** infinity, where each step performs a full collection.) You can also
++** change this value dynamically.
++*/
++#define LUAI_GCMUL	200 /* GC runs 'twice the speed' of memory allocation */
++
++
++
++/*
++@@ LUA_COMPAT_GETN controls compatibility with old getn behavior.
++** CHANGE it (define it) if you want exact compatibility with the
++** behavior of setn/getn in Lua 5.0.
++*/
++#undef LUA_COMPAT_GETN
++
++/*
++@@ LUA_COMPAT_LOADLIB controls compatibility about global loadlib.
++** CHANGE it to undefined as soon as you do not need a global 'loadlib'
++** function (the function is still available as 'package.loadlib').
++*/
++#undef LUA_COMPAT_LOADLIB
++
++/*
++@@ LUA_COMPAT_VARARG controls compatibility with old vararg feature.
++** CHANGE it to undefined as soon as your programs use only '...' to
++** access vararg parameters (instead of the old 'arg' table).
++*/
++#define LUA_COMPAT_VARARG
++
++/*
++@@ LUA_COMPAT_MOD controls compatibility with old math.mod function.
++** CHANGE it to undefined as soon as your programs use 'math.fmod' or
++** the new '%' operator instead of 'math.mod'.
++*/
++#define LUA_COMPAT_MOD
++
++/*
++@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting
++@* facility.
++** CHANGE it to 2 if you want the old behaviour, or undefine it to turn
++** off the advisory error when nesting [[...]].
++*/
++#define LUA_COMPAT_LSTR		1
++
++/*
++@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name.
++** CHANGE it to undefined as soon as you rename 'string.gfind' to
++** 'string.gmatch'.
++*/
++#define LUA_COMPAT_GFIND
++
++/*
++@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib'
++@* behavior.
++** CHANGE it to undefined as soon as you replace to 'luaL_register'
++** your uses of 'luaL_openlib'
++*/
++#define LUA_COMPAT_OPENLIB
++
++
++
++/*
++@@ luai_apicheck is the assert macro used by the Lua-C API.
++** CHANGE luai_apicheck if you want Lua to perform some checks in the
++** parameters it gets from API calls. This may slow down the interpreter
++** a bit, but may be quite useful when debugging C code that interfaces
++** with Lua. A useful redefinition is to use assert.h.
++*/
++#if defined(LUA_USE_APICHECK)
++#include <assert.h>
++#define luai_apicheck(L,o)	{ (void)L; assert(o); }
++#else
++#define luai_apicheck(L,o)	{ (void)L; }
++#endif
++
++
++/*
++@@ LUAI_BITSINT defines the number of bits in an int.
++** CHANGE here if Lua cannot automatically detect the number of bits of
++** your machine. Probably you do not need to change this.
++*/
++/* avoid overflows in comparison */
++#if INT_MAX-20 < 32760
++#define LUAI_BITSINT	16
++#elif INT_MAX > 2147483640L
++/* int has at least 32 bits */
++#define LUAI_BITSINT	32
++#else
++#error "you must define LUA_BITSINT with number of bits in an integer"
++#endif
++
++
++/*
++@@ LUAI_UINT32 is an unsigned integer with at least 32 bits.
++@@ LUAI_INT32 is an signed integer with at least 32 bits.
++@@ LUAI_UMEM is an unsigned integer big enough to count the total
++@* memory used by Lua.
++@@ LUAI_MEM is a signed integer big enough to count the total memory
++@* used by Lua.
++** CHANGE here if for some weird reason the default definitions are not
++** good enough for your machine. (The definitions in the 'else'
++** part always works, but may waste space on machines with 64-bit
++** longs.) Probably you do not need to change this.
++*/
++#if LUAI_BITSINT >= 32
++#define LUAI_UINT32	unsigned int
++#define LUAI_INT32	int
++#define LUAI_MAXINT32	INT_MAX
++#define LUAI_UMEM	size_t
++#define LUAI_MEM	ptrdiff_t
++#else
++/* 16-bit ints */
++#define LUAI_UINT32	unsigned long
++#define LUAI_INT32	long
++#define LUAI_MAXINT32	LONG_MAX
++#define LUAI_UMEM	unsigned long
++#define LUAI_MEM	long
++#endif
++
++
++/*
++@@ LUAI_MAXCALLS limits the number of nested calls.
++** CHANGE it if you need really deep recursive calls. This limit is
++** arbitrary; its only purpose is to stop infinite recursion before
++** exhausting memory.
++*/
++#define LUAI_MAXCALLS	20000
++
++
++/*
++@@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function
++@* can use.
++** CHANGE it if you need lots of (Lua) stack space for your C
++** functions. This limit is arbitrary; its only purpose is to stop C
++** functions to consume unlimited stack space.
++*/
++#define LUAI_MAXCSTACK	2048
++
++
++
++/*
++** {==================================================================
++** CHANGE (to smaller values) the following definitions if your system
++** has a small C stack. (Or you may want to change them to larger
++** values if your system has a large C stack and these limits are
++** too rigid for you.) Some of these constants control the size of
++** stack-allocated arrays used by the compiler or the interpreter, while
++** others limit the maximum number of recursive calls that the compiler
++** or the interpreter can perform. Values too large may cause a C stack
++** overflow for some forms of deep constructs.
++** ===================================================================
++*/
++
++
++/*
++@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and
++@* syntactical nested non-terminals in a program.
++*/
++#define LUAI_MAXCCALLS		200
++
++
++/*
++@@ LUAI_MAXVARS is the maximum number of local variables per function
++@* (must be smaller than 250).
++*/
++#define LUAI_MAXVARS		200
++
++
++/*
++@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function
++@* (must be smaller than 250).
++*/
++#define LUAI_MAXUPVALUES	60
++
++
++/*
++@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
++*/
++#define LUAL_BUFFERSIZE		BUFSIZ
++
++/* }================================================================== */
++
++
++
++
++/*
++** {==================================================================
++@@ LUA_NUMBER is the type of numbers in Lua.
++** CHANGE the following definitions only if you want to build Lua
++** with a number type different from double. You may also need to
++** change lua_number2int & lua_number2integer.
++** ===================================================================
++*/
++
++#define LUA_NUMBER_DOUBLE
++#define LUA_NUMBER	double
++
++/*
++@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
++@* over a number.
++*/
++#define LUAI_UACNUMBER	double
++
++
++/*
++@@ LUA_NUMBER_SCAN is the format for reading numbers.
++@@ LUA_NUMBER_FMT is the format for writing numbers.
++@@ lua_number2str converts a number to a string.
++@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
++@@ lua_str2number converts a string to a number.
++*/
++#define LUA_NUMBER_SCAN		"%lf"
++#define LUA_NUMBER_FMT		"%.14g"
++#define lua_number2str(s,n)	sprintf((s), LUA_NUMBER_FMT, (n))
++#define LUAI_MAXNUMBER2STR	32 /* 16 digits, sign, point, and \0 */
++#define lua_str2number(s,p)	strtod((s), (p))
++
++
++/*
++@@ The luai_num* macros define the primitive operations over numbers.
++*/
++#if defined(LUA_CORE)
++#include <math.h>
++#define luai_numadd(a,b)	((a)+(b))
++#define luai_numsub(a,b)	((a)-(b))
++#define luai_nummul(a,b)	((a)*(b))
++#define luai_numdiv(a,b)	((a)/(b))
++#define luai_nummod(a,b)	((a) - floor((a)/(b))*(b))
++#define luai_numpow(a,b)	(pow(a,b))
++#define luai_numunm(a)		(-(a))
++#define luai_numeq(a,b)		((a)==(b))
++#define luai_numlt(a,b)		((a)<(b))
++#define luai_numle(a,b)		((a)<=(b))
++#define luai_numisnan(a)	(!luai_numeq((a), (a)))
++#endif
++
++
++/*
++@@ lua_number2int is a macro to convert lua_Number to int.
++@@ lua_number2integer is a macro to convert lua_Number to lua_Integer.
++** CHANGE them if you know a faster way to convert a lua_Number to
++** int (with any rounding method and without throwing errors) in your
++** system. In Pentium machines, a naive typecast from double to int
++** in C is extremely slow, so any alternative is worth trying.
++*/
++
++/* On a Pentium, resort to a trick */
++#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \
++    (defined(__i386) || defined (_M_IX86) || defined(__i386__))
++
++/* On a Microsoft compiler, use assembler */
++#if defined(_MSC_VER)
++
++#define lua_number2int(i,d)   __asm fld d   __asm fistp i
++#define lua_number2integer(i,n)		lua_number2int(i, n)
++
++/* the next trick should work on any Pentium, but sometimes clashes
++   with a DirectX idiosyncrasy */
++#else
++
++union luai_Cast { double l_d; long l_l; };
++#define lua_number2int(i,d) \
++  { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; }
++#define lua_number2integer(i,n)		lua_number2int(i, n)
++
++#endif
++
++
++/* this option always works, but may be slow */
++#else
++#define lua_number2int(i,d)	((i)=(int)(d))
++#define lua_number2integer(i,d)	((i)=(lua_Integer)(d))
++
++#endif
++
++/* }================================================================== */
++
++
++/*
++@@ LUAI_USER_ALIGNMENT_T is a type that requires maximum alignment.
++** CHANGE it if your system requires alignments larger than double. (For
++** instance, if your system supports long doubles and they must be
++** aligned in 16-byte boundaries, then you should add long double in the
++** union.) Probably you do not need to change this.
++*/
++#define LUAI_USER_ALIGNMENT_T	union { double u; void *s; long l; }
++
++
++/*
++@@ LUAI_THROW/LUAI_TRY define how Lua does exception handling.
++** CHANGE them if you prefer to use longjmp/setjmp even with C++
++** or if want/don't to use _longjmp/_setjmp instead of regular
++** longjmp/setjmp. By default, Lua handles errors with exceptions when
++** compiling as C++ code, with _longjmp/_setjmp when asked to use them,
++** and with longjmp/setjmp otherwise.
++*/
++#if defined(__cplusplus)
++/* C++ exceptions */
++#define LUAI_THROW(L,c)	throw(c)
++#define LUAI_TRY(L,c,a)	try { a } catch(...) \
++	{ if ((c)->status == 0) (c)->status = -1; }
++#define luai_jmpbuf	int  /* dummy variable */
++
++#elif defined(LUA_USE_ULONGJMP)
++/* in Unix, try _longjmp/_setjmp (more efficient) */
++#define LUAI_THROW(L,c)	_longjmp((c)->b, 1)
++#define LUAI_TRY(L,c,a)	if (_setjmp((c)->b) == 0) { a }
++#define luai_jmpbuf	jmp_buf
++
++#else
++/* default handling with long jumps */
++#define LUAI_THROW(L,c)	longjmp((c)->b, 1)
++#define LUAI_TRY(L,c,a)	if (setjmp((c)->b) == 0) { a }
++#define luai_jmpbuf	jmp_buf
++
++#endif
++
++
++/*
++@@ LUA_MAXCAPTURES is the maximum number of captures that a pattern
++@* can do during pattern-matching.
++** CHANGE it if you need more captures. This limit is arbitrary.
++*/
++#define LUA_MAXCAPTURES		32
++
++
++/*
++@@ lua_tmpnam is the function that the OS library uses to create a
++@* temporary name.
++@@ LUA_TMPNAMBUFSIZE is the maximum size of a name created by lua_tmpnam.
++** CHANGE them if you have an alternative to tmpnam (which is considered
++** insecure) or if you want the original tmpnam anyway.  By default, Lua
++** uses tmpnam except when POSIX is available, where it uses mkstemp.
++*/
++#if defined(loslib_c) || defined(luaall_c)
++
++#if defined(LUA_USE_MKSTEMP)
++#include <unistd.h>
++#define LUA_TMPNAMBUFSIZE	32
++#define lua_tmpnam(b,e)	{ \
++	strcpy(b, "/tmp/lua_XXXXXX"); \
++	e = mkstemp(b); \
++	if (e != -1) close(e); \
++	e = (e == -1); }
++
++#else
++#define LUA_TMPNAMBUFSIZE	L_tmpnam
++#define lua_tmpnam(b,e)		{ e = (tmpnam(b) == NULL); }
++#endif
++
++#endif
++
++
++/*
++@@ lua_popen spawns a new process connected to the current one through
++@* the file streams.
++** CHANGE it if you have a way to implement it in your system.
++*/
++#if defined(LUA_USE_POPEN)
++
++#define lua_popen(L,c,m)	((void)L, popen(c,m))
++#define lua_pclose(L,file)	((void)L, (pclose(file) != -1))
++
++#elif defined(LUA_WIN)
++
++#define lua_popen(L,c,m)	((void)L, _popen(c,m))
++#define lua_pclose(L,file)	((void)L, (_pclose(file) != -1))
++
++#else
++
++#define lua_popen(L,c,m)	((void)((void)c, m),  \
++		luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0)
++#define lua_pclose(L,file)		((void)((void)L, file), 0)
++
++#endif
++
++/*
++@@ LUA_DL_* define which dynamic-library system Lua should use.
++** CHANGE here if Lua has problems choosing the appropriate
++** dynamic-library system for your platform (either Windows' DLL, Mac's
++** dyld, or Unix's dlopen). If your system is some kind of Unix, there
++** is a good chance that it has dlopen, so LUA_DL_DLOPEN will work for
++** it.  To use dlopen you also need to adapt the src/Makefile (probably
++** adding -ldl to the linker options), so Lua does not select it
++** automatically.  (When you change the makefile to add -ldl, you must
++** also add -DLUA_USE_DLOPEN.)
++** If you do not want any kind of dynamic library, undefine all these
++** options.
++** By default, _WIN32 gets LUA_DL_DLL and MAC OS X gets LUA_DL_DYLD.
++*/
++#if defined(LUA_USE_DLOPEN)
++#define LUA_DL_DLOPEN
++#endif
++
++#if defined(LUA_WIN)
++#define LUA_DL_DLL
++#endif
++
++
++/*
++@@ LUAI_EXTRASPACE allows you to add user-specific data in a lua_State
++@* (the data goes just *before* the lua_State pointer).
++** CHANGE (define) this if you really need that. This value must be
++** a multiple of the maximum alignment required for your machine.
++*/
++#define LUAI_EXTRASPACE		0
++
++
++/*
++@@ luai_userstate* allow user-specific actions on threads.
++** CHANGE them if you defined LUAI_EXTRASPACE and need to do something
++** extra when a thread is created/deleted/resumed/yielded.
++*/
++#define luai_userstateopen(L)		((void)L)
++#define luai_userstateclose(L)		((void)L)
++#define luai_userstatethread(L,L1)	((void)L)
++#define luai_userstatefree(L)		((void)L)
++#define luai_userstateresume(L,n)	((void)L)
++#define luai_userstateyield(L,n)	((void)L)
++
++
++/*
++@@ LUA_INTFRMLEN is the length modifier for integer conversions
++@* in 'string.format'.
++@@ LUA_INTFRM_T is the integer type correspoding to the previous length
++@* modifier.
++** CHANGE them if your system supports long long or does not support long.
++*/
++
++#if defined(LUA_USELONGLONG)
++
++#define LUA_INTFRMLEN		"ll"
++#define LUA_INTFRM_T		long long
++
++#else
++
++#define LUA_INTFRMLEN		"l"
++#define LUA_INTFRM_T		long
++
++#endif
++
++
++
++/* =================================================================== */
++
++/*
++** Local configuration. You can use this space to add your redefinitions
++** without modifying the main part of the file.
++*/
++
++
++
++#endif
++
diff --git a/patches/lua-5.1.4/automakize.diff b/patches/lua-5.1.4/automakize.diff
new file mode 100644
index 0000000..0dae724
--- /dev/null
+++ b/patches/lua-5.1.4/automakize.diff
@@ -0,0 +1,113 @@
+Subject: Add lua support to ptxdist 1.99: add automake files
+From: Erwin Rol <erwin@erwinrol.com>
+
+This patch add lua support to ptxdist 1.99. It has a menu entry under
+scripting languages. And a patch that makes it possible to use autoconf
+to build.
+
+This part of the patch adds the automake files.
+
+Signed-off-by: Erwin Rol <erwin@erwinrol.com>
+Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
+
+---
+ Makefile.am      |    3 +++
+ doc/Makefile.am  |    5 +++++
+ etc/Makefile.am  |    8 ++++++++
+ src/Makefile.am  |   45 +++++++++++++++++++++++++++++++++++++++++++++
+ test/Makefile.am |    5 +++++
+ 5 files changed, 66 insertions(+)
+
+Index: lua-5.1.4/doc/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/doc/Makefile.am	2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,5 @@
++man1_MANS = lua.1 luac.1
++
++EXTRA_DIST = \
++	contents.html  lua.1   luac.html  lua.html     manual.html \
++	logo.gif       luac.1  lua.css    readme.html
+Index: lua-5.1.4/etc/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/etc/Makefile.am	2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,8 @@
++include_HEADERS = lua.hpp
++
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = lua.pc
++
++EXTRA_DIST = \
++	all.c      lua.ico    lua.pc.in  noparser.c  strict.lua \
++	luavs.bat  min.c      README
+Index: lua-5.1.4/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/Makefile.am	2011-12-06 11:50:14.559076265 +0100
+@@ -0,0 +1,5 @@
++ACLOCAL_AMFLAGS = -I m4
++
++SUBDIRS = src doc etc test
++
++EXTRA_DIST = autogen.sh COPYRIGHT HISTORY INSTALL README
+Index: lua-5.1.4/src/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/src/Makefile.am	2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,45 @@
++AM_CFLAGS = -Wall
++
++include_HEADERS = lua.h lualib.h lauxlib.h
++nodist_include_HEADERS = luaconf.h
++
++lib_LTLIBRARIES = liblua.la
++liblua_la_LDFLAGS = -release @VERSION@
++liblua_la_SOURCES = \
++	lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c \
++	lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c  \
++	lundump.c lvm.c lzio.c \
++	lauxlib.c lbaselib.c ldblib.c liolib.c lmathlib.c loslib.c ltablib.c \
++	lstrlib.c loadlib.c linit.c \
++	lapi.h ldebug.h lgc.h lmem.h lparser.h ltable.h lzio.h ldo.h llex.h \
++	lobject.h lstate.h ltm.h lundump.h lcode.h lfunc.h llimits.h lopcodes.h \
++	lstring.h lvm.h
++
++bin_PROGRAMS = lua luac
++
++lua_SOURCES = lua.c
++lua_LDADD = liblua.la @LUA_LIBS@
++lua_DEPENDENCIES = liblua.la
++
++luac_SOURCES = luac.c print.c
++luac_LDADD = liblua.la @LUA_LIBS@
++luac_DEPENDENCIES = liblua.la
++
++# luac must be linked statically because it uses functions that
++# don't get exported to the shared object
++luac_LDFLAGS = -static
++
++EXTRA_DIST = luaconf.h.template.in
++BUILT_SOURCES = luaconf.h
++CLEANFILES = luaconf.h
++
++readline_defs = @READLINE_DEFS@
++
++edit = 	sed \
++	  -e 's,%lua_datadir%,$(datadir),g' \
++	  -e 's,%lua_libdir%,$(libdir),g'
++
++luaconf.h : luaconf.h.template
++	rm -f luaconf.h luaconf.h.tmp
++	$(edit) luaconf.h.template > luaconf.h.tmp
++	mv luaconf.h.tmp luaconf.h
+Index: lua-5.1.4/test/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/test/Makefile.am	2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,5 @@
++EXTRA_DIST = \
++	bisect.lua  env.lua         fib.lua      life.lua          printf.lua \
++	sieve.lua   trace-calls.lua cf.lua       factorial.lua     globals.lua \
++	luac.lua    README          sort.lua     trace-globals.lua echo.lua \
++	fibfor.lua  hello.lua       readonly.lua table.lua         xd.lua
diff --git a/patches/lua-5.1.4/lua-5.1.3-autoconfize.diff b/patches/lua-5.1.4/lua-5.1.3-autoconfize.diff
deleted file mode 100644
index f9ff8ff..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-autoconfize.diff
+++ /dev/null
@@ -1,910 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: add autoconf files
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch adds the autoconf files.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- configure.ac              |   68 ++++
- etc/lua.pc.in             |   32 +
- src/luaconf.h.template.in |  777 ++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 877 insertions(+)
-
-Index: lua-5.1.4/configure.ac
-===================================================================
---- /dev/null
-+++ lua-5.1.4/configure.ac
-@@ -0,0 +1,68 @@
-+AC_PREREQ(2.59)
-+AC_INIT([Autotoolized Lua], [5.1.4], [], [lua-at])
-+
-+AC_CONFIG_HEADERS([config.h])
-+AC_CONFIG_SRCDIR([src/lapi.c])
-+
-+AM_INIT_AUTOMAKE([1.9 foreign])
-+
-+AC_PROG_CC
-+AC_PROG_LIBTOOL
-+
-+AC_ARG_WITH(
-+  [readline],
-+  [AC_HELP_STRING([--with-readline], [Use readline for interpreter input [default=yes]])],
-+  [use_readline=$withval],
-+  [use_readline=yes]
-+)
-+
-+LUA_LIBS="-lm"
-+
-+# Check for readline
-+READLINE_DEFS="#undef LUA_USE_READLINE"
-+if test "x$use_readline" == "xyes"; then
-+  AC_CHECK_LIB([readline], [readline], [], [use_readline=no])
-+  AC_CHECK_HEADERS([readline/readline.h readline/history.h], [], [use_readline=no])
-+  if test "x$use_readline" == "xno"; then
-+    AC_MSG_WARN([readline headers could not be found, disabling readline support])
-+  else
-+    READLINE_DEFS="#define LUA_USE_READLINE"
-+    LUA_LIBS="$LUA_LIBS -lreadline"
-+  fi
-+fi
-+AC_SUBST(READLINE_DEFS)
-+
-+case "$host" in
-+  *-mingw*)  use_os=win32  ;;
-+  *-darwin*) use_os=macosx ;;
-+  *)         use_os=posix  ;;
-+esac
-+
-+POSIX_DEFS="#undef LUA_USE_POSIX"
-+LUA_DL_DEFS="#undef LUA_USE_DLOPEN"
-+LUA_BUILD_AS_DLL_DEFS="#undef LUA_BUILD_AS_DLL"
-+
-+if test "x$use_os" == "xwin32"; then
-+  LUA_BUILD_AS_DLL_DEFS="#define LUA_BUILD_AS_DLL"
-+elif test "x$use_os" == "xmacosx"; then
-+  POSIX_DEFS="#define LUA_USE_POSIX"
-+  LUA_DL_DEFS="#define LUA_DL_DYLD"
-+elif test "x$use_os" == "xposix"; then
-+  POSIX_DEFS="#define LUA_USE_POSIX"
-+  LUA_DL_DEFS="#define LUA_DL_DLOPEN"
-+  LUA_LIBS="$LUA_LIBS -ldl"
-+fi
-+AC_SUBST(POSIX_DEFS)
-+AC_SUBST(LUA_DL_DEFS)
-+AC_SUBST(LUA_BUILD_AS_DLL_DEFS)
-+
-+AC_SUBST(LUA_LIBS)
-+
-+AC_CONFIG_FILES([Makefile
-+                 src/Makefile
-+                 src/luaconf.h.template
-+                 etc/Makefile
-+                 etc/lua.pc
-+                 doc/Makefile
-+		 test/Makefile])
-+AC_OUTPUT
-Index: lua-5.1.4/etc/lua.pc.in
-===================================================================
---- /dev/null
-+++ lua-5.1.4/etc/lua.pc.in
-@@ -0,0 +1,32 @@
-+# lua.pc -- pkg-config data for Lua
-+
-+# vars from install Makefile
-+
-+# grep '^V=' ../Makefile
-+V= 5.1
-+# grep '^R=' ../Makefile
-+R= 5.1.3
-+
-+# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
-+# plus autotoolification
-+prefix= @prefix@
-+INSTALL_BIN= ${prefix}/bin
-+INSTALL_INC= ${prefix}/include
-+INSTALL_LIB= ${prefix}/lib
-+INSTALL_MAN= ${prefix}/man/man1
-+INSTALL_LMOD= ${prefix}/share/lua/${V}
-+INSTALL_CMOD= ${prefix}/lib/lua/${V}
-+
-+# canonical vars
-+exec_prefix=${prefix}
-+libdir=${exec_prefix}/lib
-+includedir=${prefix}/include
-+
-+Name: Lua
-+Description: An Extensible Extension Language
-+Version: ${R}
-+Requires: 
-+Libs: -L${libdir} -llua -lm
-+Cflags: -I${includedir}
-+
-+# (end of lua.pc)
-Index: lua-5.1.4/src/luaconf.h.template.in
-===================================================================
---- /dev/null
-+++ lua-5.1.4/src/luaconf.h.template.in
-@@ -0,0 +1,777 @@
-+/*
-+** $Id: luaconf.h,v 1.82a 2006/04/10 18:27:23 roberto Exp $
-+** Configuration file for Lua
-+** See Copyright Notice in lua.h
-+*/
-+
-+
-+#ifndef lconfig_h
-+#define lconfig_h
-+
-+#include <limits.h>
-+#include <stddef.h>
-+
-+/*
-+** =================
-+** Autotoolification
-+** =================
-+*/
-+
-+/** autotoolize patch **/
-+@POSIX_DEFS@
-+@LUA_DL_DEFS@
-+@LUA_BUILD_AS_DLL_DEFS@
-+@READLINE_DEFS@
-+/** autotoolize patch **/
-+
-+/*
-+** ==================================================================
-+** Search for "@@" to find all configurable definitions.
-+** ===================================================================
-+*/
-+
-+
-+/*
-+@@ LUA_ANSI controls the use of non-ansi features.
-+** CHANGE it (define it) if you want Lua to avoid the use of any
-+** non-ansi feature or library.
-+*/
-+#if defined(__STRICT_ANSI__)
-+#define LUA_ANSI
-+#endif
-+
-+
-+#if !defined(LUA_ANSI) && defined(_WIN32)
-+#define LUA_WIN
-+#endif
-+
-+#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)
-+#define LUA_USE_POSIX
-+#define LUA_DL_DYLD		/* does not need extra library */
-+#endif
-+
-+
-+
-+/*
-+@@ LUA_USE_POSIX includes all functionallity listed as X/Open System
-+@* Interfaces Extension (XSI).
-+** CHANGE it (define it) if your system is XSI compatible.
-+*/
-+#if defined(LUA_USE_POSIX)
-+#define LUA_USE_MKSTEMP
-+#define LUA_USE_ISATTY
-+#define LUA_USE_POPEN
-+#define LUA_USE_ULONGJMP
-+#endif
-+
-+
-+/*
-+@@ LUA_PATH and LUA_CPATH are the names of the environment variables that
-+@* Lua check to set its paths.
-+@@ LUA_INIT is the name of the environment variable that Lua
-+@* checks for initialization code.
-+** CHANGE them if you want different names.
-+*/
-+#define LUA_PATH        "LUA_PATH"
-+#define LUA_CPATH       "LUA_CPATH"
-+#define LUA_INIT	"LUA_INIT"
-+
-+
-+/*
-+@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for
-+@* Lua libraries.
-+@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for
-+@* C libraries.
-+** CHANGE them if your machine has a non-conventional directory
-+** hierarchy or if you want to install your libraries in
-+** non-conventional directories.
-+*/
-+#if defined(_WIN32)
-+/*
-+** In Windows, any exclamation mark ('!') in the path is replaced by the
-+** path of the directory of the executable file of the current process.
-+*/
-+#define LUA_LDIR	"!\\lua\\"
-+#define LUA_CDIR	"!\\"
-+#define LUA_PATH_DEFAULT  \
-+		".\\?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?\\init.lua;" \
-+		             LUA_CDIR"?.lua;"  LUA_CDIR"?\\init.lua"
-+#define LUA_CPATH_DEFAULT \
-+	".\\?.dll;"  LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
-+
-+#else
-+
-+/** autotoolize patch **/
-+#define LUA_LDIR	"%lua_datadir%/lua/5.1/"
-+#define LUA_CDIR	"%lua_libdir%/lua/5.1/"
-+/** autotoolize patch **/
-+
-+#define LUA_PATH_DEFAULT  \
-+		"./?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?/init.lua;" \
-+		            LUA_CDIR"?.lua;"  LUA_CDIR"?/init.lua"
-+#define LUA_CPATH_DEFAULT \
-+	"./?.so;"  LUA_CDIR"?.so;" LUA_CDIR"loadall.so"
-+#endif
-+
-+
-+/*
-+@@ LUA_DIRSEP is the directory separator (for submodules).
-+** CHANGE it if your machine does not use "/" as the directory separator
-+** and is not Windows. (On Windows Lua automatically uses "\".)
-+*/
-+#if defined(_WIN32)
-+#define LUA_DIRSEP	"\\"
-+#else
-+#define LUA_DIRSEP	"/"
-+#endif
-+
-+
-+/*
-+@@ LUA_PATHSEP is the character that separates templates in a path.
-+@@ LUA_PATH_MARK is the string that marks the substitution points in a
-+@* template.
-+@@ LUA_EXECDIR in a Windows path is replaced by the executable's
-+@* directory.
-+@@ LUA_IGMARK is a mark to ignore all before it when bulding the
-+@* luaopen_ function name.
-+** CHANGE them if for some reason your system cannot use those
-+** characters. (E.g., if one of those characters is a common character
-+** in file/directory names.) Probably you do not need to change them.
-+*/
-+#define LUA_PATHSEP	";"
-+#define LUA_PATH_MARK	"?"
-+#define LUA_EXECDIR	"!"
-+#define LUA_IGMARK	"-"
-+
-+
-+/*
-+@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger.
-+** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
-+** machines, ptrdiff_t gives a good choice between int or long.)
-+*/
-+#define LUA_INTEGER	ptrdiff_t
-+
-+
-+/*
-+@@ LUA_API is a mark for all core API functions.
-+@@ LUALIB_API is a mark for all standard library functions.
-+** CHANGE them if you need to define those functions in some special way.
-+** For instance, if you want to create one Windows DLL with the core and
-+** the libraries, you may want to use the following definition (define
-+** LUA_BUILD_AS_DLL to get it).
-+*/
-+#if defined(LUA_BUILD_AS_DLL)
-+
-+#if defined(LUA_CORE) || defined(LUA_LIB)
-+#define LUA_API __declspec(dllexport)
-+#else
-+#define LUA_API __declspec(dllimport)
-+#endif
-+
-+#else
-+
-+#define LUA_API		extern
-+
-+#endif
-+
-+/* more often than not the libs go together with the core */
-+#define LUALIB_API	LUA_API
-+
-+
-+/*
-+@@ LUAI_FUNC is a mark for all extern functions that are not to be
-+@* exported to outside modules.
-+@@ LUAI_DATA is a mark for all extern (const) variables that are not to
-+@* be exported to outside modules.
-+** CHANGE them if you need to mark them in some special way. Elf/gcc
-+** (versions 3.2 and later) mark them as "hidden" to optimize access
-+** when Lua is compiled as a shared library.
-+*/
-+#if defined(luaall_c)
-+#define LUAI_FUNC	static
-+#define LUAI_DATA	/* empty */
-+
-+#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
-+      defined(__ELF__)
-+#define LUAI_FUNC	__attribute__((visibility("hidden"))) extern
-+#define LUAI_DATA	LUAI_FUNC
-+
-+#else
-+#define LUAI_FUNC	extern
-+#define LUAI_DATA	extern
-+#endif
-+
-+
-+
-+/*
-+@@ LUA_QL describes how error messages quote program elements.
-+** CHANGE it if you want a different appearance.
-+*/
-+#define LUA_QL(x)	"'" x "'"
-+#define LUA_QS		LUA_QL("%s")
-+
-+
-+/*
-+@@ LUA_IDSIZE gives the maximum size for the description of the source
-+@* of a function in debug information.
-+** CHANGE it if you want a different size.
-+*/
-+#define LUA_IDSIZE	60
-+
-+
-+/*
-+** {==================================================================
-+** Stand-alone configuration
-+** ===================================================================
-+*/
-+
-+#if defined(lua_c) || defined(luaall_c)
-+
-+/*
-+@@ lua_stdin_is_tty detects whether the standard input is a 'tty' (that
-+@* is, whether we're running lua interactively).
-+** CHANGE it if you have a better definition for non-POSIX/non-Windows
-+** systems.
-+*/
-+#if defined(LUA_USE_ISATTY)
-+#include <unistd.h>
-+#define lua_stdin_is_tty()	isatty(0)
-+#elif defined(LUA_WIN)
-+#include <io.h>
-+#include <stdio.h>
-+#define lua_stdin_is_tty()	_isatty(_fileno(stdin))
-+#else
-+#define lua_stdin_is_tty()	1  /* assume stdin is a tty */
-+#endif
-+
-+
-+/*
-+@@ LUA_PROMPT is the default prompt used by stand-alone Lua.
-+@@ LUA_PROMPT2 is the default continuation prompt used by stand-alone Lua.
-+** CHANGE them if you want different prompts. (You can also change the
-+** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.)
-+*/
-+#define LUA_PROMPT		"> "
-+#define LUA_PROMPT2		">> "
-+
-+
-+/*
-+@@ LUA_PROGNAME is the default name for the stand-alone Lua program.
-+** CHANGE it if your stand-alone interpreter has a different name and
-+** your system is not able to detect that name automatically.
-+*/
-+#define LUA_PROGNAME		"lua"
-+
-+
-+/*
-+@@ LUA_MAXINPUT is the maximum length for an input line in the
-+@* stand-alone interpreter.
-+** CHANGE it if you need longer lines.
-+*/
-+#define LUA_MAXINPUT	512
-+
-+
-+/*
-+@@ lua_readline defines how to show a prompt and then read a line from
-+@* the standard input.
-+@@ lua_saveline defines how to "save" a read line in a "history".
-+@@ lua_freeline defines how to free a line read by lua_readline.
-+** CHANGE them if you want to improve this functionality (e.g., by using
-+** GNU readline and history facilities).
-+*/
-+#if defined(LUA_USE_READLINE)
-+#include <stdio.h>
-+#include <readline/readline.h>
-+#include <readline/history.h>
-+#define lua_readline(L,b,p)	((void)L, ((b)=readline(p)) != NULL)
-+#define lua_saveline(L,idx) \
-+	if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \
-+	  add_history(lua_tostring(L, idx));  /* add it to history */
-+#define lua_freeline(L,b)	((void)L, free(b))
-+#else
-+#define lua_readline(L,b,p)	\
-+	((void)L, fputs(p, stdout), fflush(stdout),  /* show prompt */ \
-+	fgets(b, LUA_MAXINPUT, stdin) != NULL)  /* get line */
-+#define lua_saveline(L,idx)	{ (void)L; (void)idx; }
-+#define lua_freeline(L,b)	{ (void)L; (void)b; }
-+#endif
-+
-+#endif
-+
-+/* }================================================================== */
-+
-+
-+/*
-+@@ LUAI_GCPAUSE defines the default pause between garbage-collector cycles
-+@* as a percentage.
-+** CHANGE it if you want the GC to run faster or slower (higher values
-+** mean larger pauses which mean slower collection.) You can also change
-+** this value dynamically.
-+*/
-+#define LUAI_GCPAUSE	200  /* 200% (wait memory to double before next GC) */
-+
-+
-+/*
-+@@ LUAI_GCMUL defines the default speed of garbage collection relative to
-+@* memory allocation as a percentage.
-+** CHANGE it if you want to change the granularity of the garbage
-+** collection. (Higher values mean coarser collections. 0 represents
-+** infinity, where each step performs a full collection.) You can also
-+** change this value dynamically.
-+*/
-+#define LUAI_GCMUL	200 /* GC runs 'twice the speed' of memory allocation */
-+
-+
-+
-+/*
-+@@ LUA_COMPAT_GETN controls compatibility with old getn behavior.
-+** CHANGE it (define it) if you want exact compatibility with the
-+** behavior of setn/getn in Lua 5.0.
-+*/
-+#undef LUA_COMPAT_GETN
-+
-+/*
-+@@ LUA_COMPAT_LOADLIB controls compatibility about global loadlib.
-+** CHANGE it to undefined as soon as you do not need a global 'loadlib'
-+** function (the function is still available as 'package.loadlib').
-+*/
-+#undef LUA_COMPAT_LOADLIB
-+
-+/*
-+@@ LUA_COMPAT_VARARG controls compatibility with old vararg feature.
-+** CHANGE it to undefined as soon as your programs use only '...' to
-+** access vararg parameters (instead of the old 'arg' table).
-+*/
-+#define LUA_COMPAT_VARARG
-+
-+/*
-+@@ LUA_COMPAT_MOD controls compatibility with old math.mod function.
-+** CHANGE it to undefined as soon as your programs use 'math.fmod' or
-+** the new '%' operator instead of 'math.mod'.
-+*/
-+#define LUA_COMPAT_MOD
-+
-+/*
-+@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting
-+@* facility.
-+** CHANGE it to 2 if you want the old behaviour, or undefine it to turn
-+** off the advisory error when nesting [[...]].
-+*/
-+#define LUA_COMPAT_LSTR		1
-+
-+/*
-+@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name.
-+** CHANGE it to undefined as soon as you rename 'string.gfind' to
-+** 'string.gmatch'.
-+*/
-+#define LUA_COMPAT_GFIND
-+
-+/*
-+@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib'
-+@* behavior.
-+** CHANGE it to undefined as soon as you replace to 'luaL_register'
-+** your uses of 'luaL_openlib'
-+*/
-+#define LUA_COMPAT_OPENLIB
-+
-+
-+
-+/*
-+@@ luai_apicheck is the assert macro used by the Lua-C API.
-+** CHANGE luai_apicheck if you want Lua to perform some checks in the
-+** parameters it gets from API calls. This may slow down the interpreter
-+** a bit, but may be quite useful when debugging C code that interfaces
-+** with Lua. A useful redefinition is to use assert.h.
-+*/
-+#if defined(LUA_USE_APICHECK)
-+#include <assert.h>
-+#define luai_apicheck(L,o)	{ (void)L; assert(o); }
-+#else
-+#define luai_apicheck(L,o)	{ (void)L; }
-+#endif
-+
-+
-+/*
-+@@ LUAI_BITSINT defines the number of bits in an int.
-+** CHANGE here if Lua cannot automatically detect the number of bits of
-+** your machine. Probably you do not need to change this.
-+*/
-+/* avoid overflows in comparison */
-+#if INT_MAX-20 < 32760
-+#define LUAI_BITSINT	16
-+#elif INT_MAX > 2147483640L
-+/* int has at least 32 bits */
-+#define LUAI_BITSINT	32
-+#else
-+#error "you must define LUA_BITSINT with number of bits in an integer"
-+#endif
-+
-+
-+/*
-+@@ LUAI_UINT32 is an unsigned integer with at least 32 bits.
-+@@ LUAI_INT32 is an signed integer with at least 32 bits.
-+@@ LUAI_UMEM is an unsigned integer big enough to count the total
-+@* memory used by Lua.
-+@@ LUAI_MEM is a signed integer big enough to count the total memory
-+@* used by Lua.
-+** CHANGE here if for some weird reason the default definitions are not
-+** good enough for your machine. (The definitions in the 'else'
-+** part always works, but may waste space on machines with 64-bit
-+** longs.) Probably you do not need to change this.
-+*/
-+#if LUAI_BITSINT >= 32
-+#define LUAI_UINT32	unsigned int
-+#define LUAI_INT32	int
-+#define LUAI_MAXINT32	INT_MAX
-+#define LUAI_UMEM	size_t
-+#define LUAI_MEM	ptrdiff_t
-+#else
-+/* 16-bit ints */
-+#define LUAI_UINT32	unsigned long
-+#define LUAI_INT32	long
-+#define LUAI_MAXINT32	LONG_MAX
-+#define LUAI_UMEM	unsigned long
-+#define LUAI_MEM	long
-+#endif
-+
-+
-+/*
-+@@ LUAI_MAXCALLS limits the number of nested calls.
-+** CHANGE it if you need really deep recursive calls. This limit is
-+** arbitrary; its only purpose is to stop infinite recursion before
-+** exhausting memory.
-+*/
-+#define LUAI_MAXCALLS	20000
-+
-+
-+/*
-+@@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function
-+@* can use.
-+** CHANGE it if you need lots of (Lua) stack space for your C
-+** functions. This limit is arbitrary; its only purpose is to stop C
-+** functions to consume unlimited stack space.
-+*/
-+#define LUAI_MAXCSTACK	2048
-+
-+
-+
-+/*
-+** {==================================================================
-+** CHANGE (to smaller values) the following definitions if your system
-+** has a small C stack. (Or you may want to change them to larger
-+** values if your system has a large C stack and these limits are
-+** too rigid for you.) Some of these constants control the size of
-+** stack-allocated arrays used by the compiler or the interpreter, while
-+** others limit the maximum number of recursive calls that the compiler
-+** or the interpreter can perform. Values too large may cause a C stack
-+** overflow for some forms of deep constructs.
-+** ===================================================================
-+*/
-+
-+
-+/*
-+@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and
-+@* syntactical nested non-terminals in a program.
-+*/
-+#define LUAI_MAXCCALLS		200
-+
-+
-+/*
-+@@ LUAI_MAXVARS is the maximum number of local variables per function
-+@* (must be smaller than 250).
-+*/
-+#define LUAI_MAXVARS		200
-+
-+
-+/*
-+@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function
-+@* (must be smaller than 250).
-+*/
-+#define LUAI_MAXUPVALUES	60
-+
-+
-+/*
-+@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
-+*/
-+#define LUAL_BUFFERSIZE		BUFSIZ
-+
-+/* }================================================================== */
-+
-+
-+
-+
-+/*
-+** {==================================================================
-+@@ LUA_NUMBER is the type of numbers in Lua.
-+** CHANGE the following definitions only if you want to build Lua
-+** with a number type different from double. You may also need to
-+** change lua_number2int & lua_number2integer.
-+** ===================================================================
-+*/
-+
-+#define LUA_NUMBER_DOUBLE
-+#define LUA_NUMBER	double
-+
-+/*
-+@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
-+@* over a number.
-+*/
-+#define LUAI_UACNUMBER	double
-+
-+
-+/*
-+@@ LUA_NUMBER_SCAN is the format for reading numbers.
-+@@ LUA_NUMBER_FMT is the format for writing numbers.
-+@@ lua_number2str converts a number to a string.
-+@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
-+@@ lua_str2number converts a string to a number.
-+*/
-+#define LUA_NUMBER_SCAN		"%lf"
-+#define LUA_NUMBER_FMT		"%.14g"
-+#define lua_number2str(s,n)	sprintf((s), LUA_NUMBER_FMT, (n))
-+#define LUAI_MAXNUMBER2STR	32 /* 16 digits, sign, point, and \0 */
-+#define lua_str2number(s,p)	strtod((s), (p))
-+
-+
-+/*
-+@@ The luai_num* macros define the primitive operations over numbers.
-+*/
-+#if defined(LUA_CORE)
-+#include <math.h>
-+#define luai_numadd(a,b)	((a)+(b))
-+#define luai_numsub(a,b)	((a)-(b))
-+#define luai_nummul(a,b)	((a)*(b))
-+#define luai_numdiv(a,b)	((a)/(b))
-+#define luai_nummod(a,b)	((a) - floor((a)/(b))*(b))
-+#define luai_numpow(a,b)	(pow(a,b))
-+#define luai_numunm(a)		(-(a))
-+#define luai_numeq(a,b)		((a)==(b))
-+#define luai_numlt(a,b)		((a)<(b))
-+#define luai_numle(a,b)		((a)<=(b))
-+#define luai_numisnan(a)	(!luai_numeq((a), (a)))
-+#endif
-+
-+
-+/*
-+@@ lua_number2int is a macro to convert lua_Number to int.
-+@@ lua_number2integer is a macro to convert lua_Number to lua_Integer.
-+** CHANGE them if you know a faster way to convert a lua_Number to
-+** int (with any rounding method and without throwing errors) in your
-+** system. In Pentium machines, a naive typecast from double to int
-+** in C is extremely slow, so any alternative is worth trying.
-+*/
-+
-+/* On a Pentium, resort to a trick */
-+#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \
-+    (defined(__i386) || defined (_M_IX86) || defined(__i386__))
-+
-+/* On a Microsoft compiler, use assembler */
-+#if defined(_MSC_VER)
-+
-+#define lua_number2int(i,d)   __asm fld d   __asm fistp i
-+#define lua_number2integer(i,n)		lua_number2int(i, n)
-+
-+/* the next trick should work on any Pentium, but sometimes clashes
-+   with a DirectX idiosyncrasy */
-+#else
-+
-+union luai_Cast { double l_d; long l_l; };
-+#define lua_number2int(i,d) \
-+  { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; }
-+#define lua_number2integer(i,n)		lua_number2int(i, n)
-+
-+#endif
-+
-+
-+/* this option always works, but may be slow */
-+#else
-+#define lua_number2int(i,d)	((i)=(int)(d))
-+#define lua_number2integer(i,d)	((i)=(lua_Integer)(d))
-+
-+#endif
-+
-+/* }================================================================== */
-+
-+
-+/*
-+@@ LUAI_USER_ALIGNMENT_T is a type that requires maximum alignment.
-+** CHANGE it if your system requires alignments larger than double. (For
-+** instance, if your system supports long doubles and they must be
-+** aligned in 16-byte boundaries, then you should add long double in the
-+** union.) Probably you do not need to change this.
-+*/
-+#define LUAI_USER_ALIGNMENT_T	union { double u; void *s; long l; }
-+
-+
-+/*
-+@@ LUAI_THROW/LUAI_TRY define how Lua does exception handling.
-+** CHANGE them if you prefer to use longjmp/setjmp even with C++
-+** or if want/don't to use _longjmp/_setjmp instead of regular
-+** longjmp/setjmp. By default, Lua handles errors with exceptions when
-+** compiling as C++ code, with _longjmp/_setjmp when asked to use them,
-+** and with longjmp/setjmp otherwise.
-+*/
-+#if defined(__cplusplus)
-+/* C++ exceptions */
-+#define LUAI_THROW(L,c)	throw(c)
-+#define LUAI_TRY(L,c,a)	try { a } catch(...) \
-+	{ if ((c)->status == 0) (c)->status = -1; }
-+#define luai_jmpbuf	int  /* dummy variable */
-+
-+#elif defined(LUA_USE_ULONGJMP)
-+/* in Unix, try _longjmp/_setjmp (more efficient) */
-+#define LUAI_THROW(L,c)	_longjmp((c)->b, 1)
-+#define LUAI_TRY(L,c,a)	if (_setjmp((c)->b) == 0) { a }
-+#define luai_jmpbuf	jmp_buf
-+
-+#else
-+/* default handling with long jumps */
-+#define LUAI_THROW(L,c)	longjmp((c)->b, 1)
-+#define LUAI_TRY(L,c,a)	if (setjmp((c)->b) == 0) { a }
-+#define luai_jmpbuf	jmp_buf
-+
-+#endif
-+
-+
-+/*
-+@@ LUA_MAXCAPTURES is the maximum number of captures that a pattern
-+@* can do during pattern-matching.
-+** CHANGE it if you need more captures. This limit is arbitrary.
-+*/
-+#define LUA_MAXCAPTURES		32
-+
-+
-+/*
-+@@ lua_tmpnam is the function that the OS library uses to create a
-+@* temporary name.
-+@@ LUA_TMPNAMBUFSIZE is the maximum size of a name created by lua_tmpnam.
-+** CHANGE them if you have an alternative to tmpnam (which is considered
-+** insecure) or if you want the original tmpnam anyway.  By default, Lua
-+** uses tmpnam except when POSIX is available, where it uses mkstemp.
-+*/
-+#if defined(loslib_c) || defined(luaall_c)
-+
-+#if defined(LUA_USE_MKSTEMP)
-+#include <unistd.h>
-+#define LUA_TMPNAMBUFSIZE	32
-+#define lua_tmpnam(b,e)	{ \
-+	strcpy(b, "/tmp/lua_XXXXXX"); \
-+	e = mkstemp(b); \
-+	if (e != -1) close(e); \
-+	e = (e == -1); }
-+
-+#else
-+#define LUA_TMPNAMBUFSIZE	L_tmpnam
-+#define lua_tmpnam(b,e)		{ e = (tmpnam(b) == NULL); }
-+#endif
-+
-+#endif
-+
-+
-+/*
-+@@ lua_popen spawns a new process connected to the current one through
-+@* the file streams.
-+** CHANGE it if you have a way to implement it in your system.
-+*/
-+#if defined(LUA_USE_POPEN)
-+
-+#define lua_popen(L,c,m)	((void)L, popen(c,m))
-+#define lua_pclose(L,file)	((void)L, (pclose(file) != -1))
-+
-+#elif defined(LUA_WIN)
-+
-+#define lua_popen(L,c,m)	((void)L, _popen(c,m))
-+#define lua_pclose(L,file)	((void)L, (_pclose(file) != -1))
-+
-+#else
-+
-+#define lua_popen(L,c,m)	((void)((void)c, m),  \
-+		luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0)
-+#define lua_pclose(L,file)		((void)((void)L, file), 0)
-+
-+#endif
-+
-+/*
-+@@ LUA_DL_* define which dynamic-library system Lua should use.
-+** CHANGE here if Lua has problems choosing the appropriate
-+** dynamic-library system for your platform (either Windows' DLL, Mac's
-+** dyld, or Unix's dlopen). If your system is some kind of Unix, there
-+** is a good chance that it has dlopen, so LUA_DL_DLOPEN will work for
-+** it.  To use dlopen you also need to adapt the src/Makefile (probably
-+** adding -ldl to the linker options), so Lua does not select it
-+** automatically.  (When you change the makefile to add -ldl, you must
-+** also add -DLUA_USE_DLOPEN.)
-+** If you do not want any kind of dynamic library, undefine all these
-+** options.
-+** By default, _WIN32 gets LUA_DL_DLL and MAC OS X gets LUA_DL_DYLD.
-+*/
-+#if defined(LUA_USE_DLOPEN)
-+#define LUA_DL_DLOPEN
-+#endif
-+
-+#if defined(LUA_WIN)
-+#define LUA_DL_DLL
-+#endif
-+
-+
-+/*
-+@@ LUAI_EXTRASPACE allows you to add user-specific data in a lua_State
-+@* (the data goes just *before* the lua_State pointer).
-+** CHANGE (define) this if you really need that. This value must be
-+** a multiple of the maximum alignment required for your machine.
-+*/
-+#define LUAI_EXTRASPACE		0
-+
-+
-+/*
-+@@ luai_userstate* allow user-specific actions on threads.
-+** CHANGE them if you defined LUAI_EXTRASPACE and need to do something
-+** extra when a thread is created/deleted/resumed/yielded.
-+*/
-+#define luai_userstateopen(L)		((void)L)
-+#define luai_userstateclose(L)		((void)L)
-+#define luai_userstatethread(L,L1)	((void)L)
-+#define luai_userstatefree(L)		((void)L)
-+#define luai_userstateresume(L,n)	((void)L)
-+#define luai_userstateyield(L,n)	((void)L)
-+
-+
-+/*
-+@@ LUA_INTFRMLEN is the length modifier for integer conversions
-+@* in 'string.format'.
-+@@ LUA_INTFRM_T is the integer type correspoding to the previous length
-+@* modifier.
-+** CHANGE them if your system supports long long or does not support long.
-+*/
-+
-+#if defined(LUA_USELONGLONG)
-+
-+#define LUA_INTFRMLEN		"ll"
-+#define LUA_INTFRM_T		long long
-+
-+#else
-+
-+#define LUA_INTFRMLEN		"l"
-+#define LUA_INTFRM_T		long
-+
-+#endif
-+
-+
-+
-+/* =================================================================== */
-+
-+/*
-+** Local configuration. You can use this space to add your redefinitions
-+** without modifying the main part of the file.
-+*/
-+
-+
-+
-+#endif
-+
diff --git a/patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff b/patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff
deleted file mode 100644
index 04cfb8a..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: add autogen.sh
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch adds an autogen.sh script.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- autogen.sh |    5 +++++
- 1 file changed, 5 insertions(+)
-
-Index: lua-5.1.3/autogen.sh
-===================================================================
---- /dev/null
-+++ lua-5.1.3/autogen.sh
-@@ -0,0 +1,5 @@
-+#!/bin/sh
-+
-+autoreconf -fvi
-+
-+echo "Now run ./configure"
diff --git a/patches/lua-5.1.4/lua-5.1.3-automakize.diff b/patches/lua-5.1.4/lua-5.1.3-automakize.diff
deleted file mode 100644
index 7fa3814..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-automakize.diff
+++ /dev/null
@@ -1,111 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: add automake files
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch adds the automake files.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- Makefile.am      |    3 +++
- doc/Makefile.am  |    5 +++++
- etc/Makefile.am  |    8 ++++++++
- src/Makefile.am  |   45 +++++++++++++++++++++++++++++++++++++++++++++
- test/Makefile.am |    5 +++++
- 5 files changed, 66 insertions(+)
-
-Index: lua-5.1.3/doc/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/doc/Makefile.am
-@@ -0,0 +1,5 @@
-+man1_MANS = lua.1 luac.1
-+
-+EXTRA_DIST = \
-+	contents.html  lua.1   luac.html  lua.html     manual.html \
-+	logo.gif       luac.1  lua.css    readme.html
-Index: lua-5.1.3/etc/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/etc/Makefile.am
-@@ -0,0 +1,8 @@
-+include_HEADERS = lua.hpp
-+
-+pkgconfigdir = $(libdir)/pkgconfig
-+pkgconfig_DATA = lua.pc
-+
-+EXTRA_DIST = \
-+	all.c      lua.ico    lua.pc.in  noparser.c  strict.lua \
-+	luavs.bat  min.c      README
-Index: lua-5.1.3/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/Makefile.am
-@@ -0,0 +1,3 @@
-+SUBDIRS = src doc etc test
-+
-+EXTRA_DIST = autogen.sh COPYRIGHT HISTORY INSTALL README
-Index: lua-5.1.3/src/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/src/Makefile.am
-@@ -0,0 +1,45 @@
-+AM_CFLAGS = -Wall
-+
-+include_HEADERS = lua.h lualib.h lauxlib.h
-+nodist_include_HEADERS = luaconf.h
-+
-+lib_LTLIBRARIES = liblua.la
-+liblua_la_LDFLAGS = -release 5.1.3
-+liblua_la_SOURCES = \
-+	lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c \
-+	lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c  \
-+	lundump.c lvm.c lzio.c \
-+	lauxlib.c lbaselib.c ldblib.c liolib.c lmathlib.c loslib.c ltablib.c \
-+	lstrlib.c loadlib.c linit.c \
-+	lapi.h ldebug.h lgc.h lmem.h lparser.h ltable.h lzio.h ldo.h llex.h \
-+	lobject.h lstate.h ltm.h lundump.h lcode.h lfunc.h llimits.h lopcodes.h \
-+	lstring.h lvm.h
-+
-+bin_PROGRAMS = lua luac
-+
-+lua_SOURCES = lua.c
-+lua_LDADD = liblua.la @LUA_LIBS@
-+lua_DEPENDENCIES = liblua.la
-+
-+luac_SOURCES = luac.c print.c
-+luac_LDADD = liblua.la @LUA_LIBS@
-+luac_DEPENDENCIES = liblua.la
-+
-+# luac must be linked statically because it uses functions that
-+# don't get exported to the shared object
-+luac_LDFLAGS = -static
-+
-+EXTRA_DIST = luaconf.h.template.in
-+BUILT_SOURCES = luaconf.h
-+CLEANFILES = luaconf.h
-+
-+readline_defs = @READLINE_DEFS@
-+
-+edit = 	sed \
-+	  -e 's,%lua_datadir%,$(datadir),g' \
-+	  -e 's,%lua_libdir%,$(libdir),g'
-+
-+luaconf.h : luaconf.h.template
-+	rm -f luaconf.h luaconf.h.tmp
-+	$(edit) luaconf.h.template > luaconf.h.tmp
-+	mv luaconf.h.tmp luaconf.h
-Index: lua-5.1.3/test/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/test/Makefile.am
-@@ -0,0 +1,5 @@
-+EXTRA_DIST = \
-+	bisect.lua  env.lua         fib.lua      life.lua          printf.lua \
-+	sieve.lua   trace-calls.lua cf.lua       factorial.lua     globals.lua \
-+	luac.lua    README          sort.lua     trace-globals.lua echo.lua \
-+	fibfor.lua  hello.lua       readonly.lua table.lua         xd.lua
diff --git a/patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff b/patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff
deleted file mode 100644
index 172e31e..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff
+++ /dev/null
@@ -1,149 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: remove old Makefile
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch removes the old Makefile.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- Makefile |  128 ---------------------------------------------------------------
- 1 file changed, 128 deletions(-)
-
-Index: lua-5.1.4/Makefile
-===================================================================
---- lua-5.1.4.orig/Makefile
-+++ /dev/null
-@@ -1,128 +0,0 @@
--# makefile for installing Lua
--# see INSTALL for installation instructions
--# see src/Makefile and src/luaconf.h for further customization
--
--# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
--
--# Your platform. See PLATS for possible values.
--PLAT= none
--
--# Where to install. The installation starts in the src and doc directories,
--# so take care if INSTALL_TOP is not an absolute path.
--INSTALL_TOP= /usr/local
--INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
--INSTALL_LIB= $(INSTALL_TOP)/lib
--INSTALL_MAN= $(INSTALL_TOP)/man/man1
--#
--# You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with
--# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h (and also with etc/lua.pc).
--INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
--INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
--
--# How to install. If your install program does not support "-p", then you
--# may have to run ranlib on the installed liblua.a (do "make ranlib").
--INSTALL= install -p
--INSTALL_EXEC= $(INSTALL) -m 0755
--INSTALL_DATA= $(INSTALL) -m 0644
--#
--# If you don't have install you can use cp instead.
--# INSTALL= cp -p
--# INSTALL_EXEC= $(INSTALL)
--# INSTALL_DATA= $(INSTALL)
--
--# Utilities.
--MKDIR= mkdir -p
--RANLIB= ranlib
--
--# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
--
--# Convenience platforms targets.
--PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
--
--# What to install.
--TO_BIN= lua luac
--TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
--TO_LIB= liblua.a
--TO_MAN= lua.1 luac.1
--
--# Lua version and release.
--V= 5.1
--R= 5.1.4
--
--all:	$(PLAT)
--
--$(PLATS) clean:
--	cd src && $(MAKE) $@
--
--test:	dummy
--	src/lua test/hello.lua
--
--install: dummy
--	cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
--	cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
--	cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
--	cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
--	cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
--
--ranlib:
--	cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
--
--local:
--	$(MAKE) install INSTALL_TOP=..
--
--none:
--	@echo "Please do"
--	@echo "   make PLATFORM"
--	@echo "where PLATFORM is one of these:"
--	@echo "   $(PLATS)"
--	@echo "See INSTALL for complete instructions."
--
--# make may get confused with test/ and INSTALL in a case-insensitive OS
--dummy:
--
--# echo config parameters
--echo:
--	@echo ""
--	@echo "These are the parameters currently set in src/Makefile to build Lua $R:"
--	@echo ""
--	@cd src && $(MAKE) -s echo
--	@echo ""
--	@echo "These are the parameters currently set in Makefile to install Lua $R:"
--	@echo ""
--	@echo "PLAT = $(PLAT)"
--	@echo "INSTALL_TOP = $(INSTALL_TOP)"
--	@echo "INSTALL_BIN = $(INSTALL_BIN)"
--	@echo "INSTALL_INC = $(INSTALL_INC)"
--	@echo "INSTALL_LIB = $(INSTALL_LIB)"
--	@echo "INSTALL_MAN = $(INSTALL_MAN)"
--	@echo "INSTALL_LMOD = $(INSTALL_LMOD)"
--	@echo "INSTALL_CMOD = $(INSTALL_CMOD)"
--	@echo "INSTALL_EXEC = $(INSTALL_EXEC)"
--	@echo "INSTALL_DATA = $(INSTALL_DATA)"
--	@echo ""
--	@echo "See also src/luaconf.h ."
--	@echo ""
--
--# echo private config parameters
--pecho:
--	@echo "V = $(V)"
--	@echo "R = $(R)"
--	@echo "TO_BIN = $(TO_BIN)"
--	@echo "TO_INC = $(TO_INC)"
--	@echo "TO_LIB = $(TO_LIB)"
--	@echo "TO_MAN = $(TO_MAN)"
--
--# echo config parameters as Lua code
--# uncomment the last sed expression if you want nil instead of empty strings
--lecho:
--	@echo "-- installation parameters for Lua $R"
--	@echo "VERSION = '$V'"
--	@echo "RELEASE = '$R'"
--	@$(MAKE) echo | grep = | sed -e 's/= /= "/' -e 's/$$/"/' #-e 's/""/nil/'
--	@echo "-- EOF"
--
--# list targets that do not create files (but not all makes understand .PHONY)
--.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
--
--# (end of Makefile)
diff --git a/patches/lua-5.1.4/remove-Makefile.diff b/patches/lua-5.1.4/remove-Makefile.diff
new file mode 100644
index 0000000..172e31e
--- /dev/null
+++ b/patches/lua-5.1.4/remove-Makefile.diff
@@ -0,0 +1,149 @@
+Subject: Add lua support to ptxdist 1.99: remove old Makefile
+From: Erwin Rol <erwin@erwinrol.com>
+
+This patch add lua support to ptxdist 1.99. It has a menu entry under
+scripting languages. And a patch that makes it possible to use autoconf
+to build.
+
+This part of the patch removes the old Makefile.
+
+Signed-off-by: Erwin Rol <erwin@erwinrol.com>
+Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
+
+---
+ Makefile |  128 ---------------------------------------------------------------
+ 1 file changed, 128 deletions(-)
+
+Index: lua-5.1.4/Makefile
+===================================================================
+--- lua-5.1.4.orig/Makefile
++++ /dev/null
+@@ -1,128 +0,0 @@
+-# makefile for installing Lua
+-# see INSTALL for installation instructions
+-# see src/Makefile and src/luaconf.h for further customization
+-
+-# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
+-
+-# Your platform. See PLATS for possible values.
+-PLAT= none
+-
+-# Where to install. The installation starts in the src and doc directories,
+-# so take care if INSTALL_TOP is not an absolute path.
+-INSTALL_TOP= /usr/local
+-INSTALL_BIN= $(INSTALL_TOP)/bin
+-INSTALL_INC= $(INSTALL_TOP)/include
+-INSTALL_LIB= $(INSTALL_TOP)/lib
+-INSTALL_MAN= $(INSTALL_TOP)/man/man1
+-#
+-# You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with
+-# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h (and also with etc/lua.pc).
+-INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
+-INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
+-
+-# How to install. If your install program does not support "-p", then you
+-# may have to run ranlib on the installed liblua.a (do "make ranlib").
+-INSTALL= install -p
+-INSTALL_EXEC= $(INSTALL) -m 0755
+-INSTALL_DATA= $(INSTALL) -m 0644
+-#
+-# If you don't have install you can use cp instead.
+-# INSTALL= cp -p
+-# INSTALL_EXEC= $(INSTALL)
+-# INSTALL_DATA= $(INSTALL)
+-
+-# Utilities.
+-MKDIR= mkdir -p
+-RANLIB= ranlib
+-
+-# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+-
+-# Convenience platforms targets.
+-PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+-
+-# What to install.
+-TO_BIN= lua luac
+-TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
+-TO_LIB= liblua.a
+-TO_MAN= lua.1 luac.1
+-
+-# Lua version and release.
+-V= 5.1
+-R= 5.1.4
+-
+-all:	$(PLAT)
+-
+-$(PLATS) clean:
+-	cd src && $(MAKE) $@
+-
+-test:	dummy
+-	src/lua test/hello.lua
+-
+-install: dummy
+-	cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
+-	cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
+-	cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
+-	cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
+-	cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
+-
+-ranlib:
+-	cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
+-
+-local:
+-	$(MAKE) install INSTALL_TOP=..
+-
+-none:
+-	@echo "Please do"
+-	@echo "   make PLATFORM"
+-	@echo "where PLATFORM is one of these:"
+-	@echo "   $(PLATS)"
+-	@echo "See INSTALL for complete instructions."
+-
+-# make may get confused with test/ and INSTALL in a case-insensitive OS
+-dummy:
+-
+-# echo config parameters
+-echo:
+-	@echo ""
+-	@echo "These are the parameters currently set in src/Makefile to build Lua $R:"
+-	@echo ""
+-	@cd src && $(MAKE) -s echo
+-	@echo ""
+-	@echo "These are the parameters currently set in Makefile to install Lua $R:"
+-	@echo ""
+-	@echo "PLAT = $(PLAT)"
+-	@echo "INSTALL_TOP = $(INSTALL_TOP)"
+-	@echo "INSTALL_BIN = $(INSTALL_BIN)"
+-	@echo "INSTALL_INC = $(INSTALL_INC)"
+-	@echo "INSTALL_LIB = $(INSTALL_LIB)"
+-	@echo "INSTALL_MAN = $(INSTALL_MAN)"
+-	@echo "INSTALL_LMOD = $(INSTALL_LMOD)"
+-	@echo "INSTALL_CMOD = $(INSTALL_CMOD)"
+-	@echo "INSTALL_EXEC = $(INSTALL_EXEC)"
+-	@echo "INSTALL_DATA = $(INSTALL_DATA)"
+-	@echo ""
+-	@echo "See also src/luaconf.h ."
+-	@echo ""
+-
+-# echo private config parameters
+-pecho:
+-	@echo "V = $(V)"
+-	@echo "R = $(R)"
+-	@echo "TO_BIN = $(TO_BIN)"
+-	@echo "TO_INC = $(TO_INC)"
+-	@echo "TO_LIB = $(TO_LIB)"
+-	@echo "TO_MAN = $(TO_MAN)"
+-
+-# echo config parameters as Lua code
+-# uncomment the last sed expression if you want nil instead of empty strings
+-lecho:
+-	@echo "-- installation parameters for Lua $R"
+-	@echo "VERSION = '$V'"
+-	@echo "RELEASE = '$R'"
+-	@$(MAKE) echo | grep = | sed -e 's/= /= "/' -e 's/$$/"/' #-e 's/""/nil/'
+-	@echo "-- EOF"
+-
+-# list targets that do not create files (but not all makes understand .PHONY)
+-.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
+-
+-# (end of Makefile)
diff --git a/patches/lua-5.1.4/series b/patches/lua-5.1.4/series
index eccc62a..2c51e37 100644
--- a/patches/lua-5.1.4/series
+++ b/patches/lua-5.1.4/series
@@ -1,4 +1,3 @@
-lua-5.1.3-remove-Makefile.diff
-lua-5.1.3-autoconfize.diff
-lua-5.1.3-automakize.diff
-lua-5.1.3-autogen.sh.diff
+remove-Makefile.diff
+autoconfize.diff
+automakize.diff
diff --git a/rules/lua.make b/rules/lua.make
index 19bb1c5..56c7918 100644
--- a/rules/lua.make
+++ b/rules/lua.make
@@ -60,7 +60,7 @@ ifdef PTXCONF_LUA_INSTALL_LUAC
 	@$(call install_copy, lua, 0, 0, 0755, -, /usr/bin/luac)
 endif
 ifdef PTXCONF_LUA_INSTALL_LIBLUA
-	@$(call install_lib, lua, 0, 0, 0644, liblua-5.1.3)
+	@$(call install_lib, lua, 0, 0, 0644, liblua-$(LUA_VERSION))
 endif
 	@$(call install_finish, lua)
 
-- 
1.7.2.5


[-- Attachment #3: 0001-php5-add-some-functionalities-curl-xmlrpc-zlib.patch --]
[-- Type: application/octet-stream, Size: 4193 bytes --]

From 9776f792a2cdff75acd833096997986920203b0a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
Date: Tue, 6 Dec 2011 12:24:02 +0100
Subject: [PATCH] php5: add some functionalities (curl, xmlrpc, zlib)
To: ptxdist@pengutronix.de

---
 rules/php5.in   |   33 +++++++++++++++++++++++++++------
 rules/php5.make |   22 +++++++++++++++++++++-
 2 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/rules/php5.in b/rules/php5.in
index 8f77492..4b8a301 100644
--- a/rules/php5.in
+++ b/rules/php5.in
@@ -5,10 +5,13 @@ menuconfig PHP5
 	tristate
 	prompt "php5                          "
 	select APACHE2	if PHP5_SAPI_APXS2
+	select LIBCURL  if PHP5_EXT_CURL
 	select LIBXML2	if PHP5_XML_LIBXML2
 	select LIBXSLT	if PHP5_XML_LIBXML2_XSLT
 	select MYSQL	if PHP5_EXT_MYSQL
 	select PHP5_XML	if PHP5_EXT_SOAP
+	select XMLRPC_C if PHP5_XML_LIBXML2_XMLRPC
+	select ZLIB     if PHP5_EXT_ZLIB
 
 if PHP5
 
@@ -213,6 +216,16 @@ config PHP5_XML_LIBXML2_SIMPLEXML
 	help
 	  simple xml support
 
+#  --with-xmlrpc[=DIR]     Include XMLRPC-EPI support
+#  --with-libexpat-dir=DIR   XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)
+#  --with-iconv-dir=DIR      XMLRPC-EPI: iconv dir for XMLRPC-EPI
+
+config PHP5_XML_LIBXML2_XMLRPC
+	bool
+	prompt "xmlrpc support"
+	help
+	  xmlrpc support
+
 endif	# PHP5_XML_LIBXML2
 
 endif	# PHP5_XML
@@ -272,12 +285,16 @@ menu "Extensions                  "
 #                          support. Use --with-pcre-regex=DIR to specify DIR
 #                          where PCRE's include and library files are located,
 #                          if not using bundled library.
-#  --with-zlib[=DIR]       Include ZLIB support (requires zlib >= 1.0.9)
-#  --with-zlib-dir=<DIR>   Define the location of zlib install directory
 #  --enable-bcmath         Enable bc style precision math functions
 #  --with-bz2[=DIR]        Include BZip2 support
 #  --enable-calendar       Enable support for calendar conversion
 #  --disable-ctype         Disable ctype functions
+config PHP5_EXT_CURL
+	bool
+	prompt "curl"
+	help
+	  Enable CURL support for PHP.
+
 #  --with-curl[=DIR]       Include CURL support
 #  --with-curlwrappers     Use CURL for url streams
 #  --enable-dba            Build DBA with builtin modules. To build shared DBA
@@ -473,6 +490,14 @@ config PHP5_EXT_SQLITE3
 	help
 	  Enable sqlite3 support for PHP.
 
+#  --with-zlib[=DIR]       Include ZLIB support (requires zlib >= 1.0.9)
+#  --with-zlib-dir=<DIR>   Define the location of zlib install directory
+config PHP5_EXT_ZLIB
+	bool
+	prompt "zlib"
+	help
+	  Enable zlib support for PHP.
+
 #  --disable-spl           Disable Standard PHP Library
 #  --without-sqlite        Do not include sqlite support.
 #                          Use --with-sqlite=DIR to specify DIR where
@@ -493,10 +518,6 @@ config PHP5_EXT_SQLITE3
 #  --enable-wddx           Enable WDDX support
 #  --with-libexpat-dir=DIR   XML: libexpat install prefix (deprecated)
 
-#  --with-xmlrpc[=DIR]     Include XMLRPC-EPI support
-#  --with-libexpat-dir=DIR   XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)
-#  --with-iconv-dir=DIR      XMLRPC-EPI: iconv dir for XMLRPC-EPI
-
 #PEAR:
 #
 #  --with-pear=DIR         Install PEAR in DIR [PREFIX/lib/php]
diff --git a/rules/php5.make b/rules/php5.make
index 31b8672..04976a5 100644
--- a/rules/php5.make
+++ b/rules/php5.make
@@ -86,7 +86,7 @@ else
 endif
 
 ifdef PTXCONF_PHP5_SAPI_APXS2
-PHP5_AUTOCONF += --with-apxs2=$(SYSROOT)/usr/bin/apxs
+PHP5_AUTOCONF += --with-apxs2=$(PTXDIST_SYSROOT_TARGET)/usr/bin/apxs
 else
 # PHP5_AUTOCONF += --without-apxs2
 endif
@@ -223,6 +223,26 @@ else
 PHP5_AUTOCONF += --disable-simplexml
 endif
 
+ifdef PTXCONF_PHP5_XML_LIBXML2_XMLRPC
+PHP5_AUTOCONF += --with-xmlrpc
+else
+PHP5_AUTOCONF += --without-xmlrpc
+endif
+
+ifdef PTXCONF_PHP5_EXT_ZLIB
+PHP5_AUTOCONF += --with-zlib=$(SYSROOT)/usr
+else
+PHP5_AUTOCONF += --without-zlib
+endif
+
+ifdef PTXCONF_PHP5_EXT_CURL
+PHP5_AUTOCONF += \
+	--with-curl=$(SYSROOT)/usr \
+	--with-curl-wrappers
+else
+PHP5_AUTOCONF += --without-curl
+endif
+
 ifdef PTXCONF_PHP5_EXT_MYSQL
 PHP5_AUTOCONF += \
 	--with-mysql=$(SYSROOT)/usr \
-- 
1.7.2.5


[-- Attachment #4: 0001-xmlrpc-c-fix-location-url.patch --]
[-- Type: application/octet-stream, Size: 1034 bytes --]

From 57dbecfaa620963c4eae3284fc583774f773ad36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
Date: Tue, 6 Dec 2011 12:21:04 +0100
Subject: [PATCH] xmlrpc-c: fix location url
To: ptxdist@pengutronix.de

---
 rules/xmlrpc-c.make |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/rules/xmlrpc-c.make b/rules/xmlrpc-c.make
index bbda7b0..7e36b7b 100644
--- a/rules/xmlrpc-c.make
+++ b/rules/xmlrpc-c.make
@@ -20,7 +20,7 @@ XMLRPC_C_VERSION	:= 1.06.41
 XMLRPC_C_MD5		:= 02c6b89b8ff911341b6b6d4a6c621ea9
 XMLRPC_C		:= xmlrpc-c-$(XMLRPC_C_VERSION)
 XMLRPC_C_SUFFIX		:= tgz
-XMLRPC_C_URL		:= $(PTXCONF_SETUP_SFMIRROR)/xmlrpc-c/Xmlrpc-c%20Super%20Stable/1.06.38/$(XMLRPC_C).$(XMLRPC_C_SUFFIX)
+XMLRPC_C_URL		:= $(PTXCONF_SETUP_SFMIRROR)/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(XMLRPC_C_VERSION)/$(XMLRPC_C).$(XMLRPC_C_SUFFIX)
 XMLRPC_C_SOURCE		:= $(SRCDIR)/$(XMLRPC_C).$(XMLRPC_C_SUFFIX)
 XMLRPC_C_DIR		:= $(BUILDDIR)/$(XMLRPC_C)
 XMLRPC_C_LICENSE	:= unknown
-- 
1.7.2.5


[-- Attachment #5: 0002-lua-update-to-the-latest-bugfix-patch.patch --]
[-- Type: application/octet-stream, Size: 17461 bytes --]

From 56db38467544b3a989c6085ee2ce89c599c97c99 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
Date: Tue, 6 Dec 2011 15:00:53 +0100
Subject: [PATCH 2/2] lua: update to the latest bugfix patch
To: ptxdist@pengutronix.de

---
 ...ly-crafted-precompiled-code-can-crash-Lua.patch |    7 ++
 ...ble-to-create-functions-that-return-too-m.patch |    8 +++
 ...generation-for-some-particular-boolean-ex.patch |   66 ++++++++++++++++++++
 ...le-may-invalidate-a-reference-to-a-table-.patch |   45 +++++++++++++
 ...nv-does-not-check-whether-it-has-an-argum.patch |   27 ++++++++
 ...stuck-during-parsing-and-avoids-proper-re.patch |   28 ++++++++
 ...at-may-get-buffer-as-an-argument-when-the.patch |   39 ++++++++++++
 ...n-may-return-garbage-if-second-read-fails.patch |   32 ++++++++++
 ...generation-for-some-particular-boolean-ex.patch |   50 +++++++++++++++
 ...metamethod-may-not-work-if-metatable-is-i.patch |   31 +++++++++
 ...may-collect-a-prototype-while-building-it.patch |   26 ++++++++
 patches/lua-5.1.4/series                           |   11 +++
 12 files changed, 370 insertions(+), 0 deletions(-)
 create mode 100644 patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
 create mode 100644 patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
 create mode 100644 patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
 create mode 100644 patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
 create mode 100644 patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
 create mode 100644 patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
 create mode 100644 patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
 create mode 100644 patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
 create mode 100644 patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
 create mode 100644 patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
 create mode 100644 patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch

diff --git a/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch b/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
new file mode 100644
index 0000000..57a85e8
--- /dev/null
+++ b/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
@@ -0,0 +1,7 @@
+From 293f82d33cd67b7f48e078788af6a4b2887c16bf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:05:35 +0100
+Subject: [PATCH 01/11] Maliciously crafted precompiled code can crash Lua
+
+---
+
diff --git a/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch b/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
new file mode 100644
index 0000000..07dba84
--- /dev/null
+++ b/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
@@ -0,0 +1,8 @@
+From e5973b1ca3ad83d500f0c85abb78b2a0bf5fbdc5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:07:18 +0100
+Subject: [PATCH 02/11] It is possible to create functions that return too many arguments and
+ overflow the stack of C functions.
+
+---
+
diff --git a/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch b/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
new file mode 100644
index 0000000..38b04ba
--- /dev/null
+++ b/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
@@ -0,0 +1,66 @@
+From b40f5fc4341153fc53fa2d0e839223944b022e6e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:10:56 +0100
+Subject: [PATCH 03/11] Wrong code generation for some particular boolean expressions. (see also
+ 9)
+ reported by Brian Kelley on 15 Apr 2009.
+ Example:
+ --
+ print(((1 or false) and true) or false)   --> 1, but should be 'true'
+ --
+
+Patch: (partial solution; see also 9)
+---
+
+diff --git a/src/lcode.c b/src/lcode.c
+index cff626b..84f286b 100644
+--- a/src/lcode.c
++++ b/src/lcode.c
+@@ -544,15 +544,18 @@ void luaK_goiftrue (FuncState *fs, expdesc *e) {
+       pc = NO_JUMP;  /* always true; do nothing */
+       break;
+     }
+-    case VFALSE: {
+-      pc = luaK_jump(fs);  /* always jump */
+-      break;
+-    }
+     case VJMP: {
+       invertjump(fs, e);
+       pc = e->u.s.info;
+       break;
+     }
++    case VFALSE: {
++      if (!hasjumps(e)) {
++        pc = luaK_jump(fs);  /* always jump */
++        break;
++      }
++      /* else go through */
++    }
+     default: {
+       pc = jumponcond(fs, e, 0);
+       break;
+@@ -572,14 +575,17 @@ static void luaK_goiffalse (FuncState *fs, expdesc *e) {
+       pc = NO_JUMP;  /* always false; do nothing */
+       break;
+     }
+-    case VTRUE: {
+-      pc = luaK_jump(fs);  /* always jump */
+-      break;
+-    }
+     case VJMP: {
+       pc = e->u.s.info;
+       break;
+     }
++    case VTRUE: {
++      if (!hasjumps(e)) {
++        pc = luaK_jump(fs);  /* always jump */
++        break;
++      }
++      /* else go through */
++    }
+     default: {
+       pc = jumponcond(fs, e, 1);
+       break;
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch b/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
new file mode 100644
index 0000000..e4a0002
--- /dev/null
+++ b/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
@@ -0,0 +1,45 @@
+From 41f746c9be4330bac1466ab994f147aeef88675d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:13:59 +0100
+Subject: [PATCH 04/11] luaV_settable may invalidate a reference to a table and try to reuse it
+ reported by Mark Feldman on 27 Jun 2009.
+ Example:
+ --
+ grandparent = {}
+ grandparent.__newindex = function(s,_,_) print(s) end
+
+parent = {}
+parent.__newindex = parent
+setmetatable(parent, grandparent)
+
+child = setmetatable({}, parent)
+child.foo = 10      --> (crash on some machines)
+--
+---
+
+diff --git a/src/lvm.c b/src/lvm.c
+index ee3256a..4ac2e71 100644
+--- a/src/lvm.c
++++ b/src/lvm.c
+@@ -133,6 +133,7 @@ void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+ 
+ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+   int loop;
++  TValue temp;
+   for (loop = 0; loop < MAXTAGLOOP; loop++) {
+     const TValue *tm;
+     if (ttistable(t)) {  /* `t' is a table? */
+@@ -152,7 +153,9 @@ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+       callTM(L, tm, t, key, val);
+       return;
+     }
+-    t = tm;  /* else repeat with `tm' */ 
++    /* else repeat with `tm' */
++    setobj(L, &temp, tm);  /* avoid pointing inside table (may rehash) */
++    t = &temp;
+   }
+   luaG_runerror(L, "loop in settable");
+ }
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch b/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
new file mode 100644
index 0000000..53f35a6
--- /dev/null
+++ b/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
@@ -0,0 +1,27 @@
+From a0e82265587327b15635b61517601cb7c74de07e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:18:20 +0100
+Subject: [PATCH 05/11] debug.getfenv does not check whether it has an argument.
+
+reported by Patrick Donnelly on 30 Jul 2009.
+Example:
+--
+debug.getfenv()   -- should raise an error
+--
+---
+
+diff --git a/src/ldblib.c b/src/ldblib.c
+index 67de122..21116ac 100644
+--- a/src/ldblib.c
++++ b/src/ldblib.c
+@@ -45,6 +45,7 @@ static int db_setmetatable (lua_State *L) {
+ 
+ 
+ static int db_getfenv (lua_State *L) {
++  luaL_checkany(L, 1);
+   lua_getfenv(L, 1);
+   return 1;
+ }
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch b/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
new file mode 100644
index 0000000..70190cd
--- /dev/null
+++ b/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
@@ -0,0 +1,28 @@
+From 4a37f37706e3f89d379a827c8da646d34d136c3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:20:15 +0100
+Subject: [PATCH 06/11] GC may get stuck during parsing and avoids proper resizing of the string
+ table, making its lists grow too much and degrading performance.
+ reported by Sean Conner on 10 Nov 2009.
+
+---
+
+diff --git a/src/llex.c b/src/llex.c
+index 6dc3193..92d6575 100644
+--- a/src/llex.c
++++ b/src/llex.c
+@@ -118,8 +118,10 @@ TString *luaX_newstring (LexState *ls, const char *str, size_t l) {
+   lua_State *L = ls->L;
+   TString *ts = luaS_newlstr(L, str, l);
+   TValue *o = luaH_setstr(L, ls->fs->h, ts);  /* entry for `str' */
+-  if (ttisnil(o))
++  if (ttisnil(o)) {
+     setbvalue(o, 1);  /* make sure `str' will not be collected */
++    luaC_checkGC(L);
++  }
+   return ts;
+ }
+ 
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch b/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
new file mode 100644
index 0000000..7d740ca
--- /dev/null
+++ b/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
@@ -0,0 +1,39 @@
+From ce47c22d52dcc4996c03e073ddf94398aa42411e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:21:46 +0100
+Subject: [PATCH 07/11] string.format may get buffer as an argument when there are missing
+ arguments and format string is too long.
+
+reported by Roberto on 12 Apr 2010.
+Example:
+--
+x = string.rep("x", 10000) .. "%d"
+print(string.format(x))    -- gives wrong error message
+--
+---
+
+diff --git a/src/lstrlib.c b/src/lstrlib.c
+index 1b4763d..fe452ce 100644
+--- a/src/lstrlib.c
++++ b/src/lstrlib.c
+@@ -754,6 +754,7 @@ static void addintlen (char *form) {
+ 
+ 
+ static int str_format (lua_State *L) {
++  int top = lua_gettop(L);
+   int arg = 1;
+   size_t sfl;
+   const char *strfrmt = luaL_checklstring(L, arg, &sfl);
+@@ -768,7 +769,8 @@ static int str_format (lua_State *L) {
+     else { /* format item */
+       char form[MAX_FORMAT];  /* to store the format (`%...') */
+       char buff[MAX_ITEM];  /* to store the formatted item */
+-      arg++;
++      if (++arg > top)
++        luaL_argerror(L, arg, "no value");
+       strfrmt = scanformat(L, strfrmt, form);
+       switch (*strfrmt++) {
+         case 'c': {
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch b/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
new file mode 100644
index 0000000..aab63bb
--- /dev/null
+++ b/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
@@ -0,0 +1,32 @@
+From 224bbe29a295851544712b4470f7a48f338cddaa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:23:53 +0100
+Subject: [PATCH 08/11] io.read("*n", "*n") may return garbage if second read fails.
+
+reported by Roberto on 12 Apr 2010.
+Example:
+--
+print(io.read("*n", "*n"))   --<< enter "10   hi"
+--> file (0x884420)	nil
+--
+---
+
+diff --git a/src/liolib.c b/src/liolib.c
+index e79ed1c..8de2547 100644
+--- a/src/liolib.c
++++ b/src/liolib.c
+@@ -276,7 +276,10 @@ static int read_number (lua_State *L, FILE *f) {
+     lua_pushnumber(L, d);
+     return 1;
+   }
+-  else return 0;  /* read fails */
++  else {
++    lua_pushnil(L);  /* "result" to be removed */
++    return 0;  /* read fails */
++  }
+ }
+ 
+ 
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch b/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
new file mode 100644
index 0000000..a3656ad
--- /dev/null
+++ b/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
@@ -0,0 +1,50 @@
+From 14c92823c5877a458ddcfa2c90d0b03ea873baa3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:25:18 +0100
+Subject: [PATCH 09/11] Wrong code generation for some particular boolean expressions.
+
+reported by Thierry Van Elsuwe on 20 Jan 2011.
+Example:
+--
+print((('hi' or true) and true) or true)
+--> hi     (should be true)
+print(((nil and nil) or false) and true)
+--> nil    (should be false)
+--
+---
+
+diff --git a/src/lcode.c b/src/lcode.c
+index 84f286b..c13066e 100644
+--- a/src/lcode.c
++++ b/src/lcode.c
+@@ -549,13 +549,6 @@ void luaK_goiftrue (FuncState *fs, expdesc *e) {
+       pc = e->u.s.info;
+       break;
+     }
+-    case VFALSE: {
+-      if (!hasjumps(e)) {
+-        pc = luaK_jump(fs);  /* always jump */
+-        break;
+-      }
+-      /* else go through */
+-    }
+     default: {
+       pc = jumponcond(fs, e, 0);
+       break;
+@@ -579,13 +572,6 @@ static void luaK_goiffalse (FuncState *fs, expdesc *e) {
+       pc = e->u.s.info;
+       break;
+     }
+-    case VTRUE: {
+-      if (!hasjumps(e)) {
+-        pc = luaK_jump(fs);  /* always jump */
+-        break;
+-      }
+-      /* else go through */
+-    }
+     default: {
+       pc = jumponcond(fs, e, 1);
+       break;
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch b/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
new file mode 100644
index 0000000..d0424f0
--- /dev/null
+++ b/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
@@ -0,0 +1,31 @@
+From 81ff350a91cb1c248e96366eed3049386c5f2cba Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:27:04 +0100
+Subject: [PATCH 10/11] __newindex metamethod may not work if metatable is its own metatable.
+
+reported by Cuero Bugot on 09 Aug 2011.
+Example:
+--
+meta={}
+setmetatable(meta, meta)
+meta.__newindex = function(t, key, value) print("set") end
+o = setmetatable({}, meta)
+o.x = 10    -- should print 'set'
+--
+---
+
+diff --git a/src/lvm.c b/src/lvm.c
+index 4ac2e71..ca7bea0 100644
+--- a/src/lvm.c
++++ b/src/lvm.c
+@@ -142,6 +142,7 @@ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+       if (!ttisnil(oldval) ||  /* result is no nil? */
+           (tm = fasttm(L, h->metatable, TM_NEWINDEX)) == NULL) { /* or no TM? */
+         setobj2t(L, oldval, val);
++        h->flags = 0;
+         luaC_barriert(L, h, val);
+         return;
+       }
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch b/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch
new file mode 100644
index 0000000..7428e3b
--- /dev/null
+++ b/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch
@@ -0,0 +1,26 @@
+From 23449ee61f062a18926f11a216f9906155f259b9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:28:19 +0100
+Subject: [PATCH 11/11] Parser may collect a prototype while building it.
+
+reported by Ingo van Lil on 13 Oct 2011.
+---
+
+diff --git a/src/lparser.c b/src/lparser.c
+index 1e2a9a8..a2721d2 100644
+--- a/src/lparser.c
++++ b/src/lparser.c
+@@ -374,9 +374,9 @@ static void close_func (LexState *ls) {
+   lua_assert(luaG_checkcode(f));
+   lua_assert(fs->bl == NULL);
+   ls->fs = fs->prev;
+-  L->top -= 2;  /* remove table and prototype from the stack */
+   /* last token read was anchored in defunct function; must reanchor it */
+   if (fs) anchor_token(ls);
++  L->top -= 2;  /* remove table and prototype from the stack */
+ }
+ 
+ 
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/series b/patches/lua-5.1.4/series
index 2c51e37..5f3e6b4 100644
--- a/patches/lua-5.1.4/series
+++ b/patches/lua-5.1.4/series
@@ -1,3 +1,14 @@
 remove-Makefile.diff
 autoconfize.diff
 automakize.diff
+#0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
+#0002-It-is-possible-to-create-functions-that-return-too-m.patch
+0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
+0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
+0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
+0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
+0007-string.format-may-get-buffer-as-an-argument-when-the.patch
+0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
+0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
+0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
+0011-Parser-may-collect-a-prototype-while-building-it.patch
-- 
1.7.2.5


[-- Attachment #6: Type: text/plain, Size: 48 bytes --]

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [ptxdist] [PATCH 1/2] lua: Correct implementation for version 5.1.4
  2011-12-07 17:08   ` Benoît BURNICHON
@ 2011-12-08 11:22     ` Michael Olbrich
  2011-12-08 15:13       ` [ptxdist] [PATCH] lua: update to the latest bugfix patch Benoît Burnichon
  2011-12-08 11:36     ` [ptxdist] [PATCH 1/2] lua: Correct implementation for version 5.1.4 Michael Olbrich
  1 sibling, 1 reply; 11+ messages in thread
From: Michael Olbrich @ 2011-12-08 11:22 UTC (permalink / raw)
  To: ptxdist

On Wed, Dec 07, 2011 at 05:08:44PM +0000, Benoît BURNICHON wrote:
> Ok, will then send all my patches as attachments...
> 
> Enclosed are:
>  - 2 patches for lua.

now that I can see what actually changed, the first patch looks ok (not
tested yet).
The new patches are from http://www.lua.org/bugs.html#5.1.4 right? Can you
add the URL for each issue to the patch header
(e.g. http://www.lua.org/bugs.html#5.1.4-5 for issue 5)

Michael


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [ptxdist] [PATCH 1/2] lua: Correct implementation for version 5.1.4
  2011-12-07 17:08   ` Benoît BURNICHON
  2011-12-08 11:22     ` Michael Olbrich
@ 2011-12-08 11:36     ` Michael Olbrich
  1 sibling, 0 replies; 11+ messages in thread
From: Michael Olbrich @ 2011-12-08 11:36 UTC (permalink / raw)
  To: ptxdist

On Wed, Dec 07, 2011 at 05:08:44PM +0000, Benoît BURNICHON wrote:
>  - 1 patch for xmlrpc-c

Not strictly necessary because SF is doing some fancy redirects, but it is
correct, so I'll apply it.
Why do they need a separate directory for each file???

>  - 1 patch for php5

Well, php5.{make,in} could certainly use some cleanup, but your patch
doesn't make it worse. I need to do some test first but it looks ok
otherwise.

Michael

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ptxdist] [PATCH] lua: update to the latest bugfix patch
  2011-12-08 11:22     ` Michael Olbrich
@ 2011-12-08 15:13       ` Benoît Burnichon
  2011-12-08 15:46         ` Michael Olbrich
  0 siblings, 1 reply; 11+ messages in thread
From: Benoît Burnichon @ 2011-12-08 15:13 UTC (permalink / raw)
  To: ptxdist

---
 ...ly-crafted-precompiled-code-can-crash-Lua.patch |    9 +++
 ...ble-to-create-functions-that-return-too-m.patch |   10 +++
 ...generation-for-some-particular-boolean-ex.patch |   69 ++++++++++++++++++++
 ...le-may-invalidate-a-reference-to-a-table-.patch |   48 ++++++++++++++
 ...nv-does-not-check-whether-it-has-an-argum.patch |   29 ++++++++
 ...stuck-during-parsing-and-avoids-proper-re.patch |   31 +++++++++
 ...at-may-get-buffer-as-an-argument-when-the.patch |   41 ++++++++++++
 ...n-may-return-garbage-if-second-read-fails.patch |   34 ++++++++++
 ...generation-for-some-particular-boolean-ex.patch |   52 +++++++++++++++
 ...metamethod-may-not-work-if-metatable-is-i.patch |   33 +++++++++
 ...may-collect-a-prototype-while-building-it.patch |   28 ++++++++
 patches/lua-5.1.4/series                           |   11 +++
 12 files changed, 395 insertions(+), 0 deletions(-)
 create mode 100644 patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
 create mode 100644 patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
 create mode 100644 patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
 create mode 100644 patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
 create mode 100644 patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
 create mode 100644 patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
 create mode 100644 patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
 create mode 100644 patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
 create mode 100644 patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
 create mode 100644 patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
 create mode 100644 patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch

diff --git a/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch b/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
new file mode 100644
index 0000000..37b9766
--- /dev/null
+++ b/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
@@ -0,0 +1,9 @@
+From 293f82d33cd67b7f48e078788af6a4b2887c16bf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:05:35 +0100
+Subject: [PATCH 01/11] Maliciously crafted precompiled code can crash Lua
+
+Comes from http://www.lua.org/bugs.html#5.1.4-1
+
+---
+
diff --git a/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch b/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
new file mode 100644
index 0000000..e5b614b
--- /dev/null
+++ b/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
@@ -0,0 +1,10 @@
+From e5973b1ca3ad83d500f0c85abb78b2a0bf5fbdc5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:07:18 +0100
+Subject: [PATCH 02/11] It is possible to create functions that return too many arguments and
+ overflow the stack of C functions.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-2
+
+---
+
diff --git a/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch b/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
new file mode 100644
index 0000000..43d4c6c
--- /dev/null
+++ b/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
@@ -0,0 +1,69 @@
+From b40f5fc4341153fc53fa2d0e839223944b022e6e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:10:56 +0100
+Subject: [PATCH 03/11] Wrong code generation for some particular boolean expressions. (see also
+ 9)
+
+Comes from http://www.lua.org/bugs.html#5.1.4-3
+
+ reported by Brian Kelley on 15 Apr 2009.
+ Example:
+ --
+ print(((1 or false) and true) or false)   --> 1, but should be 'true'
+ --
+
+Patch: (partial solution; see also 9)
+---
+
+diff --git a/src/lcode.c b/src/lcode.c
+index cff626b..84f286b 100644
+--- a/src/lcode.c
++++ b/src/lcode.c
+@@ -544,15 +544,18 @@ void luaK_goiftrue (FuncState *fs, expdesc *e) {
+       pc = NO_JUMP;  /* always true; do nothing */
+       break;
+     }
+-    case VFALSE: {
+-      pc = luaK_jump(fs);  /* always jump */
+-      break;
+-    }
+     case VJMP: {
+       invertjump(fs, e);
+       pc = e->u.s.info;
+       break;
+     }
++    case VFALSE: {
++      if (!hasjumps(e)) {
++        pc = luaK_jump(fs);  /* always jump */
++        break;
++      }
++      /* else go through */
++    }
+     default: {
+       pc = jumponcond(fs, e, 0);
+       break;
+@@ -572,14 +575,17 @@ static void luaK_goiffalse (FuncState *fs, expdesc *e) {
+       pc = NO_JUMP;  /* always false; do nothing */
+       break;
+     }
+-    case VTRUE: {
+-      pc = luaK_jump(fs);  /* always jump */
+-      break;
+-    }
+     case VJMP: {
+       pc = e->u.s.info;
+       break;
+     }
++    case VTRUE: {
++      if (!hasjumps(e)) {
++        pc = luaK_jump(fs);  /* always jump */
++        break;
++      }
++      /* else go through */
++    }
+     default: {
+       pc = jumponcond(fs, e, 1);
+       break;
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch b/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
new file mode 100644
index 0000000..d1ae864
--- /dev/null
+++ b/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
@@ -0,0 +1,48 @@
+From 41f746c9be4330bac1466ab994f147aeef88675d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:13:59 +0100
+Subject: [PATCH 04/11] luaV_settable may invalidate a reference to a table and try to reuse it
+
+Comes from http://www.lua.org/bugs.html#5.1.4-4
+
+ reported by Mark Feldman on 27 Jun 2009.
+ Example:
+ --
+ grandparent = {}
+ grandparent.__newindex = function(s,_,_) print(s) end
+
+parent = {}
+parent.__newindex = parent
+setmetatable(parent, grandparent)
+
+child = setmetatable({}, parent)
+child.foo = 10      --> (crash on some machines)
+--
+---
+
+diff --git a/src/lvm.c b/src/lvm.c
+index ee3256a..4ac2e71 100644
+--- a/src/lvm.c
++++ b/src/lvm.c
+@@ -133,6 +133,7 @@ void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+ 
+ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+   int loop;
++  TValue temp;
+   for (loop = 0; loop < MAXTAGLOOP; loop++) {
+     const TValue *tm;
+     if (ttistable(t)) {  /* `t' is a table? */
+@@ -152,7 +153,9 @@ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+       callTM(L, tm, t, key, val);
+       return;
+     }
+-    t = tm;  /* else repeat with `tm' */ 
++    /* else repeat with `tm' */
++    setobj(L, &temp, tm);  /* avoid pointing inside table (may rehash) */
++    t = &temp;
+   }
+   luaG_runerror(L, "loop in settable");
+ }
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch b/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
new file mode 100644
index 0000000..51784f7
--- /dev/null
+++ b/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
@@ -0,0 +1,29 @@
+From a0e82265587327b15635b61517601cb7c74de07e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:18:20 +0100
+Subject: [PATCH 05/11] debug.getfenv does not check whether it has an argument.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-5
+
+reported by Patrick Donnelly on 30 Jul 2009.
+Example:
+--
+debug.getfenv()   -- should raise an error
+--
+---
+
+diff --git a/src/ldblib.c b/src/ldblib.c
+index 67de122..21116ac 100644
+--- a/src/ldblib.c
++++ b/src/ldblib.c
+@@ -45,6 +45,7 @@ static int db_setmetatable (lua_State *L) {
+ 
+ 
+ static int db_getfenv (lua_State *L) {
++  luaL_checkany(L, 1);
+   lua_getfenv(L, 1);
+   return 1;
+ }
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch b/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
new file mode 100644
index 0000000..4c890f8
--- /dev/null
+++ b/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
@@ -0,0 +1,31 @@
+From 4a37f37706e3f89d379a827c8da646d34d136c3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:20:15 +0100
+Subject: [PATCH 06/11] GC may get stuck during parsing and avoids proper resizing of the string
+ table, making its lists grow too much and degrading performance.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-6
+
+ reported by Sean Conner on 10 Nov 2009.
+
+---
+
+diff --git a/src/llex.c b/src/llex.c
+index 6dc3193..92d6575 100644
+--- a/src/llex.c
++++ b/src/llex.c
+@@ -118,8 +118,10 @@ TString *luaX_newstring (LexState *ls, const char *str, size_t l) {
+   lua_State *L = ls->L;
+   TString *ts = luaS_newlstr(L, str, l);
+   TValue *o = luaH_setstr(L, ls->fs->h, ts);  /* entry for `str' */
+-  if (ttisnil(o))
++  if (ttisnil(o)) {
+     setbvalue(o, 1);  /* make sure `str' will not be collected */
++    luaC_checkGC(L);
++  }
+   return ts;
+ }
+ 
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch b/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
new file mode 100644
index 0000000..2e3d062
--- /dev/null
+++ b/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
@@ -0,0 +1,41 @@
+From ce47c22d52dcc4996c03e073ddf94398aa42411e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:21:46 +0100
+Subject: [PATCH 07/11] string.format may get buffer as an argument when there are missing
+ arguments and format string is too long.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-7
+
+reported by Roberto on 12 Apr 2010.
+Example:
+--
+x = string.rep("x", 10000) .. "%d"
+print(string.format(x))    -- gives wrong error message
+--
+---
+
+diff --git a/src/lstrlib.c b/src/lstrlib.c
+index 1b4763d..fe452ce 100644
+--- a/src/lstrlib.c
++++ b/src/lstrlib.c
+@@ -754,6 +754,7 @@ static void addintlen (char *form) {
+ 
+ 
+ static int str_format (lua_State *L) {
++  int top = lua_gettop(L);
+   int arg = 1;
+   size_t sfl;
+   const char *strfrmt = luaL_checklstring(L, arg, &sfl);
+@@ -768,7 +769,8 @@ static int str_format (lua_State *L) {
+     else { /* format item */
+       char form[MAX_FORMAT];  /* to store the format (`%...') */
+       char buff[MAX_ITEM];  /* to store the formatted item */
+-      arg++;
++      if (++arg > top)
++        luaL_argerror(L, arg, "no value");
+       strfrmt = scanformat(L, strfrmt, form);
+       switch (*strfrmt++) {
+         case 'c': {
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch b/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
new file mode 100644
index 0000000..960b0c2
--- /dev/null
+++ b/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
@@ -0,0 +1,34 @@
+From 224bbe29a295851544712b4470f7a48f338cddaa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:23:53 +0100
+Subject: [PATCH 08/11] io.read("*n", "*n") may return garbage if second read fails.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-8
+
+reported by Roberto on 12 Apr 2010.
+Example:
+--
+print(io.read("*n", "*n"))   --<< enter "10   hi"
+--> file (0x884420)	nil
+--
+---
+
+diff --git a/src/liolib.c b/src/liolib.c
+index e79ed1c..8de2547 100644
+--- a/src/liolib.c
++++ b/src/liolib.c
+@@ -276,7 +276,10 @@ static int read_number (lua_State *L, FILE *f) {
+     lua_pushnumber(L, d);
+     return 1;
+   }
+-  else return 0;  /* read fails */
++  else {
++    lua_pushnil(L);  /* "result" to be removed */
++    return 0;  /* read fails */
++  }
+ }
+ 
+ 
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch b/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
new file mode 100644
index 0000000..70ea24f
--- /dev/null
+++ b/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
@@ -0,0 +1,52 @@
+From 14c92823c5877a458ddcfa2c90d0b03ea873baa3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:25:18 +0100
+Subject: [PATCH 09/11] Wrong code generation for some particular boolean expressions.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-9
+
+reported by Thierry Van Elsuwe on 20 Jan 2011.
+Example:
+--
+print((('hi' or true) and true) or true)
+--> hi     (should be true)
+print(((nil and nil) or false) and true)
+--> nil    (should be false)
+--
+---
+
+diff --git a/src/lcode.c b/src/lcode.c
+index 84f286b..c13066e 100644
+--- a/src/lcode.c
++++ b/src/lcode.c
+@@ -549,13 +549,6 @@ void luaK_goiftrue (FuncState *fs, expdesc *e) {
+       pc = e->u.s.info;
+       break;
+     }
+-    case VFALSE: {
+-      if (!hasjumps(e)) {
+-        pc = luaK_jump(fs);  /* always jump */
+-        break;
+-      }
+-      /* else go through */
+-    }
+     default: {
+       pc = jumponcond(fs, e, 0);
+       break;
+@@ -579,13 +572,6 @@ static void luaK_goiffalse (FuncState *fs, expdesc *e) {
+       pc = e->u.s.info;
+       break;
+     }
+-    case VTRUE: {
+-      if (!hasjumps(e)) {
+-        pc = luaK_jump(fs);  /* always jump */
+-        break;
+-      }
+-      /* else go through */
+-    }
+     default: {
+       pc = jumponcond(fs, e, 1);
+       break;
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch b/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
new file mode 100644
index 0000000..3d75d48
--- /dev/null
+++ b/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
@@ -0,0 +1,33 @@
+From 81ff350a91cb1c248e96366eed3049386c5f2cba Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:27:04 +0100
+Subject: [PATCH 10/11] __newindex metamethod may not work if metatable is its own metatable.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-10
+
+reported by Cuero Bugot on 09 Aug 2011.
+Example:
+--
+meta={}
+setmetatable(meta, meta)
+meta.__newindex = function(t, key, value) print("set") end
+o = setmetatable({}, meta)
+o.x = 10    -- should print 'set'
+--
+---
+
+diff --git a/src/lvm.c b/src/lvm.c
+index 4ac2e71..ca7bea0 100644
+--- a/src/lvm.c
++++ b/src/lvm.c
+@@ -142,6 +142,7 @@ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+       if (!ttisnil(oldval) ||  /* result is no nil? */
+           (tm = fasttm(L, h->metatable, TM_NEWINDEX)) == NULL) { /* or no TM? */
+         setobj2t(L, oldval, val);
++        h->flags = 0;
+         luaC_barriert(L, h, val);
+         return;
+       }
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch b/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch
new file mode 100644
index 0000000..fdd098f
--- /dev/null
+++ b/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch
@@ -0,0 +1,28 @@
+From 23449ee61f062a18926f11a216f9906155f259b9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:28:19 +0100
+Subject: [PATCH 11/11] Parser may collect a prototype while building it.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-11
+
+reported by Ingo van Lil on 13 Oct 2011.
+---
+
+diff --git a/src/lparser.c b/src/lparser.c
+index 1e2a9a8..a2721d2 100644
+--- a/src/lparser.c
++++ b/src/lparser.c
+@@ -374,9 +374,9 @@ static void close_func (LexState *ls) {
+   lua_assert(luaG_checkcode(f));
+   lua_assert(fs->bl == NULL);
+   ls->fs = fs->prev;
+-  L->top -= 2;  /* remove table and prototype from the stack */
+   /* last token read was anchored in defunct function; must reanchor it */
+   if (fs) anchor_token(ls);
++  L->top -= 2;  /* remove table and prototype from the stack */
+ }
+ 
+ 
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/series b/patches/lua-5.1.4/series
index 2c51e37..5f3e6b4 100644
--- a/patches/lua-5.1.4/series
+++ b/patches/lua-5.1.4/series
@@ -1,3 +1,14 @@
 remove-Makefile.diff
 autoconfize.diff
 automakize.diff
+#0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
+#0002-It-is-possible-to-create-functions-that-return-too-m.patch
+0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
+0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
+0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
+0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
+0007-string.format-may-get-buffer-as-an-argument-when-the.patch
+0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
+0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
+0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
+0011-Parser-may-collect-a-prototype-while-building-it.patch
-- 
1.7.2.5


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [ptxdist] [PATCH] lua: update to the latest bugfix patch
  2011-12-08 15:13       ` [ptxdist] [PATCH] lua: update to the latest bugfix patch Benoît Burnichon
@ 2011-12-08 15:46         ` Michael Olbrich
  2011-12-08 16:26           ` [ptxdist] [PATCH 1/4] xmlrpc-c: fix location url Benoît Burnichon
                             ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Michael Olbrich @ 2011-12-08 15:46 UTC (permalink / raw)
  To: ptxdist

Hi,

I just noticed, all you're patches (for lua and ptxdist) are missing your
"Signed-off-by". Please add and resend.

Michael

On Thu, Dec 08, 2011 at 04:13:26PM +0100, Benoît Burnichon wrote:
> ---
>  ...ly-crafted-precompiled-code-can-crash-Lua.patch |    9 +++
>  ...ble-to-create-functions-that-return-too-m.patch |   10 +++
>  ...generation-for-some-particular-boolean-ex.patch |   69 ++++++++++++++++++++
>  ...le-may-invalidate-a-reference-to-a-table-.patch |   48 ++++++++++++++
>  ...nv-does-not-check-whether-it-has-an-argum.patch |   29 ++++++++
>  ...stuck-during-parsing-and-avoids-proper-re.patch |   31 +++++++++
>  ...at-may-get-buffer-as-an-argument-when-the.patch |   41 ++++++++++++
>  ...n-may-return-garbage-if-second-read-fails.patch |   34 ++++++++++
>  ...generation-for-some-particular-boolean-ex.patch |   52 +++++++++++++++
>  ...metamethod-may-not-work-if-metatable-is-i.patch |   33 +++++++++
>  ...may-collect-a-prototype-while-building-it.patch |   28 ++++++++
>  patches/lua-5.1.4/series                           |   11 +++
>  12 files changed, 395 insertions(+), 0 deletions(-)
>  create mode 100644 patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
>  create mode 100644 patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
>  create mode 100644 patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
>  create mode 100644 patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
>  create mode 100644 patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
>  create mode 100644 patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
>  create mode 100644 patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
>  create mode 100644 patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
>  create mode 100644 patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
>  create mode 100644 patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
>  create mode 100644 patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch
> 
> diff --git a/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch b/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
> new file mode 100644
> index 0000000..37b9766
> --- /dev/null
> +++ b/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
> @@ -0,0 +1,9 @@
> +From 293f82d33cd67b7f48e078788af6a4b2887c16bf Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:05:35 +0100
> +Subject: [PATCH 01/11] Maliciously crafted precompiled code can crash Lua
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-1
> +
> +---
> +
> diff --git a/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch b/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
> new file mode 100644
> index 0000000..e5b614b
> --- /dev/null
> +++ b/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
> @@ -0,0 +1,10 @@
> +From e5973b1ca3ad83d500f0c85abb78b2a0bf5fbdc5 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:07:18 +0100
> +Subject: [PATCH 02/11] It is possible to create functions that return too many arguments and
> + overflow the stack of C functions.
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-2
> +
> +---
> +
> diff --git a/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch b/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
> new file mode 100644
> index 0000000..43d4c6c
> --- /dev/null
> +++ b/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
> @@ -0,0 +1,69 @@
> +From b40f5fc4341153fc53fa2d0e839223944b022e6e Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:10:56 +0100
> +Subject: [PATCH 03/11] Wrong code generation for some particular boolean expressions. (see also
> + 9)
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-3
> +
> + reported by Brian Kelley on 15 Apr 2009.
> + Example:
> + --
> + print(((1 or false) and true) or false)   --> 1, but should be 'true'
> + --
> +
> +Patch: (partial solution; see also 9)
> +---
> +
> +diff --git a/src/lcode.c b/src/lcode.c
> +index cff626b..84f286b 100644
> +--- a/src/lcode.c
> ++++ b/src/lcode.c
> +@@ -544,15 +544,18 @@ void luaK_goiftrue (FuncState *fs, expdesc *e) {
> +       pc = NO_JUMP;  /* always true; do nothing */
> +       break;
> +     }
> +-    case VFALSE: {
> +-      pc = luaK_jump(fs);  /* always jump */
> +-      break;
> +-    }
> +     case VJMP: {
> +       invertjump(fs, e);
> +       pc = e->u.s.info;
> +       break;
> +     }
> ++    case VFALSE: {
> ++      if (!hasjumps(e)) {
> ++        pc = luaK_jump(fs);  /* always jump */
> ++        break;
> ++      }
> ++      /* else go through */
> ++    }
> +     default: {
> +       pc = jumponcond(fs, e, 0);
> +       break;
> +@@ -572,14 +575,17 @@ static void luaK_goiffalse (FuncState *fs, expdesc *e) {
> +       pc = NO_JUMP;  /* always false; do nothing */
> +       break;
> +     }
> +-    case VTRUE: {
> +-      pc = luaK_jump(fs);  /* always jump */
> +-      break;
> +-    }
> +     case VJMP: {
> +       pc = e->u.s.info;
> +       break;
> +     }
> ++    case VTRUE: {
> ++      if (!hasjumps(e)) {
> ++        pc = luaK_jump(fs);  /* always jump */
> ++        break;
> ++      }
> ++      /* else go through */
> ++    }
> +     default: {
> +       pc = jumponcond(fs, e, 1);
> +       break;
> +-- 
> +1.7.2.5
> +
> diff --git a/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch b/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
> new file mode 100644
> index 0000000..d1ae864
> --- /dev/null
> +++ b/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
> @@ -0,0 +1,48 @@
> +From 41f746c9be4330bac1466ab994f147aeef88675d Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:13:59 +0100
> +Subject: [PATCH 04/11] luaV_settable may invalidate a reference to a table and try to reuse it
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-4
> +
> + reported by Mark Feldman on 27 Jun 2009.
> + Example:
> + --
> + grandparent = {}
> + grandparent.__newindex = function(s,_,_) print(s) end
> +
> +parent = {}
> +parent.__newindex = parent
> +setmetatable(parent, grandparent)
> +
> +child = setmetatable({}, parent)
> +child.foo = 10      --> (crash on some machines)
> +--
> +---
> +
> +diff --git a/src/lvm.c b/src/lvm.c
> +index ee3256a..4ac2e71 100644
> +--- a/src/lvm.c
> ++++ b/src/lvm.c
> +@@ -133,6 +133,7 @@ void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId val) {
> + 
> + void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
> +   int loop;
> ++  TValue temp;
> +   for (loop = 0; loop < MAXTAGLOOP; loop++) {
> +     const TValue *tm;
> +     if (ttistable(t)) {  /* `t' is a table? */
> +@@ -152,7 +153,9 @@ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
> +       callTM(L, tm, t, key, val);
> +       return;
> +     }
> +-    t = tm;  /* else repeat with `tm' */ 
> ++    /* else repeat with `tm' */
> ++    setobj(L, &temp, tm);  /* avoid pointing inside table (may rehash) */
> ++    t = &temp;
> +   }
> +   luaG_runerror(L, "loop in settable");
> + }
> +-- 
> +1.7.2.5
> +
> diff --git a/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch b/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
> new file mode 100644
> index 0000000..51784f7
> --- /dev/null
> +++ b/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
> @@ -0,0 +1,29 @@
> +From a0e82265587327b15635b61517601cb7c74de07e Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:18:20 +0100
> +Subject: [PATCH 05/11] debug.getfenv does not check whether it has an argument.
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-5
> +
> +reported by Patrick Donnelly on 30 Jul 2009.
> +Example:
> +--
> +debug.getfenv()   -- should raise an error
> +--
> +---
> +
> +diff --git a/src/ldblib.c b/src/ldblib.c
> +index 67de122..21116ac 100644
> +--- a/src/ldblib.c
> ++++ b/src/ldblib.c
> +@@ -45,6 +45,7 @@ static int db_setmetatable (lua_State *L) {
> + 
> + 
> + static int db_getfenv (lua_State *L) {
> ++  luaL_checkany(L, 1);
> +   lua_getfenv(L, 1);
> +   return 1;
> + }
> +-- 
> +1.7.2.5
> +
> diff --git a/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch b/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
> new file mode 100644
> index 0000000..4c890f8
> --- /dev/null
> +++ b/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
> @@ -0,0 +1,31 @@
> +From 4a37f37706e3f89d379a827c8da646d34d136c3c Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:20:15 +0100
> +Subject: [PATCH 06/11] GC may get stuck during parsing and avoids proper resizing of the string
> + table, making its lists grow too much and degrading performance.
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-6
> +
> + reported by Sean Conner on 10 Nov 2009.
> +
> +---
> +
> +diff --git a/src/llex.c b/src/llex.c
> +index 6dc3193..92d6575 100644
> +--- a/src/llex.c
> ++++ b/src/llex.c
> +@@ -118,8 +118,10 @@ TString *luaX_newstring (LexState *ls, const char *str, size_t l) {
> +   lua_State *L = ls->L;
> +   TString *ts = luaS_newlstr(L, str, l);
> +   TValue *o = luaH_setstr(L, ls->fs->h, ts);  /* entry for `str' */
> +-  if (ttisnil(o))
> ++  if (ttisnil(o)) {
> +     setbvalue(o, 1);  /* make sure `str' will not be collected */
> ++    luaC_checkGC(L);
> ++  }
> +   return ts;
> + }
> + 
> +-- 
> +1.7.2.5
> +
> diff --git a/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch b/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
> new file mode 100644
> index 0000000..2e3d062
> --- /dev/null
> +++ b/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
> @@ -0,0 +1,41 @@
> +From ce47c22d52dcc4996c03e073ddf94398aa42411e Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:21:46 +0100
> +Subject: [PATCH 07/11] string.format may get buffer as an argument when there are missing
> + arguments and format string is too long.
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-7
> +
> +reported by Roberto on 12 Apr 2010.
> +Example:
> +--
> +x = string.rep("x", 10000) .. "%d"
> +print(string.format(x))    -- gives wrong error message
> +--
> +---
> +
> +diff --git a/src/lstrlib.c b/src/lstrlib.c
> +index 1b4763d..fe452ce 100644
> +--- a/src/lstrlib.c
> ++++ b/src/lstrlib.c
> +@@ -754,6 +754,7 @@ static void addintlen (char *form) {
> + 
> + 
> + static int str_format (lua_State *L) {
> ++  int top = lua_gettop(L);
> +   int arg = 1;
> +   size_t sfl;
> +   const char *strfrmt = luaL_checklstring(L, arg, &sfl);
> +@@ -768,7 +769,8 @@ static int str_format (lua_State *L) {
> +     else { /* format item */
> +       char form[MAX_FORMAT];  /* to store the format (`%...') */
> +       char buff[MAX_ITEM];  /* to store the formatted item */
> +-      arg++;
> ++      if (++arg > top)
> ++        luaL_argerror(L, arg, "no value");
> +       strfrmt = scanformat(L, strfrmt, form);
> +       switch (*strfrmt++) {
> +         case 'c': {
> +-- 
> +1.7.2.5
> +
> diff --git a/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch b/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
> new file mode 100644
> index 0000000..960b0c2
> --- /dev/null
> +++ b/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
> @@ -0,0 +1,34 @@
> +From 224bbe29a295851544712b4470f7a48f338cddaa Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:23:53 +0100
> +Subject: [PATCH 08/11] io.read("*n", "*n") may return garbage if second read fails.
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-8
> +
> +reported by Roberto on 12 Apr 2010.
> +Example:
> +--
> +print(io.read("*n", "*n"))   --<< enter "10   hi"
> +--> file (0x884420)	nil
> +--
> +---
> +
> +diff --git a/src/liolib.c b/src/liolib.c
> +index e79ed1c..8de2547 100644
> +--- a/src/liolib.c
> ++++ b/src/liolib.c
> +@@ -276,7 +276,10 @@ static int read_number (lua_State *L, FILE *f) {
> +     lua_pushnumber(L, d);
> +     return 1;
> +   }
> +-  else return 0;  /* read fails */
> ++  else {
> ++    lua_pushnil(L);  /* "result" to be removed */
> ++    return 0;  /* read fails */
> ++  }
> + }
> + 
> + 
> +-- 
> +1.7.2.5
> +
> diff --git a/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch b/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
> new file mode 100644
> index 0000000..70ea24f
> --- /dev/null
> +++ b/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
> @@ -0,0 +1,52 @@
> +From 14c92823c5877a458ddcfa2c90d0b03ea873baa3 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:25:18 +0100
> +Subject: [PATCH 09/11] Wrong code generation for some particular boolean expressions.
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-9
> +
> +reported by Thierry Van Elsuwe on 20 Jan 2011.
> +Example:
> +--
> +print((('hi' or true) and true) or true)
> +--> hi     (should be true)
> +print(((nil and nil) or false) and true)
> +--> nil    (should be false)
> +--
> +---
> +
> +diff --git a/src/lcode.c b/src/lcode.c
> +index 84f286b..c13066e 100644
> +--- a/src/lcode.c
> ++++ b/src/lcode.c
> +@@ -549,13 +549,6 @@ void luaK_goiftrue (FuncState *fs, expdesc *e) {
> +       pc = e->u.s.info;
> +       break;
> +     }
> +-    case VFALSE: {
> +-      if (!hasjumps(e)) {
> +-        pc = luaK_jump(fs);  /* always jump */
> +-        break;
> +-      }
> +-      /* else go through */
> +-    }
> +     default: {
> +       pc = jumponcond(fs, e, 0);
> +       break;
> +@@ -579,13 +572,6 @@ static void luaK_goiffalse (FuncState *fs, expdesc *e) {
> +       pc = e->u.s.info;
> +       break;
> +     }
> +-    case VTRUE: {
> +-      if (!hasjumps(e)) {
> +-        pc = luaK_jump(fs);  /* always jump */
> +-        break;
> +-      }
> +-      /* else go through */
> +-    }
> +     default: {
> +       pc = jumponcond(fs, e, 1);
> +       break;
> +-- 
> +1.7.2.5
> +
> diff --git a/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch b/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
> new file mode 100644
> index 0000000..3d75d48
> --- /dev/null
> +++ b/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
> @@ -0,0 +1,33 @@
> +From 81ff350a91cb1c248e96366eed3049386c5f2cba Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:27:04 +0100
> +Subject: [PATCH 10/11] __newindex metamethod may not work if metatable is its own metatable.
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-10
> +
> +reported by Cuero Bugot on 09 Aug 2011.
> +Example:
> +--
> +meta={}
> +setmetatable(meta, meta)
> +meta.__newindex = function(t, key, value) print("set") end
> +o = setmetatable({}, meta)
> +o.x = 10    -- should print 'set'
> +--
> +---
> +
> +diff --git a/src/lvm.c b/src/lvm.c
> +index 4ac2e71..ca7bea0 100644
> +--- a/src/lvm.c
> ++++ b/src/lvm.c
> +@@ -142,6 +142,7 @@ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
> +       if (!ttisnil(oldval) ||  /* result is no nil? */
> +           (tm = fasttm(L, h->metatable, TM_NEWINDEX)) == NULL) { /* or no TM? */
> +         setobj2t(L, oldval, val);
> ++        h->flags = 0;
> +         luaC_barriert(L, h, val);
> +         return;
> +       }
> +-- 
> +1.7.2.5
> +
> diff --git a/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch b/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch
> new file mode 100644
> index 0000000..fdd098f
> --- /dev/null
> +++ b/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch
> @@ -0,0 +1,28 @@
> +From 23449ee61f062a18926f11a216f9906155f259b9 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
> +Date: Tue, 6 Dec 2011 14:28:19 +0100
> +Subject: [PATCH 11/11] Parser may collect a prototype while building it.
> +
> +Comes from http://www.lua.org/bugs.html#5.1.4-11
> +
> +reported by Ingo van Lil on 13 Oct 2011.
> +---
> +
> +diff --git a/src/lparser.c b/src/lparser.c
> +index 1e2a9a8..a2721d2 100644
> +--- a/src/lparser.c
> ++++ b/src/lparser.c
> +@@ -374,9 +374,9 @@ static void close_func (LexState *ls) {
> +   lua_assert(luaG_checkcode(f));
> +   lua_assert(fs->bl == NULL);
> +   ls->fs = fs->prev;
> +-  L->top -= 2;  /* remove table and prototype from the stack */
> +   /* last token read was anchored in defunct function; must reanchor it */
> +   if (fs) anchor_token(ls);
> ++  L->top -= 2;  /* remove table and prototype from the stack */
> + }
> + 
> + 
> +-- 
> +1.7.2.5
> +
> diff --git a/patches/lua-5.1.4/series b/patches/lua-5.1.4/series
> index 2c51e37..5f3e6b4 100644
> --- a/patches/lua-5.1.4/series
> +++ b/patches/lua-5.1.4/series
> @@ -1,3 +1,14 @@
>  remove-Makefile.diff
>  autoconfize.diff
>  automakize.diff
> +#0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
> +#0002-It-is-possible-to-create-functions-that-return-too-m.patch
> +0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
> +0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
> +0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
> +0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
> +0007-string.format-may-get-buffer-as-an-argument-when-the.patch
> +0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
> +0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
> +0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
> +0011-Parser-may-collect-a-prototype-while-building-it.patch
> -- 
> 1.7.2.5
> 
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ptxdist] [PATCH 1/4] xmlrpc-c: fix location url
  2011-12-08 15:46         ` Michael Olbrich
@ 2011-12-08 16:26           ` Benoît Burnichon
  2011-12-08 16:26           ` [ptxdist] [PATCH 2/4] php5: add some functionalities (curl, xmlrpc, zlib) Benoît Burnichon
                             ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: Benoît Burnichon @ 2011-12-08 16:26 UTC (permalink / raw)
  To: ptxdist

Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
---
 rules/xmlrpc-c.make |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/rules/xmlrpc-c.make b/rules/xmlrpc-c.make
index bbda7b0..7e36b7b 100644
--- a/rules/xmlrpc-c.make
+++ b/rules/xmlrpc-c.make
@@ -20,7 +20,7 @@ XMLRPC_C_VERSION	:= 1.06.41
 XMLRPC_C_MD5		:= 02c6b89b8ff911341b6b6d4a6c621ea9
 XMLRPC_C		:= xmlrpc-c-$(XMLRPC_C_VERSION)
 XMLRPC_C_SUFFIX		:= tgz
-XMLRPC_C_URL		:= $(PTXCONF_SETUP_SFMIRROR)/xmlrpc-c/Xmlrpc-c%20Super%20Stable/1.06.38/$(XMLRPC_C).$(XMLRPC_C_SUFFIX)
+XMLRPC_C_URL		:= $(PTXCONF_SETUP_SFMIRROR)/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(XMLRPC_C_VERSION)/$(XMLRPC_C).$(XMLRPC_C_SUFFIX)
 XMLRPC_C_SOURCE		:= $(SRCDIR)/$(XMLRPC_C).$(XMLRPC_C_SUFFIX)
 XMLRPC_C_DIR		:= $(BUILDDIR)/$(XMLRPC_C)
 XMLRPC_C_LICENSE	:= unknown
-- 
1.7.2.5


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ptxdist] [PATCH 2/4] php5: add some functionalities (curl, xmlrpc, zlib)
  2011-12-08 15:46         ` Michael Olbrich
  2011-12-08 16:26           ` [ptxdist] [PATCH 1/4] xmlrpc-c: fix location url Benoît Burnichon
@ 2011-12-08 16:26           ` Benoît Burnichon
  2011-12-08 16:26           ` [ptxdist] [PATCH 3/4] lua: Correct implementation for version 5.1.4 Benoît Burnichon
  2011-12-08 16:26           ` [ptxdist] [PATCH 4/4] lua: update to the latest bugfix patch Benoît Burnichon
  3 siblings, 0 replies; 11+ messages in thread
From: Benoît Burnichon @ 2011-12-08 16:26 UTC (permalink / raw)
  To: ptxdist

Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
---
 rules/php5.in   |   33 +++++++++++++++++++++++++++------
 rules/php5.make |   22 +++++++++++++++++++++-
 2 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/rules/php5.in b/rules/php5.in
index 8f77492..4b8a301 100644
--- a/rules/php5.in
+++ b/rules/php5.in
@@ -5,10 +5,13 @@ menuconfig PHP5
 	tristate
 	prompt "php5                          "
 	select APACHE2	if PHP5_SAPI_APXS2
+	select LIBCURL  if PHP5_EXT_CURL
 	select LIBXML2	if PHP5_XML_LIBXML2
 	select LIBXSLT	if PHP5_XML_LIBXML2_XSLT
 	select MYSQL	if PHP5_EXT_MYSQL
 	select PHP5_XML	if PHP5_EXT_SOAP
+	select XMLRPC_C if PHP5_XML_LIBXML2_XMLRPC
+	select ZLIB     if PHP5_EXT_ZLIB
 
 if PHP5
 
@@ -213,6 +216,16 @@ config PHP5_XML_LIBXML2_SIMPLEXML
 	help
 	  simple xml support
 
+#  --with-xmlrpc[=DIR]     Include XMLRPC-EPI support
+#  --with-libexpat-dir=DIR   XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)
+#  --with-iconv-dir=DIR      XMLRPC-EPI: iconv dir for XMLRPC-EPI
+
+config PHP5_XML_LIBXML2_XMLRPC
+	bool
+	prompt "xmlrpc support"
+	help
+	  xmlrpc support
+
 endif	# PHP5_XML_LIBXML2
 
 endif	# PHP5_XML
@@ -272,12 +285,16 @@ menu "Extensions                  "
 #                          support. Use --with-pcre-regex=DIR to specify DIR
 #                          where PCRE's include and library files are located,
 #                          if not using bundled library.
-#  --with-zlib[=DIR]       Include ZLIB support (requires zlib >= 1.0.9)
-#  --with-zlib-dir=<DIR>   Define the location of zlib install directory
 #  --enable-bcmath         Enable bc style precision math functions
 #  --with-bz2[=DIR]        Include BZip2 support
 #  --enable-calendar       Enable support for calendar conversion
 #  --disable-ctype         Disable ctype functions
+config PHP5_EXT_CURL
+	bool
+	prompt "curl"
+	help
+	  Enable CURL support for PHP.
+
 #  --with-curl[=DIR]       Include CURL support
 #  --with-curlwrappers     Use CURL for url streams
 #  --enable-dba            Build DBA with builtin modules. To build shared DBA
@@ -473,6 +490,14 @@ config PHP5_EXT_SQLITE3
 	help
 	  Enable sqlite3 support for PHP.
 
+#  --with-zlib[=DIR]       Include ZLIB support (requires zlib >= 1.0.9)
+#  --with-zlib-dir=<DIR>   Define the location of zlib install directory
+config PHP5_EXT_ZLIB
+	bool
+	prompt "zlib"
+	help
+	  Enable zlib support for PHP.
+
 #  --disable-spl           Disable Standard PHP Library
 #  --without-sqlite        Do not include sqlite support.
 #                          Use --with-sqlite=DIR to specify DIR where
@@ -493,10 +518,6 @@ config PHP5_EXT_SQLITE3
 #  --enable-wddx           Enable WDDX support
 #  --with-libexpat-dir=DIR   XML: libexpat install prefix (deprecated)
 
-#  --with-xmlrpc[=DIR]     Include XMLRPC-EPI support
-#  --with-libexpat-dir=DIR   XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)
-#  --with-iconv-dir=DIR      XMLRPC-EPI: iconv dir for XMLRPC-EPI
-
 #PEAR:
 #
 #  --with-pear=DIR         Install PEAR in DIR [PREFIX/lib/php]
diff --git a/rules/php5.make b/rules/php5.make
index 31b8672..04976a5 100644
--- a/rules/php5.make
+++ b/rules/php5.make
@@ -86,7 +86,7 @@ else
 endif
 
 ifdef PTXCONF_PHP5_SAPI_APXS2
-PHP5_AUTOCONF += --with-apxs2=$(SYSROOT)/usr/bin/apxs
+PHP5_AUTOCONF += --with-apxs2=$(PTXDIST_SYSROOT_TARGET)/usr/bin/apxs
 else
 # PHP5_AUTOCONF += --without-apxs2
 endif
@@ -223,6 +223,26 @@ else
 PHP5_AUTOCONF += --disable-simplexml
 endif
 
+ifdef PTXCONF_PHP5_XML_LIBXML2_XMLRPC
+PHP5_AUTOCONF += --with-xmlrpc
+else
+PHP5_AUTOCONF += --without-xmlrpc
+endif
+
+ifdef PTXCONF_PHP5_EXT_ZLIB
+PHP5_AUTOCONF += --with-zlib=$(SYSROOT)/usr
+else
+PHP5_AUTOCONF += --without-zlib
+endif
+
+ifdef PTXCONF_PHP5_EXT_CURL
+PHP5_AUTOCONF += \
+	--with-curl=$(SYSROOT)/usr \
+	--with-curl-wrappers
+else
+PHP5_AUTOCONF += --without-curl
+endif
+
 ifdef PTXCONF_PHP5_EXT_MYSQL
 PHP5_AUTOCONF += \
 	--with-mysql=$(SYSROOT)/usr \
-- 
1.7.2.5


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ptxdist] [PATCH 3/4] lua: Correct implementation for version 5.1.4
  2011-12-08 15:46         ` Michael Olbrich
  2011-12-08 16:26           ` [ptxdist] [PATCH 1/4] xmlrpc-c: fix location url Benoît Burnichon
  2011-12-08 16:26           ` [ptxdist] [PATCH 2/4] php5: add some functionalities (curl, xmlrpc, zlib) Benoît Burnichon
@ 2011-12-08 16:26           ` Benoît Burnichon
  2011-12-08 16:26           ` [ptxdist] [PATCH 4/4] lua: update to the latest bugfix patch Benoît Burnichon
  3 siblings, 0 replies; 11+ messages in thread
From: Benoît Burnichon @ 2011-12-08 16:26 UTC (permalink / raw)
  To: ptxdist

Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
---
 patches/lua-5.1.4/autoconfize.diff               |  912 ++++++++++++++++++++++
 patches/lua-5.1.4/automakize.diff                |  113 +++
 patches/lua-5.1.4/lua-5.1.3-autoconfize.diff     |  910 ---------------------
 patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff      |   26 -
 patches/lua-5.1.4/lua-5.1.3-automakize.diff      |  111 ---
 patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff |  149 ----
 patches/lua-5.1.4/remove-Makefile.diff           |  149 ++++
 patches/lua-5.1.4/series                         |    7 +-
 rules/lua.make                                   |    2 +-
 9 files changed, 1178 insertions(+), 1201 deletions(-)
 create mode 100644 patches/lua-5.1.4/autoconfize.diff
 create mode 100644 patches/lua-5.1.4/automakize.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-autoconfize.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-automakize.diff
 delete mode 100644 patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff
 create mode 100644 patches/lua-5.1.4/remove-Makefile.diff

diff --git a/patches/lua-5.1.4/autoconfize.diff b/patches/lua-5.1.4/autoconfize.diff
new file mode 100644
index 0000000..4682f3e
--- /dev/null
+++ b/patches/lua-5.1.4/autoconfize.diff
@@ -0,0 +1,912 @@
+Subject: Add lua support to ptxdist 1.99: add autoconf files
+From: Erwin Rol <erwin@erwinrol.com>
+
+This patch add lua support to ptxdist 1.99. It has a menu entry under
+scripting languages. And a patch that makes it possible to use autoconf
+to build.
+
+This part of the patch adds the autoconf files.
+
+Signed-off-by: Erwin Rol <erwin@erwinrol.com>
+Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
+
+---
+ configure.ac              |   68 ++++
+ etc/lua.pc.in             |   32 +
+ src/luaconf.h.template.in |  777 ++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 877 insertions(+)
+
+Index: lua-5.1.4/configure.ac
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/configure.ac	2011-12-06 11:47:49.675076314 +0100
+@@ -0,0 +1,70 @@
++AC_PREREQ([2.67])
++AC_INIT([Autotoolized Lua],[5.1.4],[],[lua-at])
++
++AC_CONFIG_MACRO_DIR([m4])
++
++AC_CONFIG_HEADERS([config.h])
++AC_CONFIG_SRCDIR([src/lapi.c])
++
++AM_INIT_AUTOMAKE([1.9 foreign])
++
++AC_PROG_CC
++LT_INIT
++
++AC_ARG_WITH(
++  [readline],
++  [AS_HELP_STRING([--with-readline],[Use readline for interpreter input [default=yes]])],
++  [use_readline=$withval],
++  [use_readline=yes]
++)
++
++LUA_LIBS="-lm"
++
++# Check for readline
++READLINE_DEFS="#undef LUA_USE_READLINE"
++if test "x$use_readline" == "xyes"; then
++  AC_CHECK_LIB([readline], [readline], [], [use_readline=no])
++  AC_CHECK_HEADERS([readline/readline.h readline/history.h], [], [use_readline=no])
++  if test "x$use_readline" == "xno"; then
++    AC_MSG_WARN([readline headers could not be found, disabling readline support])
++  else
++    READLINE_DEFS="#define LUA_USE_READLINE"
++    LUA_LIBS="$LUA_LIBS -lreadline"
++  fi
++fi
++AC_SUBST(READLINE_DEFS)
++
++case "$host" in
++  *-mingw*)  use_os=win32  ;;
++  *-darwin*) use_os=macosx ;;
++  *)         use_os=posix  ;;
++esac
++
++POSIX_DEFS="#undef LUA_USE_POSIX"
++LUA_DL_DEFS="#undef LUA_USE_DLOPEN"
++LUA_BUILD_AS_DLL_DEFS="#undef LUA_BUILD_AS_DLL"
++
++if test "x$use_os" == "xwin32"; then
++  LUA_BUILD_AS_DLL_DEFS="#define LUA_BUILD_AS_DLL"
++elif test "x$use_os" == "xmacosx"; then
++  POSIX_DEFS="#define LUA_USE_POSIX"
++  LUA_DL_DEFS="#define LUA_DL_DYLD"
++elif test "x$use_os" == "xposix"; then
++  POSIX_DEFS="#define LUA_USE_POSIX"
++  LUA_DL_DEFS="#define LUA_DL_DLOPEN"
++  LUA_LIBS="$LUA_LIBS -ldl"
++fi
++AC_SUBST(POSIX_DEFS)
++AC_SUBST(LUA_DL_DEFS)
++AC_SUBST(LUA_BUILD_AS_DLL_DEFS)
++
++AC_SUBST(LUA_LIBS)
++
++AC_CONFIG_FILES([Makefile
++                 src/Makefile
++                 src/luaconf.h.template
++                 etc/Makefile
++                 etc/lua.pc
++                 doc/Makefile
++		 test/Makefile])
++AC_OUTPUT
+Index: lua-5.1.4/etc/lua.pc.in
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/etc/lua.pc.in	2011-12-06 11:44:52.103826880 +0100
+@@ -0,0 +1,32 @@
++# lua.pc -- pkg-config data for Lua
++
++# vars from install Makefile
++
++# grep '^V=' ../Makefile
++V= 5.1
++# grep '^R=' ../Makefile
++R= @VERSION@
++
++# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
++# plus autotoolification
++prefix= @prefix@
++INSTALL_BIN= ${prefix}/bin
++INSTALL_INC= ${prefix}/include
++INSTALL_LIB= ${prefix}/lib
++INSTALL_MAN= ${prefix}/man/man1
++INSTALL_LMOD= ${prefix}/share/lua/${V}
++INSTALL_CMOD= ${prefix}/lib/lua/${V}
++
++# canonical vars
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include
++
++Name: Lua
++Description: An Extensible Extension Language
++Version: ${R}
++Requires: 
++Libs: -L${libdir} -llua -lm
++Cflags: -I${includedir}
++
++# (end of lua.pc)
+Index: lua-5.1.4/src/luaconf.h.template.in
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/src/luaconf.h.template.in	2011-12-06 11:44:52.103826880 +0100
+@@ -0,0 +1,777 @@
++/*
++** $Id: luaconf.h,v 1.82a 2006/04/10 18:27:23 roberto Exp $
++** Configuration file for Lua
++** See Copyright Notice in lua.h
++*/
++
++
++#ifndef lconfig_h
++#define lconfig_h
++
++#include <limits.h>
++#include <stddef.h>
++
++/*
++** =================
++** Autotoolification
++** =================
++*/
++
++/** autotoolize patch **/
++@POSIX_DEFS@
++@LUA_DL_DEFS@
++@LUA_BUILD_AS_DLL_DEFS@
++@READLINE_DEFS@
++/** autotoolize patch **/
++
++/*
++** ==================================================================
++** Search for "@@" to find all configurable definitions.
++** ===================================================================
++*/
++
++
++/*
++@@ LUA_ANSI controls the use of non-ansi features.
++** CHANGE it (define it) if you want Lua to avoid the use of any
++** non-ansi feature or library.
++*/
++#if defined(__STRICT_ANSI__)
++#define LUA_ANSI
++#endif
++
++
++#if !defined(LUA_ANSI) && defined(_WIN32)
++#define LUA_WIN
++#endif
++
++#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)
++#define LUA_USE_POSIX
++#define LUA_DL_DYLD		/* does not need extra library */
++#endif
++
++
++
++/*
++@@ LUA_USE_POSIX includes all functionallity listed as X/Open System
++@* Interfaces Extension (XSI).
++** CHANGE it (define it) if your system is XSI compatible.
++*/
++#if defined(LUA_USE_POSIX)
++#define LUA_USE_MKSTEMP
++#define LUA_USE_ISATTY
++#define LUA_USE_POPEN
++#define LUA_USE_ULONGJMP
++#endif
++
++
++/*
++@@ LUA_PATH and LUA_CPATH are the names of the environment variables that
++@* Lua check to set its paths.
++@@ LUA_INIT is the name of the environment variable that Lua
++@* checks for initialization code.
++** CHANGE them if you want different names.
++*/
++#define LUA_PATH        "LUA_PATH"
++#define LUA_CPATH       "LUA_CPATH"
++#define LUA_INIT	"LUA_INIT"
++
++
++/*
++@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for
++@* Lua libraries.
++@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for
++@* C libraries.
++** CHANGE them if your machine has a non-conventional directory
++** hierarchy or if you want to install your libraries in
++** non-conventional directories.
++*/
++#if defined(_WIN32)
++/*
++** In Windows, any exclamation mark ('!') in the path is replaced by the
++** path of the directory of the executable file of the current process.
++*/
++#define LUA_LDIR	"!\\lua\\"
++#define LUA_CDIR	"!\\"
++#define LUA_PATH_DEFAULT  \
++		".\\?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?\\init.lua;" \
++		             LUA_CDIR"?.lua;"  LUA_CDIR"?\\init.lua"
++#define LUA_CPATH_DEFAULT \
++	".\\?.dll;"  LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
++
++#else
++
++/** autotoolize patch **/
++#define LUA_LDIR	"%lua_datadir%/lua/5.1/"
++#define LUA_CDIR	"%lua_libdir%/lua/5.1/"
++/** autotoolize patch **/
++
++#define LUA_PATH_DEFAULT  \
++		"./?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?/init.lua;" \
++		            LUA_CDIR"?.lua;"  LUA_CDIR"?/init.lua"
++#define LUA_CPATH_DEFAULT \
++	"./?.so;"  LUA_CDIR"?.so;" LUA_CDIR"loadall.so"
++#endif
++
++
++/*
++@@ LUA_DIRSEP is the directory separator (for submodules).
++** CHANGE it if your machine does not use "/" as the directory separator
++** and is not Windows. (On Windows Lua automatically uses "\".)
++*/
++#if defined(_WIN32)
++#define LUA_DIRSEP	"\\"
++#else
++#define LUA_DIRSEP	"/"
++#endif
++
++
++/*
++@@ LUA_PATHSEP is the character that separates templates in a path.
++@@ LUA_PATH_MARK is the string that marks the substitution points in a
++@* template.
++@@ LUA_EXECDIR in a Windows path is replaced by the executable's
++@* directory.
++@@ LUA_IGMARK is a mark to ignore all before it when bulding the
++@* luaopen_ function name.
++** CHANGE them if for some reason your system cannot use those
++** characters. (E.g., if one of those characters is a common character
++** in file/directory names.) Probably you do not need to change them.
++*/
++#define LUA_PATHSEP	";"
++#define LUA_PATH_MARK	"?"
++#define LUA_EXECDIR	"!"
++#define LUA_IGMARK	"-"
++
++
++/*
++@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger.
++** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
++** machines, ptrdiff_t gives a good choice between int or long.)
++*/
++#define LUA_INTEGER	ptrdiff_t
++
++
++/*
++@@ LUA_API is a mark for all core API functions.
++@@ LUALIB_API is a mark for all standard library functions.
++** CHANGE them if you need to define those functions in some special way.
++** For instance, if you want to create one Windows DLL with the core and
++** the libraries, you may want to use the following definition (define
++** LUA_BUILD_AS_DLL to get it).
++*/
++#if defined(LUA_BUILD_AS_DLL)
++
++#if defined(LUA_CORE) || defined(LUA_LIB)
++#define LUA_API __declspec(dllexport)
++#else
++#define LUA_API __declspec(dllimport)
++#endif
++
++#else
++
++#define LUA_API		extern
++
++#endif
++
++/* more often than not the libs go together with the core */
++#define LUALIB_API	LUA_API
++
++
++/*
++@@ LUAI_FUNC is a mark for all extern functions that are not to be
++@* exported to outside modules.
++@@ LUAI_DATA is a mark for all extern (const) variables that are not to
++@* be exported to outside modules.
++** CHANGE them if you need to mark them in some special way. Elf/gcc
++** (versions 3.2 and later) mark them as "hidden" to optimize access
++** when Lua is compiled as a shared library.
++*/
++#if defined(luaall_c)
++#define LUAI_FUNC	static
++#define LUAI_DATA	/* empty */
++
++#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
++      defined(__ELF__)
++#define LUAI_FUNC	__attribute__((visibility("hidden"))) extern
++#define LUAI_DATA	LUAI_FUNC
++
++#else
++#define LUAI_FUNC	extern
++#define LUAI_DATA	extern
++#endif
++
++
++
++/*
++@@ LUA_QL describes how error messages quote program elements.
++** CHANGE it if you want a different appearance.
++*/
++#define LUA_QL(x)	"'" x "'"
++#define LUA_QS		LUA_QL("%s")
++
++
++/*
++@@ LUA_IDSIZE gives the maximum size for the description of the source
++@* of a function in debug information.
++** CHANGE it if you want a different size.
++*/
++#define LUA_IDSIZE	60
++
++
++/*
++** {==================================================================
++** Stand-alone configuration
++** ===================================================================
++*/
++
++#if defined(lua_c) || defined(luaall_c)
++
++/*
++@@ lua_stdin_is_tty detects whether the standard input is a 'tty' (that
++@* is, whether we're running lua interactively).
++** CHANGE it if you have a better definition for non-POSIX/non-Windows
++** systems.
++*/
++#if defined(LUA_USE_ISATTY)
++#include <unistd.h>
++#define lua_stdin_is_tty()	isatty(0)
++#elif defined(LUA_WIN)
++#include <io.h>
++#include <stdio.h>
++#define lua_stdin_is_tty()	_isatty(_fileno(stdin))
++#else
++#define lua_stdin_is_tty()	1  /* assume stdin is a tty */
++#endif
++
++
++/*
++@@ LUA_PROMPT is the default prompt used by stand-alone Lua.
++@@ LUA_PROMPT2 is the default continuation prompt used by stand-alone Lua.
++** CHANGE them if you want different prompts. (You can also change the
++** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.)
++*/
++#define LUA_PROMPT		"> "
++#define LUA_PROMPT2		">> "
++
++
++/*
++@@ LUA_PROGNAME is the default name for the stand-alone Lua program.
++** CHANGE it if your stand-alone interpreter has a different name and
++** your system is not able to detect that name automatically.
++*/
++#define LUA_PROGNAME		"lua"
++
++
++/*
++@@ LUA_MAXINPUT is the maximum length for an input line in the
++@* stand-alone interpreter.
++** CHANGE it if you need longer lines.
++*/
++#define LUA_MAXINPUT	512
++
++
++/*
++@@ lua_readline defines how to show a prompt and then read a line from
++@* the standard input.
++@@ lua_saveline defines how to "save" a read line in a "history".
++@@ lua_freeline defines how to free a line read by lua_readline.
++** CHANGE them if you want to improve this functionality (e.g., by using
++** GNU readline and history facilities).
++*/
++#if defined(LUA_USE_READLINE)
++#include <stdio.h>
++#include <readline/readline.h>
++#include <readline/history.h>
++#define lua_readline(L,b,p)	((void)L, ((b)=readline(p)) != NULL)
++#define lua_saveline(L,idx) \
++	if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \
++	  add_history(lua_tostring(L, idx));  /* add it to history */
++#define lua_freeline(L,b)	((void)L, free(b))
++#else
++#define lua_readline(L,b,p)	\
++	((void)L, fputs(p, stdout), fflush(stdout),  /* show prompt */ \
++	fgets(b, LUA_MAXINPUT, stdin) != NULL)  /* get line */
++#define lua_saveline(L,idx)	{ (void)L; (void)idx; }
++#define lua_freeline(L,b)	{ (void)L; (void)b; }
++#endif
++
++#endif
++
++/* }================================================================== */
++
++
++/*
++@@ LUAI_GCPAUSE defines the default pause between garbage-collector cycles
++@* as a percentage.
++** CHANGE it if you want the GC to run faster or slower (higher values
++** mean larger pauses which mean slower collection.) You can also change
++** this value dynamically.
++*/
++#define LUAI_GCPAUSE	200  /* 200% (wait memory to double before next GC) */
++
++
++/*
++@@ LUAI_GCMUL defines the default speed of garbage collection relative to
++@* memory allocation as a percentage.
++** CHANGE it if you want to change the granularity of the garbage
++** collection. (Higher values mean coarser collections. 0 represents
++** infinity, where each step performs a full collection.) You can also
++** change this value dynamically.
++*/
++#define LUAI_GCMUL	200 /* GC runs 'twice the speed' of memory allocation */
++
++
++
++/*
++@@ LUA_COMPAT_GETN controls compatibility with old getn behavior.
++** CHANGE it (define it) if you want exact compatibility with the
++** behavior of setn/getn in Lua 5.0.
++*/
++#undef LUA_COMPAT_GETN
++
++/*
++@@ LUA_COMPAT_LOADLIB controls compatibility about global loadlib.
++** CHANGE it to undefined as soon as you do not need a global 'loadlib'
++** function (the function is still available as 'package.loadlib').
++*/
++#undef LUA_COMPAT_LOADLIB
++
++/*
++@@ LUA_COMPAT_VARARG controls compatibility with old vararg feature.
++** CHANGE it to undefined as soon as your programs use only '...' to
++** access vararg parameters (instead of the old 'arg' table).
++*/
++#define LUA_COMPAT_VARARG
++
++/*
++@@ LUA_COMPAT_MOD controls compatibility with old math.mod function.
++** CHANGE it to undefined as soon as your programs use 'math.fmod' or
++** the new '%' operator instead of 'math.mod'.
++*/
++#define LUA_COMPAT_MOD
++
++/*
++@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting
++@* facility.
++** CHANGE it to 2 if you want the old behaviour, or undefine it to turn
++** off the advisory error when nesting [[...]].
++*/
++#define LUA_COMPAT_LSTR		1
++
++/*
++@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name.
++** CHANGE it to undefined as soon as you rename 'string.gfind' to
++** 'string.gmatch'.
++*/
++#define LUA_COMPAT_GFIND
++
++/*
++@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib'
++@* behavior.
++** CHANGE it to undefined as soon as you replace to 'luaL_register'
++** your uses of 'luaL_openlib'
++*/
++#define LUA_COMPAT_OPENLIB
++
++
++
++/*
++@@ luai_apicheck is the assert macro used by the Lua-C API.
++** CHANGE luai_apicheck if you want Lua to perform some checks in the
++** parameters it gets from API calls. This may slow down the interpreter
++** a bit, but may be quite useful when debugging C code that interfaces
++** with Lua. A useful redefinition is to use assert.h.
++*/
++#if defined(LUA_USE_APICHECK)
++#include <assert.h>
++#define luai_apicheck(L,o)	{ (void)L; assert(o); }
++#else
++#define luai_apicheck(L,o)	{ (void)L; }
++#endif
++
++
++/*
++@@ LUAI_BITSINT defines the number of bits in an int.
++** CHANGE here if Lua cannot automatically detect the number of bits of
++** your machine. Probably you do not need to change this.
++*/
++/* avoid overflows in comparison */
++#if INT_MAX-20 < 32760
++#define LUAI_BITSINT	16
++#elif INT_MAX > 2147483640L
++/* int has at least 32 bits */
++#define LUAI_BITSINT	32
++#else
++#error "you must define LUA_BITSINT with number of bits in an integer"
++#endif
++
++
++/*
++@@ LUAI_UINT32 is an unsigned integer with at least 32 bits.
++@@ LUAI_INT32 is an signed integer with at least 32 bits.
++@@ LUAI_UMEM is an unsigned integer big enough to count the total
++@* memory used by Lua.
++@@ LUAI_MEM is a signed integer big enough to count the total memory
++@* used by Lua.
++** CHANGE here if for some weird reason the default definitions are not
++** good enough for your machine. (The definitions in the 'else'
++** part always works, but may waste space on machines with 64-bit
++** longs.) Probably you do not need to change this.
++*/
++#if LUAI_BITSINT >= 32
++#define LUAI_UINT32	unsigned int
++#define LUAI_INT32	int
++#define LUAI_MAXINT32	INT_MAX
++#define LUAI_UMEM	size_t
++#define LUAI_MEM	ptrdiff_t
++#else
++/* 16-bit ints */
++#define LUAI_UINT32	unsigned long
++#define LUAI_INT32	long
++#define LUAI_MAXINT32	LONG_MAX
++#define LUAI_UMEM	unsigned long
++#define LUAI_MEM	long
++#endif
++
++
++/*
++@@ LUAI_MAXCALLS limits the number of nested calls.
++** CHANGE it if you need really deep recursive calls. This limit is
++** arbitrary; its only purpose is to stop infinite recursion before
++** exhausting memory.
++*/
++#define LUAI_MAXCALLS	20000
++
++
++/*
++@@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function
++@* can use.
++** CHANGE it if you need lots of (Lua) stack space for your C
++** functions. This limit is arbitrary; its only purpose is to stop C
++** functions to consume unlimited stack space.
++*/
++#define LUAI_MAXCSTACK	2048
++
++
++
++/*
++** {==================================================================
++** CHANGE (to smaller values) the following definitions if your system
++** has a small C stack. (Or you may want to change them to larger
++** values if your system has a large C stack and these limits are
++** too rigid for you.) Some of these constants control the size of
++** stack-allocated arrays used by the compiler or the interpreter, while
++** others limit the maximum number of recursive calls that the compiler
++** or the interpreter can perform. Values too large may cause a C stack
++** overflow for some forms of deep constructs.
++** ===================================================================
++*/
++
++
++/*
++@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and
++@* syntactical nested non-terminals in a program.
++*/
++#define LUAI_MAXCCALLS		200
++
++
++/*
++@@ LUAI_MAXVARS is the maximum number of local variables per function
++@* (must be smaller than 250).
++*/
++#define LUAI_MAXVARS		200
++
++
++/*
++@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function
++@* (must be smaller than 250).
++*/
++#define LUAI_MAXUPVALUES	60
++
++
++/*
++@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
++*/
++#define LUAL_BUFFERSIZE		BUFSIZ
++
++/* }================================================================== */
++
++
++
++
++/*
++** {==================================================================
++@@ LUA_NUMBER is the type of numbers in Lua.
++** CHANGE the following definitions only if you want to build Lua
++** with a number type different from double. You may also need to
++** change lua_number2int & lua_number2integer.
++** ===================================================================
++*/
++
++#define LUA_NUMBER_DOUBLE
++#define LUA_NUMBER	double
++
++/*
++@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
++@* over a number.
++*/
++#define LUAI_UACNUMBER	double
++
++
++/*
++@@ LUA_NUMBER_SCAN is the format for reading numbers.
++@@ LUA_NUMBER_FMT is the format for writing numbers.
++@@ lua_number2str converts a number to a string.
++@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
++@@ lua_str2number converts a string to a number.
++*/
++#define LUA_NUMBER_SCAN		"%lf"
++#define LUA_NUMBER_FMT		"%.14g"
++#define lua_number2str(s,n)	sprintf((s), LUA_NUMBER_FMT, (n))
++#define LUAI_MAXNUMBER2STR	32 /* 16 digits, sign, point, and \0 */
++#define lua_str2number(s,p)	strtod((s), (p))
++
++
++/*
++@@ The luai_num* macros define the primitive operations over numbers.
++*/
++#if defined(LUA_CORE)
++#include <math.h>
++#define luai_numadd(a,b)	((a)+(b))
++#define luai_numsub(a,b)	((a)-(b))
++#define luai_nummul(a,b)	((a)*(b))
++#define luai_numdiv(a,b)	((a)/(b))
++#define luai_nummod(a,b)	((a) - floor((a)/(b))*(b))
++#define luai_numpow(a,b)	(pow(a,b))
++#define luai_numunm(a)		(-(a))
++#define luai_numeq(a,b)		((a)==(b))
++#define luai_numlt(a,b)		((a)<(b))
++#define luai_numle(a,b)		((a)<=(b))
++#define luai_numisnan(a)	(!luai_numeq((a), (a)))
++#endif
++
++
++/*
++@@ lua_number2int is a macro to convert lua_Number to int.
++@@ lua_number2integer is a macro to convert lua_Number to lua_Integer.
++** CHANGE them if you know a faster way to convert a lua_Number to
++** int (with any rounding method and without throwing errors) in your
++** system. In Pentium machines, a naive typecast from double to int
++** in C is extremely slow, so any alternative is worth trying.
++*/
++
++/* On a Pentium, resort to a trick */
++#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \
++    (defined(__i386) || defined (_M_IX86) || defined(__i386__))
++
++/* On a Microsoft compiler, use assembler */
++#if defined(_MSC_VER)
++
++#define lua_number2int(i,d)   __asm fld d   __asm fistp i
++#define lua_number2integer(i,n)		lua_number2int(i, n)
++
++/* the next trick should work on any Pentium, but sometimes clashes
++   with a DirectX idiosyncrasy */
++#else
++
++union luai_Cast { double l_d; long l_l; };
++#define lua_number2int(i,d) \
++  { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; }
++#define lua_number2integer(i,n)		lua_number2int(i, n)
++
++#endif
++
++
++/* this option always works, but may be slow */
++#else
++#define lua_number2int(i,d)	((i)=(int)(d))
++#define lua_number2integer(i,d)	((i)=(lua_Integer)(d))
++
++#endif
++
++/* }================================================================== */
++
++
++/*
++@@ LUAI_USER_ALIGNMENT_T is a type that requires maximum alignment.
++** CHANGE it if your system requires alignments larger than double. (For
++** instance, if your system supports long doubles and they must be
++** aligned in 16-byte boundaries, then you should add long double in the
++** union.) Probably you do not need to change this.
++*/
++#define LUAI_USER_ALIGNMENT_T	union { double u; void *s; long l; }
++
++
++/*
++@@ LUAI_THROW/LUAI_TRY define how Lua does exception handling.
++** CHANGE them if you prefer to use longjmp/setjmp even with C++
++** or if want/don't to use _longjmp/_setjmp instead of regular
++** longjmp/setjmp. By default, Lua handles errors with exceptions when
++** compiling as C++ code, with _longjmp/_setjmp when asked to use them,
++** and with longjmp/setjmp otherwise.
++*/
++#if defined(__cplusplus)
++/* C++ exceptions */
++#define LUAI_THROW(L,c)	throw(c)
++#define LUAI_TRY(L,c,a)	try { a } catch(...) \
++	{ if ((c)->status == 0) (c)->status = -1; }
++#define luai_jmpbuf	int  /* dummy variable */
++
++#elif defined(LUA_USE_ULONGJMP)
++/* in Unix, try _longjmp/_setjmp (more efficient) */
++#define LUAI_THROW(L,c)	_longjmp((c)->b, 1)
++#define LUAI_TRY(L,c,a)	if (_setjmp((c)->b) == 0) { a }
++#define luai_jmpbuf	jmp_buf
++
++#else
++/* default handling with long jumps */
++#define LUAI_THROW(L,c)	longjmp((c)->b, 1)
++#define LUAI_TRY(L,c,a)	if (setjmp((c)->b) == 0) { a }
++#define luai_jmpbuf	jmp_buf
++
++#endif
++
++
++/*
++@@ LUA_MAXCAPTURES is the maximum number of captures that a pattern
++@* can do during pattern-matching.
++** CHANGE it if you need more captures. This limit is arbitrary.
++*/
++#define LUA_MAXCAPTURES		32
++
++
++/*
++@@ lua_tmpnam is the function that the OS library uses to create a
++@* temporary name.
++@@ LUA_TMPNAMBUFSIZE is the maximum size of a name created by lua_tmpnam.
++** CHANGE them if you have an alternative to tmpnam (which is considered
++** insecure) or if you want the original tmpnam anyway.  By default, Lua
++** uses tmpnam except when POSIX is available, where it uses mkstemp.
++*/
++#if defined(loslib_c) || defined(luaall_c)
++
++#if defined(LUA_USE_MKSTEMP)
++#include <unistd.h>
++#define LUA_TMPNAMBUFSIZE	32
++#define lua_tmpnam(b,e)	{ \
++	strcpy(b, "/tmp/lua_XXXXXX"); \
++	e = mkstemp(b); \
++	if (e != -1) close(e); \
++	e = (e == -1); }
++
++#else
++#define LUA_TMPNAMBUFSIZE	L_tmpnam
++#define lua_tmpnam(b,e)		{ e = (tmpnam(b) == NULL); }
++#endif
++
++#endif
++
++
++/*
++@@ lua_popen spawns a new process connected to the current one through
++@* the file streams.
++** CHANGE it if you have a way to implement it in your system.
++*/
++#if defined(LUA_USE_POPEN)
++
++#define lua_popen(L,c,m)	((void)L, popen(c,m))
++#define lua_pclose(L,file)	((void)L, (pclose(file) != -1))
++
++#elif defined(LUA_WIN)
++
++#define lua_popen(L,c,m)	((void)L, _popen(c,m))
++#define lua_pclose(L,file)	((void)L, (_pclose(file) != -1))
++
++#else
++
++#define lua_popen(L,c,m)	((void)((void)c, m),  \
++		luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0)
++#define lua_pclose(L,file)		((void)((void)L, file), 0)
++
++#endif
++
++/*
++@@ LUA_DL_* define which dynamic-library system Lua should use.
++** CHANGE here if Lua has problems choosing the appropriate
++** dynamic-library system for your platform (either Windows' DLL, Mac's
++** dyld, or Unix's dlopen). If your system is some kind of Unix, there
++** is a good chance that it has dlopen, so LUA_DL_DLOPEN will work for
++** it.  To use dlopen you also need to adapt the src/Makefile (probably
++** adding -ldl to the linker options), so Lua does not select it
++** automatically.  (When you change the makefile to add -ldl, you must
++** also add -DLUA_USE_DLOPEN.)
++** If you do not want any kind of dynamic library, undefine all these
++** options.
++** By default, _WIN32 gets LUA_DL_DLL and MAC OS X gets LUA_DL_DYLD.
++*/
++#if defined(LUA_USE_DLOPEN)
++#define LUA_DL_DLOPEN
++#endif
++
++#if defined(LUA_WIN)
++#define LUA_DL_DLL
++#endif
++
++
++/*
++@@ LUAI_EXTRASPACE allows you to add user-specific data in a lua_State
++@* (the data goes just *before* the lua_State pointer).
++** CHANGE (define) this if you really need that. This value must be
++** a multiple of the maximum alignment required for your machine.
++*/
++#define LUAI_EXTRASPACE		0
++
++
++/*
++@@ luai_userstate* allow user-specific actions on threads.
++** CHANGE them if you defined LUAI_EXTRASPACE and need to do something
++** extra when a thread is created/deleted/resumed/yielded.
++*/
++#define luai_userstateopen(L)		((void)L)
++#define luai_userstateclose(L)		((void)L)
++#define luai_userstatethread(L,L1)	((void)L)
++#define luai_userstatefree(L)		((void)L)
++#define luai_userstateresume(L,n)	((void)L)
++#define luai_userstateyield(L,n)	((void)L)
++
++
++/*
++@@ LUA_INTFRMLEN is the length modifier for integer conversions
++@* in 'string.format'.
++@@ LUA_INTFRM_T is the integer type correspoding to the previous length
++@* modifier.
++** CHANGE them if your system supports long long or does not support long.
++*/
++
++#if defined(LUA_USELONGLONG)
++
++#define LUA_INTFRMLEN		"ll"
++#define LUA_INTFRM_T		long long
++
++#else
++
++#define LUA_INTFRMLEN		"l"
++#define LUA_INTFRM_T		long
++
++#endif
++
++
++
++/* =================================================================== */
++
++/*
++** Local configuration. You can use this space to add your redefinitions
++** without modifying the main part of the file.
++*/
++
++
++
++#endif
++
diff --git a/patches/lua-5.1.4/automakize.diff b/patches/lua-5.1.4/automakize.diff
new file mode 100644
index 0000000..0dae724
--- /dev/null
+++ b/patches/lua-5.1.4/automakize.diff
@@ -0,0 +1,113 @@
+Subject: Add lua support to ptxdist 1.99: add automake files
+From: Erwin Rol <erwin@erwinrol.com>
+
+This patch add lua support to ptxdist 1.99. It has a menu entry under
+scripting languages. And a patch that makes it possible to use autoconf
+to build.
+
+This part of the patch adds the automake files.
+
+Signed-off-by: Erwin Rol <erwin@erwinrol.com>
+Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
+
+---
+ Makefile.am      |    3 +++
+ doc/Makefile.am  |    5 +++++
+ etc/Makefile.am  |    8 ++++++++
+ src/Makefile.am  |   45 +++++++++++++++++++++++++++++++++++++++++++++
+ test/Makefile.am |    5 +++++
+ 5 files changed, 66 insertions(+)
+
+Index: lua-5.1.4/doc/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/doc/Makefile.am	2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,5 @@
++man1_MANS = lua.1 luac.1
++
++EXTRA_DIST = \
++	contents.html  lua.1   luac.html  lua.html     manual.html \
++	logo.gif       luac.1  lua.css    readme.html
+Index: lua-5.1.4/etc/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/etc/Makefile.am	2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,8 @@
++include_HEADERS = lua.hpp
++
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = lua.pc
++
++EXTRA_DIST = \
++	all.c      lua.ico    lua.pc.in  noparser.c  strict.lua \
++	luavs.bat  min.c      README
+Index: lua-5.1.4/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/Makefile.am	2011-12-06 11:50:14.559076265 +0100
+@@ -0,0 +1,5 @@
++ACLOCAL_AMFLAGS = -I m4
++
++SUBDIRS = src doc etc test
++
++EXTRA_DIST = autogen.sh COPYRIGHT HISTORY INSTALL README
+Index: lua-5.1.4/src/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/src/Makefile.am	2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,45 @@
++AM_CFLAGS = -Wall
++
++include_HEADERS = lua.h lualib.h lauxlib.h
++nodist_include_HEADERS = luaconf.h
++
++lib_LTLIBRARIES = liblua.la
++liblua_la_LDFLAGS = -release @VERSION@
++liblua_la_SOURCES = \
++	lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c \
++	lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c  \
++	lundump.c lvm.c lzio.c \
++	lauxlib.c lbaselib.c ldblib.c liolib.c lmathlib.c loslib.c ltablib.c \
++	lstrlib.c loadlib.c linit.c \
++	lapi.h ldebug.h lgc.h lmem.h lparser.h ltable.h lzio.h ldo.h llex.h \
++	lobject.h lstate.h ltm.h lundump.h lcode.h lfunc.h llimits.h lopcodes.h \
++	lstring.h lvm.h
++
++bin_PROGRAMS = lua luac
++
++lua_SOURCES = lua.c
++lua_LDADD = liblua.la @LUA_LIBS@
++lua_DEPENDENCIES = liblua.la
++
++luac_SOURCES = luac.c print.c
++luac_LDADD = liblua.la @LUA_LIBS@
++luac_DEPENDENCIES = liblua.la
++
++# luac must be linked statically because it uses functions that
++# don't get exported to the shared object
++luac_LDFLAGS = -static
++
++EXTRA_DIST = luaconf.h.template.in
++BUILT_SOURCES = luaconf.h
++CLEANFILES = luaconf.h
++
++readline_defs = @READLINE_DEFS@
++
++edit = 	sed \
++	  -e 's,%lua_datadir%,$(datadir),g' \
++	  -e 's,%lua_libdir%,$(libdir),g'
++
++luaconf.h : luaconf.h.template
++	rm -f luaconf.h luaconf.h.tmp
++	$(edit) luaconf.h.template > luaconf.h.tmp
++	mv luaconf.h.tmp luaconf.h
+Index: lua-5.1.4/test/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ lua-5.1.4/test/Makefile.am	2011-12-06 11:49:03.491826945 +0100
+@@ -0,0 +1,5 @@
++EXTRA_DIST = \
++	bisect.lua  env.lua         fib.lua      life.lua          printf.lua \
++	sieve.lua   trace-calls.lua cf.lua       factorial.lua     globals.lua \
++	luac.lua    README          sort.lua     trace-globals.lua echo.lua \
++	fibfor.lua  hello.lua       readonly.lua table.lua         xd.lua
diff --git a/patches/lua-5.1.4/lua-5.1.3-autoconfize.diff b/patches/lua-5.1.4/lua-5.1.3-autoconfize.diff
deleted file mode 100644
index f9ff8ff..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-autoconfize.diff
+++ /dev/null
@@ -1,910 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: add autoconf files
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch adds the autoconf files.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- configure.ac              |   68 ++++
- etc/lua.pc.in             |   32 +
- src/luaconf.h.template.in |  777 ++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 877 insertions(+)
-
-Index: lua-5.1.4/configure.ac
-===================================================================
---- /dev/null
-+++ lua-5.1.4/configure.ac
-@@ -0,0 +1,68 @@
-+AC_PREREQ(2.59)
-+AC_INIT([Autotoolized Lua], [5.1.4], [], [lua-at])
-+
-+AC_CONFIG_HEADERS([config.h])
-+AC_CONFIG_SRCDIR([src/lapi.c])
-+
-+AM_INIT_AUTOMAKE([1.9 foreign])
-+
-+AC_PROG_CC
-+AC_PROG_LIBTOOL
-+
-+AC_ARG_WITH(
-+  [readline],
-+  [AC_HELP_STRING([--with-readline], [Use readline for interpreter input [default=yes]])],
-+  [use_readline=$withval],
-+  [use_readline=yes]
-+)
-+
-+LUA_LIBS="-lm"
-+
-+# Check for readline
-+READLINE_DEFS="#undef LUA_USE_READLINE"
-+if test "x$use_readline" == "xyes"; then
-+  AC_CHECK_LIB([readline], [readline], [], [use_readline=no])
-+  AC_CHECK_HEADERS([readline/readline.h readline/history.h], [], [use_readline=no])
-+  if test "x$use_readline" == "xno"; then
-+    AC_MSG_WARN([readline headers could not be found, disabling readline support])
-+  else
-+    READLINE_DEFS="#define LUA_USE_READLINE"
-+    LUA_LIBS="$LUA_LIBS -lreadline"
-+  fi
-+fi
-+AC_SUBST(READLINE_DEFS)
-+
-+case "$host" in
-+  *-mingw*)  use_os=win32  ;;
-+  *-darwin*) use_os=macosx ;;
-+  *)         use_os=posix  ;;
-+esac
-+
-+POSIX_DEFS="#undef LUA_USE_POSIX"
-+LUA_DL_DEFS="#undef LUA_USE_DLOPEN"
-+LUA_BUILD_AS_DLL_DEFS="#undef LUA_BUILD_AS_DLL"
-+
-+if test "x$use_os" == "xwin32"; then
-+  LUA_BUILD_AS_DLL_DEFS="#define LUA_BUILD_AS_DLL"
-+elif test "x$use_os" == "xmacosx"; then
-+  POSIX_DEFS="#define LUA_USE_POSIX"
-+  LUA_DL_DEFS="#define LUA_DL_DYLD"
-+elif test "x$use_os" == "xposix"; then
-+  POSIX_DEFS="#define LUA_USE_POSIX"
-+  LUA_DL_DEFS="#define LUA_DL_DLOPEN"
-+  LUA_LIBS="$LUA_LIBS -ldl"
-+fi
-+AC_SUBST(POSIX_DEFS)
-+AC_SUBST(LUA_DL_DEFS)
-+AC_SUBST(LUA_BUILD_AS_DLL_DEFS)
-+
-+AC_SUBST(LUA_LIBS)
-+
-+AC_CONFIG_FILES([Makefile
-+                 src/Makefile
-+                 src/luaconf.h.template
-+                 etc/Makefile
-+                 etc/lua.pc
-+                 doc/Makefile
-+		 test/Makefile])
-+AC_OUTPUT
-Index: lua-5.1.4/etc/lua.pc.in
-===================================================================
---- /dev/null
-+++ lua-5.1.4/etc/lua.pc.in
-@@ -0,0 +1,32 @@
-+# lua.pc -- pkg-config data for Lua
-+
-+# vars from install Makefile
-+
-+# grep '^V=' ../Makefile
-+V= 5.1
-+# grep '^R=' ../Makefile
-+R= 5.1.3
-+
-+# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
-+# plus autotoolification
-+prefix= @prefix@
-+INSTALL_BIN= ${prefix}/bin
-+INSTALL_INC= ${prefix}/include
-+INSTALL_LIB= ${prefix}/lib
-+INSTALL_MAN= ${prefix}/man/man1
-+INSTALL_LMOD= ${prefix}/share/lua/${V}
-+INSTALL_CMOD= ${prefix}/lib/lua/${V}
-+
-+# canonical vars
-+exec_prefix=${prefix}
-+libdir=${exec_prefix}/lib
-+includedir=${prefix}/include
-+
-+Name: Lua
-+Description: An Extensible Extension Language
-+Version: ${R}
-+Requires: 
-+Libs: -L${libdir} -llua -lm
-+Cflags: -I${includedir}
-+
-+# (end of lua.pc)
-Index: lua-5.1.4/src/luaconf.h.template.in
-===================================================================
---- /dev/null
-+++ lua-5.1.4/src/luaconf.h.template.in
-@@ -0,0 +1,777 @@
-+/*
-+** $Id: luaconf.h,v 1.82a 2006/04/10 18:27:23 roberto Exp $
-+** Configuration file for Lua
-+** See Copyright Notice in lua.h
-+*/
-+
-+
-+#ifndef lconfig_h
-+#define lconfig_h
-+
-+#include <limits.h>
-+#include <stddef.h>
-+
-+/*
-+** =================
-+** Autotoolification
-+** =================
-+*/
-+
-+/** autotoolize patch **/
-+@POSIX_DEFS@
-+@LUA_DL_DEFS@
-+@LUA_BUILD_AS_DLL_DEFS@
-+@READLINE_DEFS@
-+/** autotoolize patch **/
-+
-+/*
-+** ==================================================================
-+** Search for "@@" to find all configurable definitions.
-+** ===================================================================
-+*/
-+
-+
-+/*
-+@@ LUA_ANSI controls the use of non-ansi features.
-+** CHANGE it (define it) if you want Lua to avoid the use of any
-+** non-ansi feature or library.
-+*/
-+#if defined(__STRICT_ANSI__)
-+#define LUA_ANSI
-+#endif
-+
-+
-+#if !defined(LUA_ANSI) && defined(_WIN32)
-+#define LUA_WIN
-+#endif
-+
-+#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)
-+#define LUA_USE_POSIX
-+#define LUA_DL_DYLD		/* does not need extra library */
-+#endif
-+
-+
-+
-+/*
-+@@ LUA_USE_POSIX includes all functionallity listed as X/Open System
-+@* Interfaces Extension (XSI).
-+** CHANGE it (define it) if your system is XSI compatible.
-+*/
-+#if defined(LUA_USE_POSIX)
-+#define LUA_USE_MKSTEMP
-+#define LUA_USE_ISATTY
-+#define LUA_USE_POPEN
-+#define LUA_USE_ULONGJMP
-+#endif
-+
-+
-+/*
-+@@ LUA_PATH and LUA_CPATH are the names of the environment variables that
-+@* Lua check to set its paths.
-+@@ LUA_INIT is the name of the environment variable that Lua
-+@* checks for initialization code.
-+** CHANGE them if you want different names.
-+*/
-+#define LUA_PATH        "LUA_PATH"
-+#define LUA_CPATH       "LUA_CPATH"
-+#define LUA_INIT	"LUA_INIT"
-+
-+
-+/*
-+@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for
-+@* Lua libraries.
-+@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for
-+@* C libraries.
-+** CHANGE them if your machine has a non-conventional directory
-+** hierarchy or if you want to install your libraries in
-+** non-conventional directories.
-+*/
-+#if defined(_WIN32)
-+/*
-+** In Windows, any exclamation mark ('!') in the path is replaced by the
-+** path of the directory of the executable file of the current process.
-+*/
-+#define LUA_LDIR	"!\\lua\\"
-+#define LUA_CDIR	"!\\"
-+#define LUA_PATH_DEFAULT  \
-+		".\\?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?\\init.lua;" \
-+		             LUA_CDIR"?.lua;"  LUA_CDIR"?\\init.lua"
-+#define LUA_CPATH_DEFAULT \
-+	".\\?.dll;"  LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
-+
-+#else
-+
-+/** autotoolize patch **/
-+#define LUA_LDIR	"%lua_datadir%/lua/5.1/"
-+#define LUA_CDIR	"%lua_libdir%/lua/5.1/"
-+/** autotoolize patch **/
-+
-+#define LUA_PATH_DEFAULT  \
-+		"./?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?/init.lua;" \
-+		            LUA_CDIR"?.lua;"  LUA_CDIR"?/init.lua"
-+#define LUA_CPATH_DEFAULT \
-+	"./?.so;"  LUA_CDIR"?.so;" LUA_CDIR"loadall.so"
-+#endif
-+
-+
-+/*
-+@@ LUA_DIRSEP is the directory separator (for submodules).
-+** CHANGE it if your machine does not use "/" as the directory separator
-+** and is not Windows. (On Windows Lua automatically uses "\".)
-+*/
-+#if defined(_WIN32)
-+#define LUA_DIRSEP	"\\"
-+#else
-+#define LUA_DIRSEP	"/"
-+#endif
-+
-+
-+/*
-+@@ LUA_PATHSEP is the character that separates templates in a path.
-+@@ LUA_PATH_MARK is the string that marks the substitution points in a
-+@* template.
-+@@ LUA_EXECDIR in a Windows path is replaced by the executable's
-+@* directory.
-+@@ LUA_IGMARK is a mark to ignore all before it when bulding the
-+@* luaopen_ function name.
-+** CHANGE them if for some reason your system cannot use those
-+** characters. (E.g., if one of those characters is a common character
-+** in file/directory names.) Probably you do not need to change them.
-+*/
-+#define LUA_PATHSEP	";"
-+#define LUA_PATH_MARK	"?"
-+#define LUA_EXECDIR	"!"
-+#define LUA_IGMARK	"-"
-+
-+
-+/*
-+@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger.
-+** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
-+** machines, ptrdiff_t gives a good choice between int or long.)
-+*/
-+#define LUA_INTEGER	ptrdiff_t
-+
-+
-+/*
-+@@ LUA_API is a mark for all core API functions.
-+@@ LUALIB_API is a mark for all standard library functions.
-+** CHANGE them if you need to define those functions in some special way.
-+** For instance, if you want to create one Windows DLL with the core and
-+** the libraries, you may want to use the following definition (define
-+** LUA_BUILD_AS_DLL to get it).
-+*/
-+#if defined(LUA_BUILD_AS_DLL)
-+
-+#if defined(LUA_CORE) || defined(LUA_LIB)
-+#define LUA_API __declspec(dllexport)
-+#else
-+#define LUA_API __declspec(dllimport)
-+#endif
-+
-+#else
-+
-+#define LUA_API		extern
-+
-+#endif
-+
-+/* more often than not the libs go together with the core */
-+#define LUALIB_API	LUA_API
-+
-+
-+/*
-+@@ LUAI_FUNC is a mark for all extern functions that are not to be
-+@* exported to outside modules.
-+@@ LUAI_DATA is a mark for all extern (const) variables that are not to
-+@* be exported to outside modules.
-+** CHANGE them if you need to mark them in some special way. Elf/gcc
-+** (versions 3.2 and later) mark them as "hidden" to optimize access
-+** when Lua is compiled as a shared library.
-+*/
-+#if defined(luaall_c)
-+#define LUAI_FUNC	static
-+#define LUAI_DATA	/* empty */
-+
-+#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
-+      defined(__ELF__)
-+#define LUAI_FUNC	__attribute__((visibility("hidden"))) extern
-+#define LUAI_DATA	LUAI_FUNC
-+
-+#else
-+#define LUAI_FUNC	extern
-+#define LUAI_DATA	extern
-+#endif
-+
-+
-+
-+/*
-+@@ LUA_QL describes how error messages quote program elements.
-+** CHANGE it if you want a different appearance.
-+*/
-+#define LUA_QL(x)	"'" x "'"
-+#define LUA_QS		LUA_QL("%s")
-+
-+
-+/*
-+@@ LUA_IDSIZE gives the maximum size for the description of the source
-+@* of a function in debug information.
-+** CHANGE it if you want a different size.
-+*/
-+#define LUA_IDSIZE	60
-+
-+
-+/*
-+** {==================================================================
-+** Stand-alone configuration
-+** ===================================================================
-+*/
-+
-+#if defined(lua_c) || defined(luaall_c)
-+
-+/*
-+@@ lua_stdin_is_tty detects whether the standard input is a 'tty' (that
-+@* is, whether we're running lua interactively).
-+** CHANGE it if you have a better definition for non-POSIX/non-Windows
-+** systems.
-+*/
-+#if defined(LUA_USE_ISATTY)
-+#include <unistd.h>
-+#define lua_stdin_is_tty()	isatty(0)
-+#elif defined(LUA_WIN)
-+#include <io.h>
-+#include <stdio.h>
-+#define lua_stdin_is_tty()	_isatty(_fileno(stdin))
-+#else
-+#define lua_stdin_is_tty()	1  /* assume stdin is a tty */
-+#endif
-+
-+
-+/*
-+@@ LUA_PROMPT is the default prompt used by stand-alone Lua.
-+@@ LUA_PROMPT2 is the default continuation prompt used by stand-alone Lua.
-+** CHANGE them if you want different prompts. (You can also change the
-+** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.)
-+*/
-+#define LUA_PROMPT		"> "
-+#define LUA_PROMPT2		">> "
-+
-+
-+/*
-+@@ LUA_PROGNAME is the default name for the stand-alone Lua program.
-+** CHANGE it if your stand-alone interpreter has a different name and
-+** your system is not able to detect that name automatically.
-+*/
-+#define LUA_PROGNAME		"lua"
-+
-+
-+/*
-+@@ LUA_MAXINPUT is the maximum length for an input line in the
-+@* stand-alone interpreter.
-+** CHANGE it if you need longer lines.
-+*/
-+#define LUA_MAXINPUT	512
-+
-+
-+/*
-+@@ lua_readline defines how to show a prompt and then read a line from
-+@* the standard input.
-+@@ lua_saveline defines how to "save" a read line in a "history".
-+@@ lua_freeline defines how to free a line read by lua_readline.
-+** CHANGE them if you want to improve this functionality (e.g., by using
-+** GNU readline and history facilities).
-+*/
-+#if defined(LUA_USE_READLINE)
-+#include <stdio.h>
-+#include <readline/readline.h>
-+#include <readline/history.h>
-+#define lua_readline(L,b,p)	((void)L, ((b)=readline(p)) != NULL)
-+#define lua_saveline(L,idx) \
-+	if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \
-+	  add_history(lua_tostring(L, idx));  /* add it to history */
-+#define lua_freeline(L,b)	((void)L, free(b))
-+#else
-+#define lua_readline(L,b,p)	\
-+	((void)L, fputs(p, stdout), fflush(stdout),  /* show prompt */ \
-+	fgets(b, LUA_MAXINPUT, stdin) != NULL)  /* get line */
-+#define lua_saveline(L,idx)	{ (void)L; (void)idx; }
-+#define lua_freeline(L,b)	{ (void)L; (void)b; }
-+#endif
-+
-+#endif
-+
-+/* }================================================================== */
-+
-+
-+/*
-+@@ LUAI_GCPAUSE defines the default pause between garbage-collector cycles
-+@* as a percentage.
-+** CHANGE it if you want the GC to run faster or slower (higher values
-+** mean larger pauses which mean slower collection.) You can also change
-+** this value dynamically.
-+*/
-+#define LUAI_GCPAUSE	200  /* 200% (wait memory to double before next GC) */
-+
-+
-+/*
-+@@ LUAI_GCMUL defines the default speed of garbage collection relative to
-+@* memory allocation as a percentage.
-+** CHANGE it if you want to change the granularity of the garbage
-+** collection. (Higher values mean coarser collections. 0 represents
-+** infinity, where each step performs a full collection.) You can also
-+** change this value dynamically.
-+*/
-+#define LUAI_GCMUL	200 /* GC runs 'twice the speed' of memory allocation */
-+
-+
-+
-+/*
-+@@ LUA_COMPAT_GETN controls compatibility with old getn behavior.
-+** CHANGE it (define it) if you want exact compatibility with the
-+** behavior of setn/getn in Lua 5.0.
-+*/
-+#undef LUA_COMPAT_GETN
-+
-+/*
-+@@ LUA_COMPAT_LOADLIB controls compatibility about global loadlib.
-+** CHANGE it to undefined as soon as you do not need a global 'loadlib'
-+** function (the function is still available as 'package.loadlib').
-+*/
-+#undef LUA_COMPAT_LOADLIB
-+
-+/*
-+@@ LUA_COMPAT_VARARG controls compatibility with old vararg feature.
-+** CHANGE it to undefined as soon as your programs use only '...' to
-+** access vararg parameters (instead of the old 'arg' table).
-+*/
-+#define LUA_COMPAT_VARARG
-+
-+/*
-+@@ LUA_COMPAT_MOD controls compatibility with old math.mod function.
-+** CHANGE it to undefined as soon as your programs use 'math.fmod' or
-+** the new '%' operator instead of 'math.mod'.
-+*/
-+#define LUA_COMPAT_MOD
-+
-+/*
-+@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting
-+@* facility.
-+** CHANGE it to 2 if you want the old behaviour, or undefine it to turn
-+** off the advisory error when nesting [[...]].
-+*/
-+#define LUA_COMPAT_LSTR		1
-+
-+/*
-+@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name.
-+** CHANGE it to undefined as soon as you rename 'string.gfind' to
-+** 'string.gmatch'.
-+*/
-+#define LUA_COMPAT_GFIND
-+
-+/*
-+@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib'
-+@* behavior.
-+** CHANGE it to undefined as soon as you replace to 'luaL_register'
-+** your uses of 'luaL_openlib'
-+*/
-+#define LUA_COMPAT_OPENLIB
-+
-+
-+
-+/*
-+@@ luai_apicheck is the assert macro used by the Lua-C API.
-+** CHANGE luai_apicheck if you want Lua to perform some checks in the
-+** parameters it gets from API calls. This may slow down the interpreter
-+** a bit, but may be quite useful when debugging C code that interfaces
-+** with Lua. A useful redefinition is to use assert.h.
-+*/
-+#if defined(LUA_USE_APICHECK)
-+#include <assert.h>
-+#define luai_apicheck(L,o)	{ (void)L; assert(o); }
-+#else
-+#define luai_apicheck(L,o)	{ (void)L; }
-+#endif
-+
-+
-+/*
-+@@ LUAI_BITSINT defines the number of bits in an int.
-+** CHANGE here if Lua cannot automatically detect the number of bits of
-+** your machine. Probably you do not need to change this.
-+*/
-+/* avoid overflows in comparison */
-+#if INT_MAX-20 < 32760
-+#define LUAI_BITSINT	16
-+#elif INT_MAX > 2147483640L
-+/* int has at least 32 bits */
-+#define LUAI_BITSINT	32
-+#else
-+#error "you must define LUA_BITSINT with number of bits in an integer"
-+#endif
-+
-+
-+/*
-+@@ LUAI_UINT32 is an unsigned integer with at least 32 bits.
-+@@ LUAI_INT32 is an signed integer with at least 32 bits.
-+@@ LUAI_UMEM is an unsigned integer big enough to count the total
-+@* memory used by Lua.
-+@@ LUAI_MEM is a signed integer big enough to count the total memory
-+@* used by Lua.
-+** CHANGE here if for some weird reason the default definitions are not
-+** good enough for your machine. (The definitions in the 'else'
-+** part always works, but may waste space on machines with 64-bit
-+** longs.) Probably you do not need to change this.
-+*/
-+#if LUAI_BITSINT >= 32
-+#define LUAI_UINT32	unsigned int
-+#define LUAI_INT32	int
-+#define LUAI_MAXINT32	INT_MAX
-+#define LUAI_UMEM	size_t
-+#define LUAI_MEM	ptrdiff_t
-+#else
-+/* 16-bit ints */
-+#define LUAI_UINT32	unsigned long
-+#define LUAI_INT32	long
-+#define LUAI_MAXINT32	LONG_MAX
-+#define LUAI_UMEM	unsigned long
-+#define LUAI_MEM	long
-+#endif
-+
-+
-+/*
-+@@ LUAI_MAXCALLS limits the number of nested calls.
-+** CHANGE it if you need really deep recursive calls. This limit is
-+** arbitrary; its only purpose is to stop infinite recursion before
-+** exhausting memory.
-+*/
-+#define LUAI_MAXCALLS	20000
-+
-+
-+/*
-+@@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function
-+@* can use.
-+** CHANGE it if you need lots of (Lua) stack space for your C
-+** functions. This limit is arbitrary; its only purpose is to stop C
-+** functions to consume unlimited stack space.
-+*/
-+#define LUAI_MAXCSTACK	2048
-+
-+
-+
-+/*
-+** {==================================================================
-+** CHANGE (to smaller values) the following definitions if your system
-+** has a small C stack. (Or you may want to change them to larger
-+** values if your system has a large C stack and these limits are
-+** too rigid for you.) Some of these constants control the size of
-+** stack-allocated arrays used by the compiler or the interpreter, while
-+** others limit the maximum number of recursive calls that the compiler
-+** or the interpreter can perform. Values too large may cause a C stack
-+** overflow for some forms of deep constructs.
-+** ===================================================================
-+*/
-+
-+
-+/*
-+@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and
-+@* syntactical nested non-terminals in a program.
-+*/
-+#define LUAI_MAXCCALLS		200
-+
-+
-+/*
-+@@ LUAI_MAXVARS is the maximum number of local variables per function
-+@* (must be smaller than 250).
-+*/
-+#define LUAI_MAXVARS		200
-+
-+
-+/*
-+@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function
-+@* (must be smaller than 250).
-+*/
-+#define LUAI_MAXUPVALUES	60
-+
-+
-+/*
-+@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
-+*/
-+#define LUAL_BUFFERSIZE		BUFSIZ
-+
-+/* }================================================================== */
-+
-+
-+
-+
-+/*
-+** {==================================================================
-+@@ LUA_NUMBER is the type of numbers in Lua.
-+** CHANGE the following definitions only if you want to build Lua
-+** with a number type different from double. You may also need to
-+** change lua_number2int & lua_number2integer.
-+** ===================================================================
-+*/
-+
-+#define LUA_NUMBER_DOUBLE
-+#define LUA_NUMBER	double
-+
-+/*
-+@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
-+@* over a number.
-+*/
-+#define LUAI_UACNUMBER	double
-+
-+
-+/*
-+@@ LUA_NUMBER_SCAN is the format for reading numbers.
-+@@ LUA_NUMBER_FMT is the format for writing numbers.
-+@@ lua_number2str converts a number to a string.
-+@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
-+@@ lua_str2number converts a string to a number.
-+*/
-+#define LUA_NUMBER_SCAN		"%lf"
-+#define LUA_NUMBER_FMT		"%.14g"
-+#define lua_number2str(s,n)	sprintf((s), LUA_NUMBER_FMT, (n))
-+#define LUAI_MAXNUMBER2STR	32 /* 16 digits, sign, point, and \0 */
-+#define lua_str2number(s,p)	strtod((s), (p))
-+
-+
-+/*
-+@@ The luai_num* macros define the primitive operations over numbers.
-+*/
-+#if defined(LUA_CORE)
-+#include <math.h>
-+#define luai_numadd(a,b)	((a)+(b))
-+#define luai_numsub(a,b)	((a)-(b))
-+#define luai_nummul(a,b)	((a)*(b))
-+#define luai_numdiv(a,b)	((a)/(b))
-+#define luai_nummod(a,b)	((a) - floor((a)/(b))*(b))
-+#define luai_numpow(a,b)	(pow(a,b))
-+#define luai_numunm(a)		(-(a))
-+#define luai_numeq(a,b)		((a)==(b))
-+#define luai_numlt(a,b)		((a)<(b))
-+#define luai_numle(a,b)		((a)<=(b))
-+#define luai_numisnan(a)	(!luai_numeq((a), (a)))
-+#endif
-+
-+
-+/*
-+@@ lua_number2int is a macro to convert lua_Number to int.
-+@@ lua_number2integer is a macro to convert lua_Number to lua_Integer.
-+** CHANGE them if you know a faster way to convert a lua_Number to
-+** int (with any rounding method and without throwing errors) in your
-+** system. In Pentium machines, a naive typecast from double to int
-+** in C is extremely slow, so any alternative is worth trying.
-+*/
-+
-+/* On a Pentium, resort to a trick */
-+#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \
-+    (defined(__i386) || defined (_M_IX86) || defined(__i386__))
-+
-+/* On a Microsoft compiler, use assembler */
-+#if defined(_MSC_VER)
-+
-+#define lua_number2int(i,d)   __asm fld d   __asm fistp i
-+#define lua_number2integer(i,n)		lua_number2int(i, n)
-+
-+/* the next trick should work on any Pentium, but sometimes clashes
-+   with a DirectX idiosyncrasy */
-+#else
-+
-+union luai_Cast { double l_d; long l_l; };
-+#define lua_number2int(i,d) \
-+  { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; }
-+#define lua_number2integer(i,n)		lua_number2int(i, n)
-+
-+#endif
-+
-+
-+/* this option always works, but may be slow */
-+#else
-+#define lua_number2int(i,d)	((i)=(int)(d))
-+#define lua_number2integer(i,d)	((i)=(lua_Integer)(d))
-+
-+#endif
-+
-+/* }================================================================== */
-+
-+
-+/*
-+@@ LUAI_USER_ALIGNMENT_T is a type that requires maximum alignment.
-+** CHANGE it if your system requires alignments larger than double. (For
-+** instance, if your system supports long doubles and they must be
-+** aligned in 16-byte boundaries, then you should add long double in the
-+** union.) Probably you do not need to change this.
-+*/
-+#define LUAI_USER_ALIGNMENT_T	union { double u; void *s; long l; }
-+
-+
-+/*
-+@@ LUAI_THROW/LUAI_TRY define how Lua does exception handling.
-+** CHANGE them if you prefer to use longjmp/setjmp even with C++
-+** or if want/don't to use _longjmp/_setjmp instead of regular
-+** longjmp/setjmp. By default, Lua handles errors with exceptions when
-+** compiling as C++ code, with _longjmp/_setjmp when asked to use them,
-+** and with longjmp/setjmp otherwise.
-+*/
-+#if defined(__cplusplus)
-+/* C++ exceptions */
-+#define LUAI_THROW(L,c)	throw(c)
-+#define LUAI_TRY(L,c,a)	try { a } catch(...) \
-+	{ if ((c)->status == 0) (c)->status = -1; }
-+#define luai_jmpbuf	int  /* dummy variable */
-+
-+#elif defined(LUA_USE_ULONGJMP)
-+/* in Unix, try _longjmp/_setjmp (more efficient) */
-+#define LUAI_THROW(L,c)	_longjmp((c)->b, 1)
-+#define LUAI_TRY(L,c,a)	if (_setjmp((c)->b) == 0) { a }
-+#define luai_jmpbuf	jmp_buf
-+
-+#else
-+/* default handling with long jumps */
-+#define LUAI_THROW(L,c)	longjmp((c)->b, 1)
-+#define LUAI_TRY(L,c,a)	if (setjmp((c)->b) == 0) { a }
-+#define luai_jmpbuf	jmp_buf
-+
-+#endif
-+
-+
-+/*
-+@@ LUA_MAXCAPTURES is the maximum number of captures that a pattern
-+@* can do during pattern-matching.
-+** CHANGE it if you need more captures. This limit is arbitrary.
-+*/
-+#define LUA_MAXCAPTURES		32
-+
-+
-+/*
-+@@ lua_tmpnam is the function that the OS library uses to create a
-+@* temporary name.
-+@@ LUA_TMPNAMBUFSIZE is the maximum size of a name created by lua_tmpnam.
-+** CHANGE them if you have an alternative to tmpnam (which is considered
-+** insecure) or if you want the original tmpnam anyway.  By default, Lua
-+** uses tmpnam except when POSIX is available, where it uses mkstemp.
-+*/
-+#if defined(loslib_c) || defined(luaall_c)
-+
-+#if defined(LUA_USE_MKSTEMP)
-+#include <unistd.h>
-+#define LUA_TMPNAMBUFSIZE	32
-+#define lua_tmpnam(b,e)	{ \
-+	strcpy(b, "/tmp/lua_XXXXXX"); \
-+	e = mkstemp(b); \
-+	if (e != -1) close(e); \
-+	e = (e == -1); }
-+
-+#else
-+#define LUA_TMPNAMBUFSIZE	L_tmpnam
-+#define lua_tmpnam(b,e)		{ e = (tmpnam(b) == NULL); }
-+#endif
-+
-+#endif
-+
-+
-+/*
-+@@ lua_popen spawns a new process connected to the current one through
-+@* the file streams.
-+** CHANGE it if you have a way to implement it in your system.
-+*/
-+#if defined(LUA_USE_POPEN)
-+
-+#define lua_popen(L,c,m)	((void)L, popen(c,m))
-+#define lua_pclose(L,file)	((void)L, (pclose(file) != -1))
-+
-+#elif defined(LUA_WIN)
-+
-+#define lua_popen(L,c,m)	((void)L, _popen(c,m))
-+#define lua_pclose(L,file)	((void)L, (_pclose(file) != -1))
-+
-+#else
-+
-+#define lua_popen(L,c,m)	((void)((void)c, m),  \
-+		luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0)
-+#define lua_pclose(L,file)		((void)((void)L, file), 0)
-+
-+#endif
-+
-+/*
-+@@ LUA_DL_* define which dynamic-library system Lua should use.
-+** CHANGE here if Lua has problems choosing the appropriate
-+** dynamic-library system for your platform (either Windows' DLL, Mac's
-+** dyld, or Unix's dlopen). If your system is some kind of Unix, there
-+** is a good chance that it has dlopen, so LUA_DL_DLOPEN will work for
-+** it.  To use dlopen you also need to adapt the src/Makefile (probably
-+** adding -ldl to the linker options), so Lua does not select it
-+** automatically.  (When you change the makefile to add -ldl, you must
-+** also add -DLUA_USE_DLOPEN.)
-+** If you do not want any kind of dynamic library, undefine all these
-+** options.
-+** By default, _WIN32 gets LUA_DL_DLL and MAC OS X gets LUA_DL_DYLD.
-+*/
-+#if defined(LUA_USE_DLOPEN)
-+#define LUA_DL_DLOPEN
-+#endif
-+
-+#if defined(LUA_WIN)
-+#define LUA_DL_DLL
-+#endif
-+
-+
-+/*
-+@@ LUAI_EXTRASPACE allows you to add user-specific data in a lua_State
-+@* (the data goes just *before* the lua_State pointer).
-+** CHANGE (define) this if you really need that. This value must be
-+** a multiple of the maximum alignment required for your machine.
-+*/
-+#define LUAI_EXTRASPACE		0
-+
-+
-+/*
-+@@ luai_userstate* allow user-specific actions on threads.
-+** CHANGE them if you defined LUAI_EXTRASPACE and need to do something
-+** extra when a thread is created/deleted/resumed/yielded.
-+*/
-+#define luai_userstateopen(L)		((void)L)
-+#define luai_userstateclose(L)		((void)L)
-+#define luai_userstatethread(L,L1)	((void)L)
-+#define luai_userstatefree(L)		((void)L)
-+#define luai_userstateresume(L,n)	((void)L)
-+#define luai_userstateyield(L,n)	((void)L)
-+
-+
-+/*
-+@@ LUA_INTFRMLEN is the length modifier for integer conversions
-+@* in 'string.format'.
-+@@ LUA_INTFRM_T is the integer type correspoding to the previous length
-+@* modifier.
-+** CHANGE them if your system supports long long or does not support long.
-+*/
-+
-+#if defined(LUA_USELONGLONG)
-+
-+#define LUA_INTFRMLEN		"ll"
-+#define LUA_INTFRM_T		long long
-+
-+#else
-+
-+#define LUA_INTFRMLEN		"l"
-+#define LUA_INTFRM_T		long
-+
-+#endif
-+
-+
-+
-+/* =================================================================== */
-+
-+/*
-+** Local configuration. You can use this space to add your redefinitions
-+** without modifying the main part of the file.
-+*/
-+
-+
-+
-+#endif
-+
diff --git a/patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff b/patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff
deleted file mode 100644
index 04cfb8a..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-autogen.sh.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: add autogen.sh
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch adds an autogen.sh script.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- autogen.sh |    5 +++++
- 1 file changed, 5 insertions(+)
-
-Index: lua-5.1.3/autogen.sh
-===================================================================
---- /dev/null
-+++ lua-5.1.3/autogen.sh
-@@ -0,0 +1,5 @@
-+#!/bin/sh
-+
-+autoreconf -fvi
-+
-+echo "Now run ./configure"
diff --git a/patches/lua-5.1.4/lua-5.1.3-automakize.diff b/patches/lua-5.1.4/lua-5.1.3-automakize.diff
deleted file mode 100644
index 7fa3814..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-automakize.diff
+++ /dev/null
@@ -1,111 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: add automake files
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch adds the automake files.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- Makefile.am      |    3 +++
- doc/Makefile.am  |    5 +++++
- etc/Makefile.am  |    8 ++++++++
- src/Makefile.am  |   45 +++++++++++++++++++++++++++++++++++++++++++++
- test/Makefile.am |    5 +++++
- 5 files changed, 66 insertions(+)
-
-Index: lua-5.1.3/doc/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/doc/Makefile.am
-@@ -0,0 +1,5 @@
-+man1_MANS = lua.1 luac.1
-+
-+EXTRA_DIST = \
-+	contents.html  lua.1   luac.html  lua.html     manual.html \
-+	logo.gif       luac.1  lua.css    readme.html
-Index: lua-5.1.3/etc/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/etc/Makefile.am
-@@ -0,0 +1,8 @@
-+include_HEADERS = lua.hpp
-+
-+pkgconfigdir = $(libdir)/pkgconfig
-+pkgconfig_DATA = lua.pc
-+
-+EXTRA_DIST = \
-+	all.c      lua.ico    lua.pc.in  noparser.c  strict.lua \
-+	luavs.bat  min.c      README
-Index: lua-5.1.3/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/Makefile.am
-@@ -0,0 +1,3 @@
-+SUBDIRS = src doc etc test
-+
-+EXTRA_DIST = autogen.sh COPYRIGHT HISTORY INSTALL README
-Index: lua-5.1.3/src/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/src/Makefile.am
-@@ -0,0 +1,45 @@
-+AM_CFLAGS = -Wall
-+
-+include_HEADERS = lua.h lualib.h lauxlib.h
-+nodist_include_HEADERS = luaconf.h
-+
-+lib_LTLIBRARIES = liblua.la
-+liblua_la_LDFLAGS = -release 5.1.3
-+liblua_la_SOURCES = \
-+	lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c \
-+	lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c  \
-+	lundump.c lvm.c lzio.c \
-+	lauxlib.c lbaselib.c ldblib.c liolib.c lmathlib.c loslib.c ltablib.c \
-+	lstrlib.c loadlib.c linit.c \
-+	lapi.h ldebug.h lgc.h lmem.h lparser.h ltable.h lzio.h ldo.h llex.h \
-+	lobject.h lstate.h ltm.h lundump.h lcode.h lfunc.h llimits.h lopcodes.h \
-+	lstring.h lvm.h
-+
-+bin_PROGRAMS = lua luac
-+
-+lua_SOURCES = lua.c
-+lua_LDADD = liblua.la @LUA_LIBS@
-+lua_DEPENDENCIES = liblua.la
-+
-+luac_SOURCES = luac.c print.c
-+luac_LDADD = liblua.la @LUA_LIBS@
-+luac_DEPENDENCIES = liblua.la
-+
-+# luac must be linked statically because it uses functions that
-+# don't get exported to the shared object
-+luac_LDFLAGS = -static
-+
-+EXTRA_DIST = luaconf.h.template.in
-+BUILT_SOURCES = luaconf.h
-+CLEANFILES = luaconf.h
-+
-+readline_defs = @READLINE_DEFS@
-+
-+edit = 	sed \
-+	  -e 's,%lua_datadir%,$(datadir),g' \
-+	  -e 's,%lua_libdir%,$(libdir),g'
-+
-+luaconf.h : luaconf.h.template
-+	rm -f luaconf.h luaconf.h.tmp
-+	$(edit) luaconf.h.template > luaconf.h.tmp
-+	mv luaconf.h.tmp luaconf.h
-Index: lua-5.1.3/test/Makefile.am
-===================================================================
---- /dev/null
-+++ lua-5.1.3/test/Makefile.am
-@@ -0,0 +1,5 @@
-+EXTRA_DIST = \
-+	bisect.lua  env.lua         fib.lua      life.lua          printf.lua \
-+	sieve.lua   trace-calls.lua cf.lua       factorial.lua     globals.lua \
-+	luac.lua    README          sort.lua     trace-globals.lua echo.lua \
-+	fibfor.lua  hello.lua       readonly.lua table.lua         xd.lua
diff --git a/patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff b/patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff
deleted file mode 100644
index 172e31e..0000000
--- a/patches/lua-5.1.4/lua-5.1.3-remove-Makefile.diff
+++ /dev/null
@@ -1,149 +0,0 @@
-Subject: Add lua support to ptxdist 1.99: remove old Makefile
-From: Erwin Rol <erwin@erwinrol.com>
-
-This patch add lua support to ptxdist 1.99. It has a menu entry under
-scripting languages. And a patch that makes it possible to use autoconf
-to build.
-
-This part of the patch removes the old Makefile.
-
-Signed-off-by: Erwin Rol <erwin@erwinrol.com>
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- Makefile |  128 ---------------------------------------------------------------
- 1 file changed, 128 deletions(-)
-
-Index: lua-5.1.4/Makefile
-===================================================================
---- lua-5.1.4.orig/Makefile
-+++ /dev/null
-@@ -1,128 +0,0 @@
--# makefile for installing Lua
--# see INSTALL for installation instructions
--# see src/Makefile and src/luaconf.h for further customization
--
--# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
--
--# Your platform. See PLATS for possible values.
--PLAT= none
--
--# Where to install. The installation starts in the src and doc directories,
--# so take care if INSTALL_TOP is not an absolute path.
--INSTALL_TOP= /usr/local
--INSTALL_BIN= $(INSTALL_TOP)/bin
--INSTALL_INC= $(INSTALL_TOP)/include
--INSTALL_LIB= $(INSTALL_TOP)/lib
--INSTALL_MAN= $(INSTALL_TOP)/man/man1
--#
--# You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with
--# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h (and also with etc/lua.pc).
--INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
--INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
--
--# How to install. If your install program does not support "-p", then you
--# may have to run ranlib on the installed liblua.a (do "make ranlib").
--INSTALL= install -p
--INSTALL_EXEC= $(INSTALL) -m 0755
--INSTALL_DATA= $(INSTALL) -m 0644
--#
--# If you don't have install you can use cp instead.
--# INSTALL= cp -p
--# INSTALL_EXEC= $(INSTALL)
--# INSTALL_DATA= $(INSTALL)
--
--# Utilities.
--MKDIR= mkdir -p
--RANLIB= ranlib
--
--# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
--
--# Convenience platforms targets.
--PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
--
--# What to install.
--TO_BIN= lua luac
--TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
--TO_LIB= liblua.a
--TO_MAN= lua.1 luac.1
--
--# Lua version and release.
--V= 5.1
--R= 5.1.4
--
--all:	$(PLAT)
--
--$(PLATS) clean:
--	cd src && $(MAKE) $@
--
--test:	dummy
--	src/lua test/hello.lua
--
--install: dummy
--	cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
--	cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
--	cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
--	cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
--	cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
--
--ranlib:
--	cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
--
--local:
--	$(MAKE) install INSTALL_TOP=..
--
--none:
--	@echo "Please do"
--	@echo "   make PLATFORM"
--	@echo "where PLATFORM is one of these:"
--	@echo "   $(PLATS)"
--	@echo "See INSTALL for complete instructions."
--
--# make may get confused with test/ and INSTALL in a case-insensitive OS
--dummy:
--
--# echo config parameters
--echo:
--	@echo ""
--	@echo "These are the parameters currently set in src/Makefile to build Lua $R:"
--	@echo ""
--	@cd src && $(MAKE) -s echo
--	@echo ""
--	@echo "These are the parameters currently set in Makefile to install Lua $R:"
--	@echo ""
--	@echo "PLAT = $(PLAT)"
--	@echo "INSTALL_TOP = $(INSTALL_TOP)"
--	@echo "INSTALL_BIN = $(INSTALL_BIN)"
--	@echo "INSTALL_INC = $(INSTALL_INC)"
--	@echo "INSTALL_LIB = $(INSTALL_LIB)"
--	@echo "INSTALL_MAN = $(INSTALL_MAN)"
--	@echo "INSTALL_LMOD = $(INSTALL_LMOD)"
--	@echo "INSTALL_CMOD = $(INSTALL_CMOD)"
--	@echo "INSTALL_EXEC = $(INSTALL_EXEC)"
--	@echo "INSTALL_DATA = $(INSTALL_DATA)"
--	@echo ""
--	@echo "See also src/luaconf.h ."
--	@echo ""
--
--# echo private config parameters
--pecho:
--	@echo "V = $(V)"
--	@echo "R = $(R)"
--	@echo "TO_BIN = $(TO_BIN)"
--	@echo "TO_INC = $(TO_INC)"
--	@echo "TO_LIB = $(TO_LIB)"
--	@echo "TO_MAN = $(TO_MAN)"
--
--# echo config parameters as Lua code
--# uncomment the last sed expression if you want nil instead of empty strings
--lecho:
--	@echo "-- installation parameters for Lua $R"
--	@echo "VERSION = '$V'"
--	@echo "RELEASE = '$R'"
--	@$(MAKE) echo | grep = | sed -e 's/= /= "/' -e 's/$$/"/' #-e 's/""/nil/'
--	@echo "-- EOF"
--
--# list targets that do not create files (but not all makes understand .PHONY)
--.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
--
--# (end of Makefile)
diff --git a/patches/lua-5.1.4/remove-Makefile.diff b/patches/lua-5.1.4/remove-Makefile.diff
new file mode 100644
index 0000000..172e31e
--- /dev/null
+++ b/patches/lua-5.1.4/remove-Makefile.diff
@@ -0,0 +1,149 @@
+Subject: Add lua support to ptxdist 1.99: remove old Makefile
+From: Erwin Rol <erwin@erwinrol.com>
+
+This patch add lua support to ptxdist 1.99. It has a menu entry under
+scripting languages. And a patch that makes it possible to use autoconf
+to build.
+
+This part of the patch removes the old Makefile.
+
+Signed-off-by: Erwin Rol <erwin@erwinrol.com>
+Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
+
+---
+ Makefile |  128 ---------------------------------------------------------------
+ 1 file changed, 128 deletions(-)
+
+Index: lua-5.1.4/Makefile
+===================================================================
+--- lua-5.1.4.orig/Makefile
++++ /dev/null
+@@ -1,128 +0,0 @@
+-# makefile for installing Lua
+-# see INSTALL for installation instructions
+-# see src/Makefile and src/luaconf.h for further customization
+-
+-# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
+-
+-# Your platform. See PLATS for possible values.
+-PLAT= none
+-
+-# Where to install. The installation starts in the src and doc directories,
+-# so take care if INSTALL_TOP is not an absolute path.
+-INSTALL_TOP= /usr/local
+-INSTALL_BIN= $(INSTALL_TOP)/bin
+-INSTALL_INC= $(INSTALL_TOP)/include
+-INSTALL_LIB= $(INSTALL_TOP)/lib
+-INSTALL_MAN= $(INSTALL_TOP)/man/man1
+-#
+-# You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with
+-# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h (and also with etc/lua.pc).
+-INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
+-INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
+-
+-# How to install. If your install program does not support "-p", then you
+-# may have to run ranlib on the installed liblua.a (do "make ranlib").
+-INSTALL= install -p
+-INSTALL_EXEC= $(INSTALL) -m 0755
+-INSTALL_DATA= $(INSTALL) -m 0644
+-#
+-# If you don't have install you can use cp instead.
+-# INSTALL= cp -p
+-# INSTALL_EXEC= $(INSTALL)
+-# INSTALL_DATA= $(INSTALL)
+-
+-# Utilities.
+-MKDIR= mkdir -p
+-RANLIB= ranlib
+-
+-# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+-
+-# Convenience platforms targets.
+-PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+-
+-# What to install.
+-TO_BIN= lua luac
+-TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
+-TO_LIB= liblua.a
+-TO_MAN= lua.1 luac.1
+-
+-# Lua version and release.
+-V= 5.1
+-R= 5.1.4
+-
+-all:	$(PLAT)
+-
+-$(PLATS) clean:
+-	cd src && $(MAKE) $@
+-
+-test:	dummy
+-	src/lua test/hello.lua
+-
+-install: dummy
+-	cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
+-	cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
+-	cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
+-	cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
+-	cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
+-
+-ranlib:
+-	cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
+-
+-local:
+-	$(MAKE) install INSTALL_TOP=..
+-
+-none:
+-	@echo "Please do"
+-	@echo "   make PLATFORM"
+-	@echo "where PLATFORM is one of these:"
+-	@echo "   $(PLATS)"
+-	@echo "See INSTALL for complete instructions."
+-
+-# make may get confused with test/ and INSTALL in a case-insensitive OS
+-dummy:
+-
+-# echo config parameters
+-echo:
+-	@echo ""
+-	@echo "These are the parameters currently set in src/Makefile to build Lua $R:"
+-	@echo ""
+-	@cd src && $(MAKE) -s echo
+-	@echo ""
+-	@echo "These are the parameters currently set in Makefile to install Lua $R:"
+-	@echo ""
+-	@echo "PLAT = $(PLAT)"
+-	@echo "INSTALL_TOP = $(INSTALL_TOP)"
+-	@echo "INSTALL_BIN = $(INSTALL_BIN)"
+-	@echo "INSTALL_INC = $(INSTALL_INC)"
+-	@echo "INSTALL_LIB = $(INSTALL_LIB)"
+-	@echo "INSTALL_MAN = $(INSTALL_MAN)"
+-	@echo "INSTALL_LMOD = $(INSTALL_LMOD)"
+-	@echo "INSTALL_CMOD = $(INSTALL_CMOD)"
+-	@echo "INSTALL_EXEC = $(INSTALL_EXEC)"
+-	@echo "INSTALL_DATA = $(INSTALL_DATA)"
+-	@echo ""
+-	@echo "See also src/luaconf.h ."
+-	@echo ""
+-
+-# echo private config parameters
+-pecho:
+-	@echo "V = $(V)"
+-	@echo "R = $(R)"
+-	@echo "TO_BIN = $(TO_BIN)"
+-	@echo "TO_INC = $(TO_INC)"
+-	@echo "TO_LIB = $(TO_LIB)"
+-	@echo "TO_MAN = $(TO_MAN)"
+-
+-# echo config parameters as Lua code
+-# uncomment the last sed expression if you want nil instead of empty strings
+-lecho:
+-	@echo "-- installation parameters for Lua $R"
+-	@echo "VERSION = '$V'"
+-	@echo "RELEASE = '$R'"
+-	@$(MAKE) echo | grep = | sed -e 's/= /= "/' -e 's/$$/"/' #-e 's/""/nil/'
+-	@echo "-- EOF"
+-
+-# list targets that do not create files (but not all makes understand .PHONY)
+-.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
+-
+-# (end of Makefile)
diff --git a/patches/lua-5.1.4/series b/patches/lua-5.1.4/series
index eccc62a..2c51e37 100644
--- a/patches/lua-5.1.4/series
+++ b/patches/lua-5.1.4/series
@@ -1,4 +1,3 @@
-lua-5.1.3-remove-Makefile.diff
-lua-5.1.3-autoconfize.diff
-lua-5.1.3-automakize.diff
-lua-5.1.3-autogen.sh.diff
+remove-Makefile.diff
+autoconfize.diff
+automakize.diff
diff --git a/rules/lua.make b/rules/lua.make
index 19bb1c5..56c7918 100644
--- a/rules/lua.make
+++ b/rules/lua.make
@@ -60,7 +60,7 @@ ifdef PTXCONF_LUA_INSTALL_LUAC
 	@$(call install_copy, lua, 0, 0, 0755, -, /usr/bin/luac)
 endif
 ifdef PTXCONF_LUA_INSTALL_LIBLUA
-	@$(call install_lib, lua, 0, 0, 0644, liblua-5.1.3)
+	@$(call install_lib, lua, 0, 0, 0644, liblua-$(LUA_VERSION))
 endif
 	@$(call install_finish, lua)
 
-- 
1.7.2.5


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ptxdist] [PATCH 4/4] lua: update to the latest bugfix patch
  2011-12-08 15:46         ` Michael Olbrich
                             ` (2 preceding siblings ...)
  2011-12-08 16:26           ` [ptxdist] [PATCH 3/4] lua: Correct implementation for version 5.1.4 Benoît Burnichon
@ 2011-12-08 16:26           ` Benoît Burnichon
  3 siblings, 0 replies; 11+ messages in thread
From: Benoît Burnichon @ 2011-12-08 16:26 UTC (permalink / raw)
  To: ptxdist

Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
---
 ...ly-crafted-precompiled-code-can-crash-Lua.patch |   11 +++
 ...ble-to-create-functions-that-return-too-m.patch |   12 +++
 ...generation-for-some-particular-boolean-ex.patch |   72 ++++++++++++++++++++
 ...le-may-invalidate-a-reference-to-a-table-.patch |   51 ++++++++++++++
 ...nv-does-not-check-whether-it-has-an-argum.patch |   32 +++++++++
 ...stuck-during-parsing-and-avoids-proper-re.patch |   34 +++++++++
 ...at-may-get-buffer-as-an-argument-when-the.patch |   44 ++++++++++++
 ...n-may-return-garbage-if-second-read-fails.patch |   37 ++++++++++
 ...generation-for-some-particular-boolean-ex.patch |   55 +++++++++++++++
 ...metamethod-may-not-work-if-metatable-is-i.patch |   36 ++++++++++
 ...may-collect-a-prototype-while-building-it.patch |   31 +++++++++
 patches/lua-5.1.4/series                           |   11 +++
 12 files changed, 426 insertions(+), 0 deletions(-)
 create mode 100644 patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
 create mode 100644 patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
 create mode 100644 patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
 create mode 100644 patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
 create mode 100644 patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
 create mode 100644 patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
 create mode 100644 patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
 create mode 100644 patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
 create mode 100644 patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
 create mode 100644 patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
 create mode 100644 patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch

diff --git a/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch b/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
new file mode 100644
index 0000000..afd36d2
--- /dev/null
+++ b/patches/lua-5.1.4/0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
@@ -0,0 +1,11 @@
+From 293f82d33cd67b7f48e078788af6a4b2887c16bf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:05:35 +0100
+Subject: [PATCH 01/11] Maliciously crafted precompiled code can crash Lua
+
+Comes from http://www.lua.org/bugs.html#5.1.4-1
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
diff --git a/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch b/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
new file mode 100644
index 0000000..428dcfd
--- /dev/null
+++ b/patches/lua-5.1.4/0002-It-is-possible-to-create-functions-that-return-too-m.patch
@@ -0,0 +1,12 @@
+From e5973b1ca3ad83d500f0c85abb78b2a0bf5fbdc5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:07:18 +0100
+Subject: [PATCH 02/11] It is possible to create functions that return too many arguments and
+ overflow the stack of C functions.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-2
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
diff --git a/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch b/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
new file mode 100644
index 0000000..8942587
--- /dev/null
+++ b/patches/lua-5.1.4/0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
@@ -0,0 +1,72 @@
+From b40f5fc4341153fc53fa2d0e839223944b022e6e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:10:56 +0100
+Subject: [PATCH 03/11] Wrong code generation for some particular boolean expressions. (see also
+ 9)
+
+Comes from http://www.lua.org/bugs.html#5.1.4-3
+
+ reported by Brian Kelley on 15 Apr 2009.
+ Example:
+ --
+ print(((1 or false) and true) or false)   --> 1, but should be 'true'
+ --
+
+Patch: (partial solution; see also 9)
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
+diff --git a/src/lcode.c b/src/lcode.c
+index cff626b..84f286b 100644
+--- a/src/lcode.c
++++ b/src/lcode.c
+@@ -544,15 +544,18 @@ void luaK_goiftrue (FuncState *fs, expdesc *e) {
+       pc = NO_JUMP;  /* always true; do nothing */
+       break;
+     }
+-    case VFALSE: {
+-      pc = luaK_jump(fs);  /* always jump */
+-      break;
+-    }
+     case VJMP: {
+       invertjump(fs, e);
+       pc = e->u.s.info;
+       break;
+     }
++    case VFALSE: {
++      if (!hasjumps(e)) {
++        pc = luaK_jump(fs);  /* always jump */
++        break;
++      }
++      /* else go through */
++    }
+     default: {
+       pc = jumponcond(fs, e, 0);
+       break;
+@@ -572,14 +575,17 @@ static void luaK_goiffalse (FuncState *fs, expdesc *e) {
+       pc = NO_JUMP;  /* always false; do nothing */
+       break;
+     }
+-    case VTRUE: {
+-      pc = luaK_jump(fs);  /* always jump */
+-      break;
+-    }
+     case VJMP: {
+       pc = e->u.s.info;
+       break;
+     }
++    case VTRUE: {
++      if (!hasjumps(e)) {
++        pc = luaK_jump(fs);  /* always jump */
++        break;
++      }
++      /* else go through */
++    }
+     default: {
+       pc = jumponcond(fs, e, 1);
+       break;
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch b/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
new file mode 100644
index 0000000..7fa62f8
--- /dev/null
+++ b/patches/lua-5.1.4/0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
@@ -0,0 +1,51 @@
+From 41f746c9be4330bac1466ab994f147aeef88675d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:13:59 +0100
+Subject: [PATCH 04/11] luaV_settable may invalidate a reference to a table and try to reuse it
+
+Comes from http://www.lua.org/bugs.html#5.1.4-4
+
+reported by Mark Feldman on 27 Jun 2009.
+Example:
+ --
+ grandparent = {}
+ grandparent.__newindex = function(s,_,_) print(s) end
+ 
+ parent = {}
+ parent.__newindex = parent
+ setmetatable(parent, grandparent)
+ 
+ child = setmetatable({}, parent)
+ child.foo = 10      --> (crash on some machines)
+ --
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
+diff --git a/src/lvm.c b/src/lvm.c
+index ee3256a..4ac2e71 100644
+--- a/src/lvm.c
++++ b/src/lvm.c
+@@ -133,6 +133,7 @@ void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+ 
+ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+   int loop;
++  TValue temp;
+   for (loop = 0; loop < MAXTAGLOOP; loop++) {
+     const TValue *tm;
+     if (ttistable(t)) {  /* `t' is a table? */
+@@ -152,7 +153,9 @@ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+       callTM(L, tm, t, key, val);
+       return;
+     }
+-    t = tm;  /* else repeat with `tm' */ 
++    /* else repeat with `tm' */
++    setobj(L, &temp, tm);  /* avoid pointing inside table (may rehash) */
++    t = &temp;
+   }
+   luaG_runerror(L, "loop in settable");
+ }
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch b/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
new file mode 100644
index 0000000..02052fd
--- /dev/null
+++ b/patches/lua-5.1.4/0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
@@ -0,0 +1,32 @@
+From a0e82265587327b15635b61517601cb7c74de07e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:18:20 +0100
+Subject: [PATCH 05/11] debug.getfenv does not check whether it has an argument.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-5
+
+reported by Patrick Donnelly on 30 Jul 2009.
+Example:
+ --
+ debug.getfenv()   -- should raise an error
+ --
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
+diff --git a/src/ldblib.c b/src/ldblib.c
+index 67de122..21116ac 100644
+--- a/src/ldblib.c
++++ b/src/ldblib.c
+@@ -45,6 +45,7 @@ static int db_setmetatable (lua_State *L) {
+ 
+ 
+ static int db_getfenv (lua_State *L) {
++  luaL_checkany(L, 1);
+   lua_getfenv(L, 1);
+   return 1;
+ }
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch b/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
new file mode 100644
index 0000000..841a917
--- /dev/null
+++ b/patches/lua-5.1.4/0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
@@ -0,0 +1,34 @@
+From 4a37f37706e3f89d379a827c8da646d34d136c3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:20:15 +0100
+Subject: [PATCH 06/11] GC may get stuck during parsing and avoids proper resizing of the string
+ table, making its lists grow too much and degrading performance.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-6
+
+ reported by Sean Conner on 10 Nov 2009.
+
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
+diff --git a/src/llex.c b/src/llex.c
+index 6dc3193..92d6575 100644
+--- a/src/llex.c
++++ b/src/llex.c
+@@ -118,8 +118,10 @@ TString *luaX_newstring (LexState *ls, const char *str, size_t l) {
+   lua_State *L = ls->L;
+   TString *ts = luaS_newlstr(L, str, l);
+   TValue *o = luaH_setstr(L, ls->fs->h, ts);  /* entry for `str' */
+-  if (ttisnil(o))
++  if (ttisnil(o)) {
+     setbvalue(o, 1);  /* make sure `str' will not be collected */
++    luaC_checkGC(L);
++  }
+   return ts;
+ }
+ 
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch b/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
new file mode 100644
index 0000000..122528e
--- /dev/null
+++ b/patches/lua-5.1.4/0007-string.format-may-get-buffer-as-an-argument-when-the.patch
@@ -0,0 +1,44 @@
+From ce47c22d52dcc4996c03e073ddf94398aa42411e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:21:46 +0100
+Subject: [PATCH 07/11] string.format may get buffer as an argument when there are missing
+ arguments and format string is too long.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-7
+
+reported by Roberto on 12 Apr 2010.
+Example:
+ --
+ x = string.rep("x", 10000) .. "%d"
+ print(string.format(x))    -- gives wrong error message
+ --
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
+diff --git a/src/lstrlib.c b/src/lstrlib.c
+index 1b4763d..fe452ce 100644
+--- a/src/lstrlib.c
++++ b/src/lstrlib.c
+@@ -754,6 +754,7 @@ static void addintlen (char *form) {
+ 
+ 
+ static int str_format (lua_State *L) {
++  int top = lua_gettop(L);
+   int arg = 1;
+   size_t sfl;
+   const char *strfrmt = luaL_checklstring(L, arg, &sfl);
+@@ -768,7 +769,8 @@ static int str_format (lua_State *L) {
+     else { /* format item */
+       char form[MAX_FORMAT];  /* to store the format (`%...') */
+       char buff[MAX_ITEM];  /* to store the formatted item */
+-      arg++;
++      if (++arg > top)
++        luaL_argerror(L, arg, "no value");
+       strfrmt = scanformat(L, strfrmt, form);
+       switch (*strfrmt++) {
+         case 'c': {
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch b/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
new file mode 100644
index 0000000..080c18f
--- /dev/null
+++ b/patches/lua-5.1.4/0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
@@ -0,0 +1,37 @@
+From 224bbe29a295851544712b4470f7a48f338cddaa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:23:53 +0100
+Subject: [PATCH 08/11] io.read("*n", "*n") may return garbage if second read fails.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-8
+
+reported by Roberto on 12 Apr 2010.
+Example:
+ --
+ print(io.read("*n", "*n"))   --<< enter "10   hi"
+ --> file (0x884420)	nil
+ --
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
+diff --git a/src/liolib.c b/src/liolib.c
+index e79ed1c..8de2547 100644
+--- a/src/liolib.c
++++ b/src/liolib.c
+@@ -276,7 +276,10 @@ static int read_number (lua_State *L, FILE *f) {
+     lua_pushnumber(L, d);
+     return 1;
+   }
+-  else return 0;  /* read fails */
++  else {
++    lua_pushnil(L);  /* "result" to be removed */
++    return 0;  /* read fails */
++  }
+ }
+ 
+ 
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch b/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
new file mode 100644
index 0000000..0ebb3d7
--- /dev/null
+++ b/patches/lua-5.1.4/0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
@@ -0,0 +1,55 @@
+From 14c92823c5877a458ddcfa2c90d0b03ea873baa3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:25:18 +0100
+Subject: [PATCH 09/11] Wrong code generation for some particular boolean expressions.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-9
+
+reported by Thierry Van Elsuwe on 20 Jan 2011.
+Example:
+ --
+ print((('hi' or true) and true) or true)
+ --> hi     (should be true)
+ print(((nil and nil) or false) and true)
+ --> nil    (should be false)
+ --
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
+diff --git a/src/lcode.c b/src/lcode.c
+index 84f286b..c13066e 100644
+--- a/src/lcode.c
++++ b/src/lcode.c
+@@ -549,13 +549,6 @@ void luaK_goiftrue (FuncState *fs, expdesc *e) {
+       pc = e->u.s.info;
+       break;
+     }
+-    case VFALSE: {
+-      if (!hasjumps(e)) {
+-        pc = luaK_jump(fs);  /* always jump */
+-        break;
+-      }
+-      /* else go through */
+-    }
+     default: {
+       pc = jumponcond(fs, e, 0);
+       break;
+@@ -579,13 +572,6 @@ static void luaK_goiffalse (FuncState *fs, expdesc *e) {
+       pc = e->u.s.info;
+       break;
+     }
+-    case VTRUE: {
+-      if (!hasjumps(e)) {
+-        pc = luaK_jump(fs);  /* always jump */
+-        break;
+-      }
+-      /* else go through */
+-    }
+     default: {
+       pc = jumponcond(fs, e, 1);
+       break;
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch b/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
new file mode 100644
index 0000000..c6ce001
--- /dev/null
+++ b/patches/lua-5.1.4/0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
@@ -0,0 +1,36 @@
+From 81ff350a91cb1c248e96366eed3049386c5f2cba Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:27:04 +0100
+Subject: [PATCH 10/11] __newindex metamethod may not work if metatable is its own metatable.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-10
+
+reported by Cuero Bugot on 09 Aug 2011.
+Example:
+ --
+ meta={}
+ setmetatable(meta, meta)
+ meta.__newindex = function(t, key, value) print("set") end
+ o = setmetatable({}, meta)
+ o.x = 10    -- should print 'set'
+ --
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
+diff --git a/src/lvm.c b/src/lvm.c
+index 4ac2e71..ca7bea0 100644
+--- a/src/lvm.c
++++ b/src/lvm.c
+@@ -142,6 +142,7 @@ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) {
+       if (!ttisnil(oldval) ||  /* result is no nil? */
+           (tm = fasttm(L, h->metatable, TM_NEWINDEX)) == NULL) { /* or no TM? */
+         setobj2t(L, oldval, val);
++        h->flags = 0;
+         luaC_barriert(L, h, val);
+         return;
+       }
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch b/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch
new file mode 100644
index 0000000..e3785c9
--- /dev/null
+++ b/patches/lua-5.1.4/0011-Parser-may-collect-a-prototype-while-building-it.patch
@@ -0,0 +1,31 @@
+From 23449ee61f062a18926f11a216f9906155f259b9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= <benoit.burnichon@airtag.com>
+Date: Tue, 6 Dec 2011 14:28:19 +0100
+Subject: [PATCH 11/11] Parser may collect a prototype while building it.
+
+Comes from http://www.lua.org/bugs.html#5.1.4-11
+
+reported by Ingo van Lil on 13 Oct 2011.
+
+Signed-off-by: Benoît Burnichon <benoit.burnichon@airtag.com>
+
+---
+
+diff --git a/src/lparser.c b/src/lparser.c
+index 1e2a9a8..a2721d2 100644
+--- a/src/lparser.c
++++ b/src/lparser.c
+@@ -374,9 +374,9 @@ static void close_func (LexState *ls) {
+   lua_assert(luaG_checkcode(f));
+   lua_assert(fs->bl == NULL);
+   ls->fs = fs->prev;
+-  L->top -= 2;  /* remove table and prototype from the stack */
+   /* last token read was anchored in defunct function; must reanchor it */
+   if (fs) anchor_token(ls);
++  L->top -= 2;  /* remove table and prototype from the stack */
+ }
+ 
+ 
+-- 
+1.7.2.5
+
diff --git a/patches/lua-5.1.4/series b/patches/lua-5.1.4/series
index 2c51e37..5f3e6b4 100644
--- a/patches/lua-5.1.4/series
+++ b/patches/lua-5.1.4/series
@@ -1,3 +1,14 @@
 remove-Makefile.diff
 autoconfize.diff
 automakize.diff
+#0001-Maliciously-crafted-precompiled-code-can-crash-Lua.patch
+#0002-It-is-possible-to-create-functions-that-return-too-m.patch
+0003-Wrong-code-generation-for-some-particular-boolean-ex.patch
+0004-luaV_settable-may-invalidate-a-reference-to-a-table-.patch
+0005-debug.getfenv-does-not-check-whether-it-has-an-argum.patch
+0006-GC-may-get-stuck-during-parsing-and-avoids-proper-re.patch
+0007-string.format-may-get-buffer-as-an-argument-when-the.patch
+0008-io.read-n-n-may-return-garbage-if-second-read-fails.patch
+0009-Wrong-code-generation-for-some-particular-boolean-ex.patch
+0010-__newindex-metamethod-may-not-work-if-metatable-is-i.patch
+0011-Parser-may-collect-a-prototype-while-building-it.patch
-- 
1.7.2.5


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2011-12-08 16:26 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-07 16:02 [ptxdist] [PATCH 1/2] lua: Correct implementation for version 5.1.4 Benoît BURNICHON
2011-12-07 16:55 ` Michael Olbrich
2011-12-07 17:08   ` Benoît BURNICHON
2011-12-08 11:22     ` Michael Olbrich
2011-12-08 15:13       ` [ptxdist] [PATCH] lua: update to the latest bugfix patch Benoît Burnichon
2011-12-08 15:46         ` Michael Olbrich
2011-12-08 16:26           ` [ptxdist] [PATCH 1/4] xmlrpc-c: fix location url Benoît Burnichon
2011-12-08 16:26           ` [ptxdist] [PATCH 2/4] php5: add some functionalities (curl, xmlrpc, zlib) Benoît Burnichon
2011-12-08 16:26           ` [ptxdist] [PATCH 3/4] lua: Correct implementation for version 5.1.4 Benoît Burnichon
2011-12-08 16:26           ` [ptxdist] [PATCH 4/4] lua: update to the latest bugfix patch Benoît Burnichon
2011-12-08 11:36     ` [ptxdist] [PATCH 1/2] lua: Correct implementation for version 5.1.4 Michael Olbrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox