(gcc 2.95 support) kdeextragear-1/amarok/src
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++
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