On 25 October 2013 04:02, <p...@pjb.com.au> wrote: > Greetings, > > Hisham wrote: >> I made one small change, though: your rock is lua >= 5.1, but you >> were depending on a version of lgdbm that's 5.2-only. I changed >> it to "lgdbm >= 20130702"; this will work on both Lua 5.1 and 5.2. > > Thank you! I've changed it at source. It still doesn't quite work > for me, though, I'm probably doing something silly: my setup is > 5.1 in /usr/bin and 5.2 in /usr/local/bin ... > > # luarocks --version > /usr/local/bin/luarocks 2.1.0 > LuaRocks main command-line interface > # /usr/bin/lua -v > Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio > # /usr/local/bin/lua -v > Lua 5.2.1 Copyright (C) 1994-2012 Lua.org, PUC-Rio > > OK; 5.2 works fine. But now for 5.1, first I clean up ... > > box8:~# /usr/bin/lua /usr/local/bin/luarocks remove commandlineui > ... Removal successful. > box8:~# /usr/bin/lua /usr/local/bin/luarocks remove lgdbm > ... Removal successful. > > OK, now we install for 5.1 ... > > box8:~# /usr/bin/lua /usr/local/bin/luarocks install commandlineui > GDBM_LIBDIR=/usr/lib/i386-linux-gnu/ > Installing > http://www.luarocks.org/repositories/rocks/commandlineui-1.70-1.src.rock... > Using > http://www.luarocks.org/repositories/rocks/commandlineui-1.70-1.src.rock... > switching to 'build' mode > Archive: > /tmp/luarocks_luarocks-rock-commandlineui-1.70-1-8246/commandlineui-1.70-1.src.rock > inflating: commandlineui-1.70-1.rockspec > extracting: CommandLineUI-1.70.tar.gz > > Missing dependencies for commandlineui: > lgdbm >= 20130702 > > Using http://www.luarocks.org/repositories/rocks/lgdbm-20130702-2.src.rock... > switching to 'build' mode > Archive: > /tmp/luarocks_luarocks-rock-lgdbm-20130702-2-5022/lgdbm-20130702-2.src.rock > inflating: lgdbm-20130702-2.rockspec > extracting: lgdbm.tar.gz > gcc -O2 -fPIC -I/usr/local/include -c lgdbm.c -o lgdbm.o -I/usr/include > gcc -shared -o gdbm.so -L/usr/local/lib lgdbm.o -L/usr/lib/i386-linux-gnu/ > -Wl,-rpath,/usr/lib/i386-linux-gnu/: -lgdbm > Updating manifest for /usr/local//lib/luarocks/rocks > lgdbm 20130702-2 is now built and installed in /usr/local/ > Updating manifest for /usr/local//lib/luarocks/rocks > commandlineui 1.70-1 is now built and installed in /usr/local/ > > But still it doesn't seem to work for 5.1 ... > > # cat /tmp/x > local L = require 'gdbm' > box8:~# /usr/bin/lua /tmp/x > /usr/bin/lua: error loading module 'gdbm' from file > '/usr/local/lib/lua/5.1/gdbm.so': > /usr/local/lib/lua/5.1/gdbm.so: undefined symbol: lua_setglobal > stack traceback: > [C]: ? > [C]: in function 'require' > /tmp/x:1: in main chunk > [C]: ? > > AIUI, lua_setglobal (I've never used it myself) ought to exist > in 5.1 and 5.2 ...
lua_setglobal is a function in 5.2 and a macro in 5.1. > What's wrong here ? You seem to have both lua.h from 5.1 and 5.2 in your include path, and you're getting the wrong one when building lgdbm... try passing LUA_INCDIR="/usr/include" and let's see what happens. The trick of launching the same install of luarocks with different interpreters tends to cause these problems, unless you prepare separate config-5.1.lua and config-5.2.lua files setting all variables appropriately... -- Hisham ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk _______________________________________________ Luarocks-developers mailing list Luarocks-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/luarocks-developers