guix-devel
[Top][All Lists]
Advanced

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

Re: [Patch 4/10] argon2: Install pkg-config file.


From: Danny Milosavljevic
Subject: Re: [Patch 4/10] argon2: Install pkg-config file.
Date: Mon, 19 Sep 2016 21:15:15 +0200

Hi Lukas,

I thought about it some more.

On Sun, 18 Sep 2016 16:43:03 -0500
Lukas Gradl <address@hidden> wrote:
> +               (and
> +                (install-file "argon2" (string-append out "/bin"))
> +                (install-file "libargon2.a" (string-append out "/lib"))
> +                (install-file "libargon2.so" (string-append out "/lib"))
> +                (install-file "argon2.pc"
> +                              (string-append out "/lib/pkgconfig"))

Hmm. I looked at the implementation of "install-file" and its return value 
seems to be the one of "copy-file". And the Guile manual specifies that the 
return value of "copy-file" is unspecified. (Instead it does dynamic unwinding 
on error)

So I'd do the "install-file" and "copy-recursively" calls outside the "(and 
...)".

> +                (copy-recursively "include"
> +                                  (string-append out "/include"))
> +                (zero? (system* "ln" "-s"
> +                                (string-append out "/lib/libargon2.so")
> +                                (string-append out "/lib/libargon2.so.0")))

I think that there's a "symlink" function in Guile for that (which has 
unspecified return value). Would probably be marginally faster, too.

> +                (zero? (system* ; Fix compatability for libtool based builds.
> +                        "ln" "-s"
> +                        (string-append out "/lib/libargon2.so")
> +                        (string-append out 
> "/lib/libargon2.so.0.0.0"))))))))))

Likewise.

About the part of the toolchain that sets the soname, either libtool mode=link 
does it ("-version-info") or it's an option "-soname" to ld (or gcc with "-Wl," 
prefix). 

The official soname used is set in argon2 Makefile:

        SO_LDFLAGS := -Wl,-soname,libargon2.so.0
                                  ^^^^^^^^^

But I'd say it's fine to manually symlink - since it works. Please still check 
how the client of argon2 in this case (libring ?) loads the shared object.



reply via email to

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