[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: libtool versioning and ABI
From: |
Michel Briand |
Subject: |
Re: libtool versioning and ABI |
Date: |
Tue, 11 Aug 2009 19:53:50 +0200 |
Ralf Wildenhues <address@hidden> - Tue, 11 Aug 2009 19:34:09
+0200
>Hello Michel,
>
>* Michel Briand wrote on Thu, Aug 06, 2009 at 12:46:00AM CEST:
>> Personally I've always seen interface as a contract.
>> A contract between a library writer and library user.
>
>Yes.
>
>> Why does libtool want to interfere with this ... has always made me
>> scratching my head....
>
>libtool allows you to exploit the versioning capabilities of the runtime
>linkers on different systems. Not all the world is a GNU/Linux box, and
>some non-glibc runtime linkers have different versioning semantics.
>
>> Since it's a contract, ABI changes fall into the contract agreement. So
>> why bother with complex versionning and error-prone version
>> manipulations with substraction
>
>*You* the developer that uses libtool shouldn't ever need to use
>subtraction. libtool does that for you.
>
>> The difficult, and somehow messy, scheme of libtool versioning is
>> boring and uneasy : developers do not understand this different way
>> that overlap with the classical, natural and contractual scheme (X.Y.Z
>> that one can still use with the -release flag) ; and this create
>> additional work to handle package version (official, classical) in
>> parallel with libtool -version-info scheme.
>>
>> Or I'm completely wrong.... but the documentation lacks some clues
>> about what is this all about ;)))
>
>Yes, you are wrong. You are simply doing non-GNU/Linux users a
>disservice, by effectively disabling library versioning capabilities for
>them. I'm not sure how to best explain that to you.
>
Hum... ^^
Yes non-Linux system will have a different scheme. But if libtool wants
to help I'm sure a little more documentation could easier the task :).
Currently I use on some projects the following Makefile.am snippet:
MYLIB_VERSION=$(...)
MYLIB_LTVERSION=$(...)
# update .c file with MYLIB_VERSION for runtime checking...
# create shared lib
mylib_la_LDFLAGS = -version-info $(MYLIB_LTVERSION)
This last variable is crafted to reflect the usual versioning. I.e. if
I want the version to 1.22.5, I must put 23:5:22 in the _LTVERSION
variable (effectively doing substractions ;^^).
Any way more simple ?
Cheers,
Michel
- libtool versioning and ABI, Joseph Garvin, 2009/08/05
- Re: libtool versioning and ABI, Bruce Korb, 2009/08/05
- Re: libtool versioning and ABI, Joseph Garvin, 2009/08/05
- Re: libtool versioning and ABI, Bob Friesenhahn, 2009/08/05
- Re: libtool versioning and ABI, Michel Briand, 2009/08/05
- Re: libtool versioning and ABI, Bob Friesenhahn, 2009/08/05
- Re: libtool versioning and ABI, Ralf Wildenhues, 2009/08/11
- Re: libtool versioning and ABI,
Michel Briand <=
- Re: libtool versioning and ABI, Ralf Wildenhues, 2009/08/11
- Re: libtool versioning and ABI, Charles Wilson, 2009/08/11
- Re: libtool versioning and ABI, Michel Briand, 2009/08/11
- Re: libtool versioning and ABI, Charles Wilson, 2009/08/11
- Re: libtool versioning and ABI, Michel Briand, 2009/08/11
- Re: libtool versioning and ABI, Michel Briand, 2009/08/11
- Re: libtool versioning and ABI, Vincent Torri, 2009/08/11
- Re: libtool versioning and ABI, Ralf Wildenhues, 2009/08/12
- Re: libtool versioning and ABI, Vincent Torri, 2009/08/12
- Re: libtool versioning and ABI, Ralf Wildenhues, 2009/08/12