Re: liblockdep soname versioning

From: Josh Boyer
Date: Tue Apr 01 2014 - 11:35:13 EST


On Tue, Apr 1, 2014 at 11:33 AM, Sasha Levin <sasha.levin@xxxxxxxxxx> wrote:
> On 04/01/2014 09:35 AM, Sasha Levin wrote:
>>
>> On 04/01/2014 09:28 AM, Josh Boyer wrote:
>>>
>>> On Tue, Apr 1, 2014 at 9:19 AM, Sasha Levin <sasha.levin@xxxxxxxxxx>
>>> wrote:
>>>>
>>>> On 04/01/2014 08:56 AM, Josh Boyer wrote:
>>>>>
>>>>>
>>>>> Hi Sasha,
>>>>>
>>>>> We've had a request [1] to package up liblockdep in Fedora. Looking
>>>>> things over, I noticed the library isn't actually versioned at all and
>>>>> instead just builds a plain .so file. That's likely fine during
>>>>> development of it, but if distros are to ship it for broader use then
>>>>> it would be a good idea to specify the soname and use a versioned .so.
>>>>>
>>>>> The makefile already has LIBLOCKDEP_VERSION defined. Would it be
>>>>> possible to use this as the soname and version number? Then
>>>>> liblockdep.so could be the normal symlink to the versioned .so
>>>>> (liblockdep.so.0.0.1 in this case).
>>>>>
>>>>> Thanks.
>>>>>
>>>>> josh
>>>>>
>>>>> [1] https://bugzilla.redhat.com/show_bug.cgi?id=1082763
>>>>>
>>>>
>>>> Sure! I never expected it to live outside the kernel tree as a separate
>>>> package, but I'm happy to accommodate for that.
>>>>
>>>> I think that I'll just match the version number with the kernel version
>>>> since what mostly matters is what you have in kernel/lockdep.c, so for
>>>> example, right now we'll have 'liblockdep.so.3.15.0'. Sounds good?
>>>
>>>
>>> The only concern I would have is that it would require applications
>>> linking to it to rebuild with every kernel release even if nothing
>>> else changed. Maybe nothing changing is going to be rare enough that
>>> in practice people will need to rebuild anyway. Either way, it's
>>> better to be explicit rather than break users silently, so it sounds
>>> good to me.
>>
>>
>> I don't think we ever had a kernel version without changes to lockdep :)
>>
>> Since lockdep isn't an ABI either, no one promises me it'll work the same
>> way between versions either, so I'm kinda happy about just forcing
>> rebuilds.
>
>
> Hi Josh,
>
> Could you please confirm that the below is what you'd expect it to be:
>
> sasha@lappy:~/linux/tools/lib/lockdep$ make
> CC FPIC common.o
> CC FPIC lockdep.o
> CC FPIC preload.o
> CC FPIC rbtree.o
> BUILD STATIC LIB liblockdep.a
> BUILD SHARED LIB liblockdep.so.3.14.0
>
> sasha@lappy:~/linux/tools/lib/lockdep$ ls -al liblockdep.so
> lrwxrwxrwx 1 sasha sasha 20 Apr 1 11:31 liblockdep.so ->
> liblockdep.so.3.14.0
>
> sasha@lappy:~/linux/tools/lib/lockdep$ readelf -d liblockdep.so | grep
> SONAME
> 0x000000000000000e (SONAME) Library soname:
> ["liblockdep.so.3.14.0"]

Yep, that does indeed look like what I would expect. Thanks for such
a quick turn around!

josh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/