This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c++ includes not getting searched for correctly?


Yann --

On Fri, Oct 8, 2010 at 10:54 AM, Yann E. MORIN
<yann.morin.1998@anciens.enib.fr> wrote:
> Bryan, All,
>
> On Friday 08 October 2010 01:15:07 Bryan Hundven wrote:
>> After making the following symlink:
>> ln -s ${CT_SYSROOT_DIR_PREFIX}/sys-root/usr/include
>> ${CT_SYSROOT_DIR_PREFIX}/include
>> Everything works fine.
>
> Good to know we have a workaround.
>
> But I'm not happy with it, though. An absolute path makes the toolchain
> non-relocatable, and this is a Bad Thing (TM). At least, make it a relative
> symlink.

Relative symlink works fine here:

cd ${CT_SYSROOT_DIR_PREFIX}
cd ..
ln -s sys-root/usr/include .

Leaves me with this:

[tony@fedora12-64 powerpc-e500v2-linux-gnuspe]$ pwd
/opt/cross/my-board/xtools/powerpc-e500v2-linux-gnuspe

[tony@fedora12-64 powerpc-e500v2-linux-gnuspe]$ ls -al
total 20
dr-xr-xr-x. 5 tony tony 4096 2010-10-04 16:49 .
dr-xr-xr-x. 8 tony tony 4096 2010-10-04 16:48 ..
dr-xr-xr-x. 2 tony tony 4096 2010-10-04 15:31 bin
dr-xr-xr-x. 3 tony tony 4096 2010-10-04 15:13 debug-root
lrwxrwxrwx. 1 tony tony   20 2010-10-04 16:49 include -> sys-root/usr/include
lrwxrwxrwx. 1 tony tony   12 2010-10-04 16:49 lib -> sys-root/lib
dr-xr-xr-x. 6 tony tony 4096 2010-10-04 15:31 sys-root

(I also linked in sys-root/lib, although it seems  Bryan didn't need that one?)

> Also, I believe that gcc should be somehow taught where to look fot the
> headers. It is already properly looking at sysroot/usr/include for C headers
> and looking there for C++ should be the default as well.

Agreed.  Not sure how to fix that, though; like I said, I took a quick
look through the gcc sources... but its handling of include paths is
pretty baroque.

Looking through the docs, this looks promising:

--enable-version-specific-runtime-libs
Specify that runtime libraries should be installed in the compiler
specific subdirectory (libdir/gcc) rather than the usual places. In
addition, `libstdc++''s include files will be installed into libdir
unless you overruled it by using --with-gxx-include-dir=dirname. Using
this option is particularly useful if you intend to use several
versions of GCC in parallel. This is currently supported by
`libgfortran', `libjava', `libmudflap', `libstdc++', and `libobjc'.

I'll experiment with that later tonight.

Thanks,
Tony

--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]