Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2006-10-21 11:41:28


I've some questions about the way install works with V1 (so that I can
replicate this in V2). I use current CVS HEAD, and run:

    bjam --with-program_options --prefix=/tmp/boost-test-install-v1 install

It looks like for each library and property set, three shared library files
are created, for example:

   libboost_program_options-gcc-1_35.so.1.35.0
   libboost_program_options-gcc-1_35.so (symlink to the above)
   libboost_program_options-gcc.so

When running "readelf -a libboost_program_options-gcc.so" I see:

   0x0000000e (SONAME)
   Library soname: [libboost_program_options-gcc-1_35.so.1.35.0]

Which means that if I link to this library, it won't be used at runtime. So,
why is it created?

Second, more standard symlink scheme is something like (real example):

     /usr/lib/libQtGui.so -> libQtGui.so.4.1.2
     /usr/lib/libQtGui.so.4 -> libQtGui.so.4.1.2
     /usr/lib/libQtGui.so.4.1 -> libQtGui.so.4.1.2
     /usr/lib/libQtGui.so.4.1.2

and the soname is libQtGui.so.4

I gather that the different scheme with Boost might be related to lack of
binary compatibility between versions, but was this an explicit decision?

Also, should not we guarantee binary compatibility between 1.35.0 and 1.35.1?
If so, then soname should be ".....1.35" and we should have symlink
from ".1.35" to "1.35.0".

Should we raise raise the question about binary compability betwen 1.N.M and
1.N.(M+1) on the devel list?

Thanks,
Volodya


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk