View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000555||luatex||luatex limitation||public||2011-01-09 15:17||2013-12-20 10:01|
|Platform||Apple/Intel/64bit||OS||OS X||OS Version||10.6|
|Target Version||0.70.0||Fixed in Version|
|Summary||0000555: make --nostrip default|
|Description||When building LuaTeX without --nostrip (which is the current default behaviour), loading external libraries is a game of luck. For example the sqlite3 bindings from http://luaforge.net/projects/luasqlite/ create a library on OS X that require the symbol _luaL_argerror to be defined in the LuaTeX binary:|
error loading module 'lsqlite3' from file './lsqlite3.so':
dlopen(./lsqlite3.so, 2): Symbol not found: _luaL_argerror
Referenced from: /Users/patrick/Downloads/lsqlite3-7/lsqlite3.so
Expected in: flat namespace
Building LuaTeX with --nostrip solves this issue.
By having "--strip" the default in build.sh, it is not possible for any user (on OS X, perhaps also on other platforms) to use this (and other) external library without downloading the LuaTeX source, download XCode, compile LuaTeX and put LuaTeX in the correct place.
We want to strip the binary in the general case, because it makes the executable a whole lot smaller. There is a switch to the linker to make it keep certain unused symbols, and that would be a better approach.
But there are also plans to build our lua as a .so file, and that would be even better, as that solves some other related issues at the same time. Conceptually, that is not hard to do, but in practise it needs some autoconf black magic.
||I just came across the same issue independently. At the moment the only viable solution is to skip the stripping step. Stripping by default means that at the moment no OS X user can use any extension module unless he uses a custom-built binary. I think that this issue outweighs the file size increase until you implement a better solution.|
||Any chance to get a non-stripped LuaTeX into TL 2011?|
||I really cannot say. This is autoconf work, and that is done by PEB.|
||OK, I've addressed that again on the list. What about TLcontrib? Do you build the TLcontrib binaries using the LuaTeX repo or the TeX Live repo?|
||All builds are done with a stripped down version of the texlive files.|
||Now that extension modules are still not supported with TeX Live 2011, I think it is even more important that TLContrib gets unstripped binaries; and please add a note in the manual that extension modules work only on Linux in TeX Live.|
I also ran into this problem on MacOS while trying to build a new graph drawing library.
It turns out that when the macos "strip" utility is called with the switch "-u -r" (so "strip -u -r luatex" instead of "strip luatex"), the problem disappears. According to the man page, this is what should be done to strip a file so that one can still link against it.
Note that "strip -u -r luatex" and "string luatex" produce files of the *exact same size* on MacOS, only dynamic linking works with the first and not with the second.
||seems to be resolved by --nostrip flag|
||closed in 0.78|
|2011-01-09 15:17||patrick||New Issue|
|2011-01-10 09:00||Taco||Note Added: 0000718|
|2011-01-11 09:53||Taco||Status||new => assigned|
|2011-01-11 09:53||Taco||Assigned To||=> Taco|
|2011-03-30 00:14||phi||Note Added: 0000765|
|2011-04-12 11:22||Taco||Target Version||=> 0.70.0|
|2011-05-10 09:11||phi||Note Added: 0000841|
|2011-05-10 10:33||Taco||Note Added: 0000842|
|2011-05-10 12:25||phi||Note Added: 0000843|
|2011-05-10 14:05||Taco||Note Added: 0000844|
|2011-07-28 13:29||phi||Note Added: 0000906|
|2012-08-10 15:45||oneiros||Tag Attached: building|
|2013-01-11 17:28||tantau||Note Added: 0001019|
|2013-12-19 17:20||Hans Hagen||Note Added: 0001162|
|2013-12-19 17:20||Hans Hagen||Status||assigned => resolved|
|2013-12-19 17:20||Hans Hagen||Resolution||open => fixed|
|2013-12-20 10:01||Hans Hagen||Note Added: 0001172|
|2013-12-20 10:01||Hans Hagen||Status||resolved => closed|