1 |
On Friday 06 February 2004 04:33, Spider wrote: |
2 |
> begin quote |
3 |
> On Thu, 5 Feb 2004 21:57:42 +0100 |
4 |
> |
5 |
> Paul de Vrieze <pauldv@g.o> wrote: |
6 |
> > On Thursday 05 February 2004 21:34, Spider wrote: |
7 |
> > > begin quote |
8 |
> > > On Thu, 5 Feb 2004 20:58:01 +0100 |
9 |
> > > Can you explain more? When would LIBVER be set? by whom? (developer? |
10 |
> > > no thanks.. :P ) and woudn't there need to be one LIBVER per .so |
11 |
> > > file that a package installs? |
12 |
> > |
13 |
> > In most cases we could probably derive it automatically from the |
14 |
> > soname of a library, in special cases LIBVER would need to be set. |
15 |
> > Basically the idea breaks through the one LIBVER per .so by needing a |
16 |
> > developer to define a different LIBVER when an incompatible library |
17 |
> > change is introduced in the package (in any file) (the contents of |
18 |
> > LIBVER don't matter). In some cases this will be automatically |
19 |
> > detected, in some cases not, in which the developer needs to fix this. |
20 |
> |
21 |
> I'm still not sure I actually understand how this would hang about. |
22 |
> LIBVER would be created for the package at post-compile time, and would |
23 |
> refer to its own contents... right? |
24 |
> |
25 |
> This could work, but in cases like : |
26 |
> foolib.so.0 -> foolib.so.0.5.4 |
27 |
> |
28 |
> Which is LIBVER? 0, or 0.5.4 ? since if applications link to .so.0 |
29 |
> the binaries will break if LIBVER is 0.5.4 (due to dependencies) but if |
30 |
> it provides both, and a program links to the hard minor (0.5.4) , |
31 |
> LIBVER would break if it was "0" ... |
32 |
|
33 |
Actually what ends up in the elf file is the soname of the library. This |
34 |
soname should only change with incompatible changes, if not the lib is broken |
35 |
(but will also be at install time). The only assumption I make is that all |
36 |
libraries in the package change incompatably at the same time (that's where |
37 |
the override is needed). In LIBVER we would normally store the soname |
38 |
|
39 |
> This falls on the fact that all packages don't necessarily link to the |
40 |
> same LIBVER , some may link to .so.0, others may be pickier and link to |
41 |
> `foolib.so.0.5.4` .. Not a pretty situation. |
42 |
|
43 |
They all link the soname at the end, irrespective of what you put at the |
44 |
linker command line -ldb and -ldb-4.1 will have exactly the same result given |
45 |
that libdb.so links to libdb-4.1.so |
46 |
|
47 |
> |
48 |
> > > Any ideas? |
49 |
> > |
50 |
> > Don't have binary packages ;-) |
51 |
> |
52 |
> not very practical IMO. computers aren't that fast, yet. (and with |
53 |
> software like KDE, Mozilla, qt, OpenOffice.. May never be) |
54 |
|
55 |
This is mainly a deficiency in g++ (or any c++ compiler) and C++'s dependency |
56 |
on header files. (Precompiled headers should give a big speedup) |
57 |
|
58 |
Paul |
59 |
|
60 |
-- |
61 |
Paul de Vrieze |
62 |
Gentoo Developer |
63 |
Mail: pauldv@g.o |
64 |
Homepage: http://www.devrieze.net |