[tex-live] somewhat broken macOS binaries (was: Stripping LuaTeX with "strip -u -r" to allow loading modules)
Patrick Gundlach
patrick at gundla.ch
Sun Apr 23 11:53:55 CEST 2017
Hi all,
I finally have a small test file to try it out:
this is the file lib.c:
-----------------------------
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
#include <stdlib.h>
#include <stdio.h>
static int testfunc (lua_State *L)
{
const char* str = "Hello world!";
lua_pushstring(L, str);
return 1;
}
int luaopen_foo_lib(lua_State *L) {
struct luaL_Reg myfuncs[] = {
{"testfunc", testfunc},
{NULL, NULL},
};
lua_newtable (L);
luaL_setfuncs (L, myfuncs, 0);
return 1;
}
------------------------
and this is the LaTeX file:
-----------------------
\documentclass{article}
\usepackage{luacode}
\begin{document}
\begin{luacode*}
foolib = require("foo.lib")
texio.write_nl(foolib.testfunc())
\end{luacode*}
\end{document}
------------------------
The instruction to build on macOS is:
------------------------
cc -c lib.c -I /opt/homebrew/Cellar/lua/5.2.4_1/include/
cc -flat_namespace -bundle -undefined suppress -o lib.so lib.o
------------------------
(adjust the path to the Lua header files)
and then copy the result into a directory "foo" relative to the TeX test file above:
------------------------
cp lib.so <path to test.tex>/foo/lib.so
------------------------
Now lualatex test.tex should print a "Hello world" to the console:
------------------------
....
(/opt/texlive2017/texmf-dist/tex/luatex/ctablestack/ctablestack.sty)))
(./test.aux)
Hello world! (./test.aux))
360 words of node memory still in use:
2 hlist, 1 vlist, 1 rule, 2 glue, 4 attribute, 45 glue_spec, 4 attribute_lis
t, 2 write nodes
avail lists: 2:7,3:1,4:1,5:5,7:1,8:1,9:1
....
------------------------
Now: this does not work on my machine using the tl2017 binary, but with a self compiled binary from the LuaTeX source.
It looks to me as if it _not_ a matter of stripped / not stripped but something different, which I have still no idea what it could be.
Patrick
(the lib.so is available at http://download.speedata.de/private/lib.so with a MD5 of 9ce2444145108511b2f678b4d22bd777)
More information about the tex-live
mailing list