[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: G++ 2 => 3 transition (was Re: GNU C++ 3.0 porting help wanted)



On Mon, 15 Oct 2001, Matthias Klose wrote:

> We will not change the default compiler for any architecture that
> woody is released for (unless the port maintainers call for it). The
> default compilers are gcc-3.0.x for hppa, gcc-2.96 for ia64 and
> gcc-2.95.x for the other architectures.
> 
> After the woody release I would prefer to wait for 3.1 which changes
> the C++ ABI another time (please correct me if I'm wrong). Assuming
> that woody is released early next year and gcc-3.1 in April 2002, that
> would not such a long delay and it saves us one transition. But that
> needs discussion after the woody release ...
> 
> With 3.1 we would have a common compiler for all architectures as well.

This kinda brings up another "issue" with binutils.  Jakub Jelinek is
working on a prelinker (better than objprelink that KDE was using).  For
it to work, everything must be linked with '-z combreloc' passed to the
linker.  I'm about to enable this by default, since I can't seem to get it
to break on any targets so far (doesn't hurt anything), but to make sid
more "prelink-able", we would have to recompile everything since all
dependencies of a given binary must also be linked using that switch in
order for prelinking to have any benefit.

I'm convinced that this is a worthwhile effort and am satisfied in saying
that, by the time we freeze sid, most packages will probably already have
been recompiled with a binutils that enables this by default.  Since we
would be converting to gcc-3.x for sid, is everyone else in agreement that
this would be an ideal time to execute such a change?

To actually prelink binaries/libraries and reap the benefits, a few
packages would need to be patched: libelf, glibc, and the kernel.

The latest libelf incorporates the needed change.  Ben Collins and I have
already talked about the glibc patches required for actual prelinking to
work (they need to make it into upstream CVS prior to hitting our glibc
packages), which I agree with, fyi.  Kernel support is already in 2.4.12
as well.

I was thinking that, if we decide that prelinking is A Good Thing(TM) and
something that we want to set as a goal for sid, then we will probably
also have to add either a cronjob to call the prelink command or find a
way to call prelink after packages are updated/installed.

Thoughts?

C



Reply to: