HiI have been banging my head on this simple problem. The archives don't seem to have an answer.
Running linux 2.6.19 on an ARM926.
Have a C program with lua embedded that invokes lua, loads libraries, then executes a lua script which has a require"socket.unix" statement that fails.
Running the standard lua interpreter with require"socket.unix" works just fine.
Where could I have gone wrong? My pertinent(?) C code is:
if ( (L = lua_newstate()) ) {
...// open the libraries then ...
status = luaL_loadfile( L, /etc/capgo/process.lua );
...
status = lua_pcall(L, 0, LUA_MULTRET, 0);
Which fails with status = LUA_ERRRUN when process.lua attempts to load a C library with:
require "socket.unix"
Which bombs with:
"error loading module 'socket.unix' from file '/urs/lib/socket/unix.so':
/urs/lib/socket/unix.so: undefined symbol: lua_insert
So the question is, how can "undefined symbol" come about in my program but not in lua.c, when both are built against the same static lualib.a?
Help greatly appreciated.