(gcc 2.95 support) kdeextragear-1/amarok/src

Andy Fawcett andy at athame.co.uk
Mon Mar 14 09:41:06 GMT 2005


On Monday 14 March 2005 11:05, Gary L. Greene Jr. wrote:
> On Monday 14 March 2005 3:56 am, Andy Fawcett wrote:
> > On Saturday 12 March 2005 19:35, Henry Miller wrote:
> > > On Thursday 10 March 2005 07:27, Adriaan de Groot wrote:
> > > > On Thursday 10 March 2005 02:04, Max Howell wrote:
> > > > > On Wednesday 09 March 2005 10:39, Adriaan de Groot wrote:
> > > > > > Move function-local class definitions outside of the
> > > > > > functions, so they are module-local. The reason for doing
> > > > > > this is that gcc 2.95 barfs during linking with
> > > > > > function-local classes with vtables (near as I can read the
> > > > > > error messages).
> > > > >
> > > > > How much longer do we have to support gcc 2.95 for? I must
> > > > > say I have a great deal of distaste that we must make our
> > > > > code more ugly for the sake of an old compiler. I do
> > > > > understand that people want to continue to use it, but I just
> > > > > wonder how much longer they will do so. Thanks,
> > > >
> > > > Until it is no longer the system compiler on a supported
> > > > platform. That includes Debian stable and FreeBSD 4-STABLE. For
> > > > the FBSD side, 4.11 was just released and 4-STABLE is now
> > > > called "legacy". I believe it will be retired in a year. Um,
> > > > no:
> > >
> > > Gcc3 is a supported compiler for FreeBSD-4 for user programs.  
> > > 2.95 is the system compiler, but it is trivial to install both. 
> > > 2.95 is the only compiler that correctly compiles the
> > > kernel/userland.   For everything not FreeBSD you can choose.
> > >
> > > I'm running FreeBSD 4-stable on one of my systems, and I've
> > > compiled KDE with gcc3.   There are already supported ports in
> > > FreeBSD 4 that require gcc3, so there is precedent.
> >
> > The problem here is that if you compile ANY C++ program with either
> > of the compilers, you MUST compile all other C++ programs with the
> > same compiler due to the C++ ABI changes between 2.95.x and 3.xx
>
> This is not true. Only issue is that you need to have two versions of
> libstdc++ installed, not requiring that all C++ apps be rebuilt. This
> just means the FreeBSD KDE team need to request that gcc3 be
> versioned correctly for the libs.

So, if some C++ modules are created with 2.95.x (and are a requirement 
for KDE to build as they are linked against), and KDE programs are 
built against gcc3, we will end up with linkage against both libstdc++ 
libraries.

That's just not going to work, for ABI reasons, duplicate symbol 
reasons, all sorts of reasons...

To make it clearer, any and all C++ modules that are linked against will 
need to be built with the same version of C++, unless I am very badly 
confused. I am prepared to be taught otherwise ;)

To complicate matters sufficiently, if what I just said above is indeed 
the case, we would need to ask all the packagers of other dependencies 
to switch over too, and that's just not going to happen.



-- 
Andy Fawcett                                     | andy at athame.co.uk
                                                 | tap at kde.org
"In an open world without walls and fences,      | tap at lspace.org
  we wouldn't need Windows and Gates."  -- anon  | tap at fruitsalad.org




More information about the kde-core-devel mailing list