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]

[CTNG] canadian x86_64 / ia32 / arm


Hi all,

So I'm back to looking again at building a canadian toolchain with:
BUILD    == x86_64
HOST     == ia32
TARGET == arm

I got some help from Yann and the list, and I managed to build, though
not run it, but see below.

First of all, in order to build I had to work around what seems to be
a libstdc++ bug.

That bug is [Bug libstdc++/40974]
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
The mail thread discussing it for cross-toolchains start there:
http://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg261842.html
and proposes a workaround there:
http://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg261951.html

So I applied the proposed workaround and added the following to my config file:
CT_CC_EXTRA_CONFIG="--disable-libstdcxx-pch"

With that flag I could build the final toolchain. I have configured
CTNG for gcc-4.5.0, the bug was reported against 4.4.1, doesn't seem
to have been fixed..
I am no C++ expert, so I don't have the slightest clue what that flag
could do ...

I then tried the resulting toolchain on a 32bits machine and it failed
to load as the libstdc++ on that machine was
/usr/lib/libstdc++.so.6.0.13
whereas the toolchain was built against /usr/lib/libstdc++.so.6.0.14

The question I have is, the tools are dynamically linked against only
a few libraries:
ldd arm-sbasa45-linux-gnueabi-gcc-4.5.0
        libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf76ab000)
        libc.so.6 => /lib32/libc.so.6 (0xf7550000)
        libm.so.6 => /lib32/libm.so.6 (0xf7529000)
        /lib/ld-linux.so.2 (0xf77cf000)
        libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf750c000)

How could I statically link against libstdc++, libm, libgcc_s ?

I guess that dynamic linking against glibc should be ok.

I really do need the static linking in order to run inside of
scratchbox, which is using fairly old libraries.

As for the earlier comment from Yann that, as I have the ia32-libs
installed on my sytem, configure, for glibc and binutils, might get
confused. I suppose I should I should recompile with older versions of
the libraries and compiler, but older gcc have way less dependency on
C++. Any guidance on a useful test I could produce ?

For the time being, Virtualbox will help me produce a 32bits toolchain.

Thanks all,

--Frederic

--
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]