luajit: pass LDCONFIG=true to make sure dynamic library links are created
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Wed, 26 Feb 2014 22:29:59 +0000 (23:29 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Wed, 26 Feb 2014 22:47:39 +0000 (23:47 +0100)
commit40089283e91fc6daae1aff0346f6821bd2bcab80
treeaa6e296f8729db34f96834be1fadfb945c0bd3dd
parentd1284c502234d67b67d334ee0a0ee84bd1cdc89e
luajit: pass LDCONFIG=true to make sure dynamic library links are created

To install its shared library, the luajit Makefile does:

        cd src && test -f $(FILE_SO) && \
          $(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \
          $(LDCONFIG) $(INSTALL_LIB) && \
          $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
          $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :

This means that if ldconfig doesn't work or isn't available on the
system, it won't create the libluajit-5.1.so -> libluajit-5.1.so.5.2.0
symbolic link.

Not having this symbolic link prevents lua-ev from finding the shared
version of the luajit library, and it fallbacks to using the
libluajit.a static library. However, this static library is not built
with -fPIC, so using it within a shared library doesn't work, and
leads to build failures on architectures that really do want to have
non-fPIC code into a shared library, such as x86-64.

By passing LDCONFIG=true during the installation steps of luajit, we
ensure that the symbolic links are created, which allows lua-ev to
detect the shared library properly, making everybody happy.

Investigation conducted with Samuel Martin. Thanks!

Fixes:

  http://autobuild.buildroot.org/results/41c/41c8bb9cf91a86908a150dae27726136cb56f5b7/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/luajit/luajit.mk