On 27/07/2012 15:24, Floren Munteanu wrote:
> On Friday, July 27, 2012 9:16:12 AM UTC-4, kapouer wrote:
> 
>     do you use the right flags ?
>     here are the ones used in the debian package :
>     library=shared snapshot=off soname_version=3.11.10
> 
> 
> Ya Jeremy, except I use soname_version=3
> If I use 3.11.10, the compiler will produce:
> ... libstdc++.so.6(GLIBCXX_3.4)(64bit) *libv8.so.3.11.10 *()(64bit) ...
> instead of:
> ... libstdc++.so.6(GLIBCXX_3.4)(64bit) *libv8.so.3 *()(64bit) ...
> 
> I'm used to see the the major version only, in each library. What do you 
> recommend?
> I checked other packages and they all use scons.

That is precisely i've been trying to explain :
if you use a soname version of just "3", it assumes all versions of libv8 
starting
with a 3 are API and ABI compatible. Since this is clearly a false statement,
you will have to bump your soname for each new major.minor branch 
(approximately).
At the end, you have libv8.so.78 for v8 version 3.20.15, which is not clear.

Instead, i propose you use a soname version built upon the fact that (up until 
now)
the versions between 3.11.10.1 and 3.11.10.17 are API/ABI compatible : 3.11.10.

Also note that if you don't version soname in accordance with API changes or
ABI incompatibilities, other packages depending on yours will not know why they
suddenly break : a program using libv8.so.3 will need to be recompiled (at best)
if you update libv8.so.3 to an ABI/API incompatible version.

For example, in debian (well it didn't got into wheezy, but anyway it's planned)
we're going to use :
SONAME : libv8.so.3.10.8
/usr/lib/libv8.so.3.10.8
/usr/lib/libv8.so -> libv8.so.3.10.8 (provided by libv8-dev)

Is that clear ?

Jérémy.

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to