On Tue, Mar 21, 2006 at 08:15:07PM -0800, Steve Langasek wrote:

> Please don't drop the BTS from the recipient list when replying.

Your Return-Path contains only <[EMAIL PROTECTED]> which I assume
mutt prefers over the From header ...

> So, as I said, this is completely unreproducible here.  You might be able to
> find out why it's looking in the wrong place using strace on the compiler,
> but my suspicion is that you have something in your path that didn't come
> from a Debian package.

As I said, I have no software from sources other than Debian on this
machine.

My PATH contains:

/home/cboehme/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

with the first two directories actually being empty.

The traces show what I indicated earlier: g++-4.0 looks everywhere for the
headers but not in /usr/include/c++/4.0 where it should.  It even looks in
/usr/local which is actually totally in the local (installation site's)
domain and nobody else's.

The actual problem, however, lies in the path resolution algorithm for
standard headers.  For whatever reason, the frontend
(/usr/lib/gcc/powerpc-linux-gnu/4.0.3/cc1plus) looks for headers under
/usr/lib/gcc/powerpc-linux-gnu/4.0.3/../../../../include/c++/4.0.3
which is as wrong as can be: that assumption ignores the possibility
that /usr/lib might indeed be a link to some other location outside
the /usr tree (which is the case over here).  Consequently, a
``cd ../../../..'' from /usr/lib/gcc/powerpc-linux-gnu/4.0.3 does _not_
arrive at /usr.  /usr/lib/gcc/powerpc-linux-gnu/3.4.6/cc1plus does not
show this behaviour, BTW.

You (as in distributor) can solve that problem with using
``--with-gxx-include-dir=/usr/include/c++/4.0'' during configuration
as was done with g++-3.4 or tell the GCC people to change their mind
about their path resolution policy.

Do you want to have a look at the traces (they're rather large) ?

> Er, I'm not surprised that trying to invoke g++-4.0 as "g++ -V 3.4" doesn't
> work completely.  If I run this command, I get link errors as well; if I run
> g++-3.4 -Wall simple.c++ -o simple, the program builds and runs fine.

Hmm.  Wasn't the ``-V'' option specifically introduced for purposes that
require a specific compiler version (it's even documented here:
http://gcc.gnu.org/onlinedocs/gcc-4.0.3/gcc/Target-Options.html) ?
I was under the impression that whatever version is requested by the
user the driver would select the appropriate front and/or back ends
or whatever it is that differs between releases.


Regards,
Christian

Attachment: signature.asc
Description: Digital signature

Reply via email to