On Sat, 31 Aug 2002, Paul Davis wrote: > >Way back last year, Mandrake distributed a C++ library compiled > >with options, that caused ardour not to be compilable and/or showing > >strange behaviour, strange bugs...=20 > > This was not the only reason. Similar breakage occurs as soon as the > user acquires a C++ library in binary format that was compiled by a > g++ with either different options and/or a different ABI compared the > one used to compile and link the application. If someone upgrades from > g++ 2.95 to g++ 3.2, for example, and they fail to recompile *every* > C++ library on their system, problems will arise sooner or later > (depending on how many C++ apps they run and how they were built).
We are very, very, very painfully aware of that problem. We regard any such inconsistencies as problems to be fixed, btw. See the immense, monstruous thread about the ongoing C++ mass-recompile to switch to gcc 3.2 in debian-devel... Also, should ardor fail to work because a C++ lib is misbehaving, that is considered a bug on that library, and it will have to be fixed. > this is not quite correct. libardour is the only one built as a shared > library. all others are statically linked into the final > exectuable. the shared library is just a development convenience - its > where the most significant changes happen and avoiding a static relink > every time that library changes its internals saves a considerable > amount of time. The big problem with linking a lot of stuff statically into ardor *for Debian*, is that ardor now needs to be explicitly recompiled and reuploaded for every single security issue in any of the component libs. We cannot do that kind of service. > It also makes them stable and immune to compiler version SNAFUs. Indeed. Debian stable is also supposed to be stable and immune to compiler version SNAFUs. As for unstable, the snafus get fixed quite fast, and users that cannot deal with them by themselves are told to stay away from Debian unstable. > this also needs to check the ABI of the compiler used. a library built > by g++ 3.2 cannot be used with g++ 2.95, for example. Yes. I think there is some Debian team trying to fix this up once and for all, along with the gcc guys. But I might be wrong. -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh