TS-1926 Change Lua detection to look for lua_getfenv(), which is not available in Lua v5.2 and later (and our code needs it, for now).
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/912e8c11 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/912e8c11 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/912e8c11 Branch: refs/heads/3.3.x Commit: 912e8c118bdc62cccb20efa88f38081cc689ef66 Parents: 8ae414a Author: Leif Hedstrom <[email protected]> Authored: Thu May 30 15:37:50 2013 -0600 Committer: Leif Hedstrom <[email protected]> Committed: Thu May 30 15:38:31 2013 -0600 ---------------------------------------------------------------------- CHANGES | 3 +++ build/lua.m4 | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/912e8c11/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index 6301906..127f637 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache Traffic Server 3.3.3 + *) [TS-1926] Require Lua v5.1, by checking for lua_getfenv(). This is + necessary since we are incompatible with Lua v5.2 (for now). + *) [TS-1921] Fix reclaimable freelist getting stuck in infinite loop. Author: Yunkai Zhang <[email protected]> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/912e8c11/build/lua.m4 ---------------------------------------------------------------------- diff --git a/build/lua.m4 b/build/lua.m4 index 0ac7244..8d83b13 100644 --- a/build/lua.m4 +++ b/build/lua.m4 @@ -36,6 +36,12 @@ else test_paths="${lua_path}" fi +dnl +dnl Note that we check for the existence of lua_getfenv (used to be +dnl luaL_newstate). This is because Lua v5.2 and later deprecates +dnl lua_getfenv() because of changes in how environements are handled. +dnl Also see: https://issues.apache.org/jira/browse/TS-1931 +dnl AC_CHECK_LIB(m, pow, lib_m="-lm") AC_CHECK_LIB(m, sqrt, lib_m="-lm") for x in $test_paths ; do @@ -45,13 +51,13 @@ for x in $test_paths ; do save_LDFLAGS=$LDFLAGS CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS $lib_m" - AC_CHECK_LIB(lua5.1, luaL_newstate, [ + AC_CHECK_LIB(lua5.1, lua_getfenv, [ LUA_LIBS="-llua5.1 $lib_m" ],[ - AC_CHECK_LIB(lua-5.1, luaL_newstate, [ + AC_CHECK_LIB(lua-5.1, lua_getfenv, [ LUA_LIBS="-llua-5.1 $lib_m" ],[ - AC_CHECK_LIB(lua, luaL_newstate, [ + AC_CHECK_LIB(lua, lua_getfenv, [ LUA_LIBS="-llua $lib_m" ]) ]) @@ -69,7 +75,7 @@ for x in $test_paths ; do save_LDFLAGS=$LDFLAGS CFLAGS="$CFLAGS" LDFLAGS="-L$x/lib $LDFLAGS $lib_m" - AC_CHECK_LIB(lua5.1, luaL_newstate, [ + AC_CHECK_LIB(lua5.1, lua_getfenv, [ LUA_LIBS="-L$x/lib -llua5.1 $lib_m" LUA_CFLAGS="-I$x/include/lua5.1" ]) @@ -86,7 +92,7 @@ for x in $test_paths ; do save_LDFLAGS=$LDFLAGS CFLAGS="$CFLAGS" LDFLAGS="-L$x/lib/lua51 $LDFLAGS $lib_m" - AC_CHECK_LIB(lua, luaL_newstate, [ + AC_CHECK_LIB(lua, lua_getfenv, [ LUA_LIBS="-L$x/lib/lua51 -llua $lib_m" LUA_CFLAGS="-I$x/include/lua51" ]) @@ -103,7 +109,7 @@ for x in $test_paths ; do save_LDFLAGS=$LDFLAGS CFLAGS="$CFLAGS" LDFLAGS="-L$x/lib $LDFLAGS $lib_m" - AC_CHECK_LIB(lua, luaL_newstate, [ + AC_CHECK_LIB(lua, lua_getfenv, [ LUA_LIBS="-L$x/lib -llua $lib_m" LUA_CFLAGS="-I$x/include" ])
