To narrow down the problem, I used the --luaonly option to run a test lua file with luatex that loads the library. When I run:
luatex --luaonly test.lua It gives me the error: Symbol not found: _luaL_setfuncs Then, I built a fresh luatex binary from SVN using --nostrip option, and ran the same thing, and it works fine. I then tried to copy the freshly built luatex binary into TeXLive, and ran fmtutil --all, but it gave me an error saying \pdfoutput was an undefined control sequence. So now I am wondering: 1. Why does the luatex binary built from SVN with --nostrip work, and the luatex binary bundled with TeXLive does not work when using in --luaonly mode. Is that intentional? On StackExchange[1] there are people on Linux who report that it working fine with TeXLive 2015 as well. What is different about Mac OS X? 2. How can I use the freshly built luatex binary with TeXLive 2015. Is there anything else I need to do before I run fmtutil --all so that this "undefined control sequence \pdfoutput" will go away. Thank you Deepak [1]: http://tex.stackexchange.com/questions/278329/symbol-not-found-error-when-using-lua-c-so-module-with-lualatex On Sun, Nov 15, 2015 at 3:02 PM, Deepak Jois <[email protected]> wrote: > I am trying to get a basic Lua C .so module working with LuaLaTeX. I > have all the pieces in place here. I am able to run the library using > my local Lua interpreter just fine. But when I try to load it inside > LuaLaTex, I get the error as shown below. > > My environment: Mac OS X, TeXLive 2015 and Lua 5.2.4. > > The minimal code example is here: > https://github.com/deepakjois/tex-sandbox/tree/master/luatex-lua-c-bridge > > What am I doing wrong? > > > Error Details: > ===== > This is LuaTeX, Version beta-0.80.0 (TeX Live 2015) (rev 5238) > restricted \write18 enabled. > (./test.tex > LaTeX2e <2015/01/01> > … > <snip> > … > (./luaharfbuzz.lua) > ! LuaTeX error error loading module 'harfbuzz' from file './harfbuzz.so': > dlopen(./harfbuzz.so, 6): Symbol not found: _luaL_setfuncs > Referenced from: ./harfbuzz.so > Expected in: flat namespace > in ./harfbuzz.so > stack traceback: > [C]: in ? > [C]: in ? > [C]: in function 'require' > ./luaharfbuzz.lua:2: in main chunk > [C]: in function 'require' > [\directlua]:1: in main chunk. > \luacode@dbg@exec ...code@maybe@printdbg {#1} #1 } > > l.6 \end{luacode*} > > =====
