On Tue, Oct 27, 2015, at 08:47, Ludovic Courtès wrote: > Leo Famulari <l...@famulari.name> skribis: > > > Notably, this enables the use of dynamic libraries with Lua. > > A better subject line for the commit would be: > > gnu: lua-5.2: Build shared libraries. > > AFAICS, the problem is only with Lua 5.2: > > --8<---------------cut here---------------start------------->8--- > $ ls $(guix build lua-5.1)/lib > liblua.a liblua.so liblua.so.5.1 lua > $ ls $(guix build lua-5.2)/lib > liblua.a lua pkgconfig > --8<---------------cut here---------------end--------------->8--- > > Thus I would suggest leaving ‘lua-5.1’ unchanged.
The make flags were broken before, for both 5.1 and 5.2, but in different ways. So the commit isn't about enabling shared libraries but fixing the flags. And I'm not sure about using Lua as a library. I was more interested in using other libraries with Lua. For 5.2, MYCFLAGS is available to "users" to append flags to what is set by the platform flag ("linux"). For 5.1, MYCFLAGS does NOT append, so you must manually copy the platform dependent flags onto the command-line and then append your flags. In both cases, our build instructions clobber the platform dependent flags. > > * gnu/packages/lua.scm (lua, lua-5.1)[arguments]: Set the make flags > > properly for each version of lua. > > [...] > > > +++ b/gnu/packages/lua.scm > > @@ -24,6 +24,7 @@ > > #:use-module (guix packages) > > #:use-module (guix download) > > #:use-module (guix build-system gnu) > > + #:use-module (guix utils) > > Looks like this line is not needed, is it? I thought that was necessary to use substitute-keyword-arguments. > > #:phases (alist-replace > > 'build > > - (lambda _ (zero? (system* "make" "CFLAGS=-fPIC" "linux"))) > > + (lambda _ (zero? (system* "make" "MYCFLAGS=-fPIC" > > "linux"))) > > I just tried and AFAICS this line has no effect: Lua 5.2 still lacks > liblua.so. Am I missing something? I will have to look into it again. I tested the results by starting the Lua interpreter while linking a shared library: $ lua -lssl > > + `(modify-phases ,lua-phases > > + (replace > > + 'build > > + (lambda _ > > + (and > > + (zero? (system* "make" (string-append > > + "MYCFLAGS=" > > + (string-join '("-fPIC " > > + "-DLUA_USE_LINUX " > > + "MYLIBS=-Wl,-E " > > + "-ldl -lreadline " > > + "-lhistory -lncurses"))) > > + "linux"))))))))))) > > This is in ‘lua-5.1’, so it’s unnecessary AFAICS. > > > @@ -89,8 +106,8 @@ for configuration, scripting, and rapid prototyping.") > > version ".tar.gz")) > > (sha256 > > (base32 > > "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm")) > > - (patches (list (search-patch "luajit-symlinks.patch") > > - (search-patch "luajit-no_ldconfig.patch"))))) > > + (patches (list (search-patch "luajit-symlinks.patch") > > + (search-patch "luajit-no_ldconfig.patch"))))) > > Unnecessary too. I figured that I should remove this tabulation while I was touching the file. > > Thanks for looking into it! I will look into it again.