[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, 26 Sep 2016 01:13:56 +0200 |
Hi Lukas,
On Sun, 25 Sep 2016 17:45:06 -0500
Lukas Gradl <address@hidden> wrote:
> Since the return value of "(symlink ...)" is
> unspecified, then we don't need the "(and ...)" at all, right?
Right.
> My understanding is now that if this 'dring' binary were to get
> executed, it would look for 'libargon2.so.0' in the Runpath. However,
> there is only 'libargon2.so' in
> '/gnu/store/8z4lfj32b7q308xigfj8w1nmgbgyvd6g-argon2-20160406/lib', which
> it ignores.
Yeah, .so files without version number in the name (xxx.so) are only used by
gcc when linking. The actual running program doesn't do anything with them.
I think ldconfig updates a database from soname to actual file name. I'm not
sure what the rules for the symlinks in ldconfig are.
> My next question was why it was looking for 'libargon2.so.0' at all if
> it does not exist.
I think it's because of the soname. The soname is the main ABI in this case,
the files are just an implementation detail. The actual matching should be done
via comparing sonames. It's just that it doesn't scan all files on the system
in order to find it.
>$ objdump -p
>/gnu/store/mfanlirixm9468z02vf4c8dqvjl5gm01-libring-2.2.0-1.41e032c/sbin/dring
>|grep argon2
> NEEDED libargon2.so.0
>$ objdump -p
>/gnu/store/5fh9w9x3ihvy9n7pw0q58xafj6x21w99-argon2-20160406/lib/libargon2.so
>Dynamic Section:
> SONAME libargon2.so.0
So far so good.
It should just be in file libargon2.so.0 in order to be used. So I think the
symlink that you are doing from the existing file libargo2.so to the required
file libargon2.so.0 is fine.
> To fix this situation it would probably suffice to make sure that the
> soname and the filename of the Argon2 library match.
I agree.
> To that end, one
> could either change the soname or the filename to match the other one.
> I think that changing either of these is risky because other dependent
> libraries might depend on one of those.
Especially changing the soname would be bad. It's part of the ABI. Don't touch
it - especially when it actually lists a major API version - as it does.
What we could do is rename libargon2.so to libargo2.so.0. But then gcc won't
find it - so I wouldn't recommend it.
>So I would keep the symlink
> 'libargon2.so.0' -> 'libargon2.so' but remove the 'libargon2.so.0.0.0'
> since it appears unneeded. Building libring works with these changes.
Yes. I think that is a good approach.
Could you send an updated patchset?
Thanks!
- Re: [Patch 2/10] Add dbus-c++., (continued)
- [Patch 3/10] Add gsm., Lukas Gradl, 2016/09/12
- [Patch 4/10] argon2: Install pkg-config file., Lukas Gradl, 2016/09/12
- Re: [Patch 4/10] argon2: Install pkg-config file., Danny Milosavljevic, 2016/09/15
- Re: [Patch 4/10] argon2: Install pkg-config file., Lukas Gradl, 2016/09/18
- Re: [Patch 4/10] argon2: Install pkg-config file., Danny Milosavljevic, 2016/09/19
- Re: [Patch 4/10] argon2: Install pkg-config file., Lukas Gradl, 2016/09/25
- Re: [Patch 4/10] argon2: Install pkg-config file.,
Danny Milosavljevic <=
- Re: [Patch 4/10] argon2: Install pkg-config file., Lukas Gradl, 2016/09/25
- Re: [Patch 4/10] argon2: Install pkg-config file., Ludovic Courtès, 2016/09/28
Re: [Patch 5/10] opendht: Propagate argon2., Lukas Gradl, 2016/09/12
[Patch 6/10] telephony: Add license prefix., Lukas Gradl, 2016/09/12
[Patch 7/10] opendht: Propagate msgpack., Lukas Gradl, 2016/09/12