guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/1] gnu: lua: Build with dynamic library support.


From: Leo Famulari
Subject: Re: [PATCH 1/1] gnu: lua: Build with dynamic library support.
Date: Tue, 27 Oct 2015 10:13:53 -0400

On Tue, Oct 27, 2015, at 08:47, Ludovic Courtès wrote:
> Leo Famulari <address@hidden> 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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]