From 00949c61e368bf6b72d56299a95c2d8bcaa9ee1d Mon Sep 17 00:00:00 2001 From: Jacob Champion Date: Mon, 6 Mar 2017 19:49:23 +0000 Subject: [PATCH] configure: check for luaL_register in liblua This is a temporary workaround for a missing compatibility API on Debian-like systems (and anyone else who doesn't compile with LUA_COMPAT_MODULE). Ignore any such libraries so we don't fail confusingly later. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1785753 13f79535-47bb-0310-9956-ffa450edef68 --- modules/lua/config.m4 | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/modules/lua/config.m4 b/modules/lua/config.m4 index b22e6134ad..1c20bee63f 100644 --- a/modules/lua/config.m4 +++ b/modules/lua/config.m4 @@ -12,20 +12,51 @@ AC_DEFUN([CHECK_LUA_PATH], [dnl AC_MSG_CHECKING([for lua.h in $1/$2]) if test -f $1/$2/lua.h; then AC_MSG_RESULT([yes]) + save_CFLAGS=$CFLAGS save_LDFLAGS=$LDFLAGS + save_LIBS=$LIBS + CFLAGS="$CFLAGS" LDFLAGS="-L$1/$3 $LDFLAGS $lib_m" + AC_CHECK_LIB($4, luaL_newstate, [ - LUA_LIBS="-L$1/$3 -l$4 $lib_m" - if test "x$ap_platform_runtime_link_flag" != "x"; then - APR_ADDTO(LUA_LIBS, [$ap_platform_runtime_link_flag$1/$3]) - fi - LUA_CFLAGS="-I$1/$2" + dnl mod_lua relies on some compatibility APIs to function. + AC_MSG_CHECKING([for luaL_register in -l$4]) + CFLAGS="$CFLAGS -I$1/$2" + LIBS="-l$4" + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + #define LUA_COMPAT_ALL + #define LUA_COMPAT_5_2 + #define LUA_COMPAT_5_1 + #define LUA_COMPAT_MODULE + + #include + #include + ]], [[ + /* This isn't a valid call, but we're testing linkability */ + luaL_register(NULL, NULL, NULL); + ]]) + ], [ + AC_MSG_RESULT([yes]) + LUA_LIBS="-L$1/$3 -l$4 $lib_m" + if test "x$ap_platform_runtime_link_flag" != "x"; then + APR_ADDTO(LUA_LIBS, [$ap_platform_runtime_link_flag$1/$3]) + fi + LUA_CFLAGS="-I$1/$2" + ], [ + AC_MSG_RESULT([no]) ]) + ]) + CFLAGS=$save_CFLAGS LDFLAGS=$save_LDFLAGS - break + LIBS=$save_LIBS + + if test -n "${LUA_LIBS}"; then + break + fi else AC_MSG_RESULT([no]) fi -- 2.50.1