Description
I'm trying to configure and build ngx_lua with ./configure --with-compat --add-dynamic-module=../lua-nginx-module-0.10.16rc4/
, but it is unable to automatically find LuaJIT, and fails the LuaJIT 2.x check with error: unsupported LuaJIT version; ngx_http_lua_module requires LuaJIT 2.x.
.
It seems like it's not running any of the "auto-discovery" checks, which I believe is because $ngx_found is still "yes" from the previous check. This can be fixed by removing the if statement around the first check in that else block, "LuaJIT library in /usr/local/", or explicitly setting $ngx_found to no.
Even with that change, it passes the first check, even though LuaJIT is installed in /usr/
, not /usr/local/
. I don't think it ever checks if the LuaJIT libraries exist in the paths. This is true when LUAJIT_LIB
and LUAJIT_INC
were provided explicitly as well, with paths that do not exist:
configuring additional dynamic modules
adding module in ../lua-nginx-module-0.10.16rc4/
checking for LuaJIT library in /dkfjd and /asdfdsf (specified by the LUAJIT_LIB and LUAJIT_INC env, with -ldl) ... found
checking for LuaJIT 2.x ... not found
./configure: error: unsupported LuaJIT version; ngx_http_lua_module requires LuaJIT 2.x.
or compiling as a standard (not dynamic) module with LUAJIT_INC=/asdfdsf LUAJIT_LIB=/dkfjd ./configure --with-ld-opt="-Wl,-rpath,/usr/lib" --add-module=../lua-nginx-module-0.10.16rc4/
:
configuring additional modules
adding module in ../lua-nginx-module-0.10.16rc4/
checking for LuaJIT library in /dkfjd and /asdfdsf (specified by the LUAJIT_LIB and LUAJIT_INC env, with -ldl) ... found
checking for LuaJIT 2.x ... not found
./configure: error: unsupported LuaJIT version; ngx_http_lua_module requires LuaJIT 2.x.
I fixed this by changing line 7 from ngx_feature_incs=
to ngx_feature_incs="#include <lauxlib.h>"
, which I believe was removed in a96e99a and added it back like it is now in 315330a.
Looking at the ngx_feature_libs in the explicit section, it also appears that the ones in the auto discovery section should have -L/usr/local/include/luajit-2.0
/ -L/usr/include/luajit-2.0
instead of -L/usr/local/lib
/ -L/usr/lib
It also doesn't automatically check for LuaJIT 2.1 at all.
Build Environment:
ngx_lua v0.10.16rc4
nginx 1.17.9
luajit 2.0.5-2 (I have also tried luajit 2.1 0ad60cc and openresty/luajit2@38cb695, with the same results)
gcc 9.2.1 20200130