This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Help with Gcc-3.0.3 cross-compile
- From: Jim Wilson <wilson at redhat dot com>
- To: "Shureih, Tariq" <tariq dot shureih at intel dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 12 Feb 2002 12:56:44 -0800
- Subject: Re: Help with Gcc-3.0.3 cross-compile
>Does that apply even if what I am trying to produce is a tools chain to be
>distributed in a "Development" environment that supports both IA32 and IA64?
I think this kind of thing is best left to the OS system vendors because it
can be very complicated. I don't even try to do it myself. I let the Red Hat
OS group build the toolchains and libraries for me.
Another thing, because IA-64 linux support is still so new, there is a very
good chance that trying to build your own compiler different from the system
compiler will fail, because of ABI incompatibilities. This is going to be
a serious problem until we have a gcc 3.1 release and systems that use gcc 3.1
as the system compiler. It may be OK with systems using gcc 3.0.2 and later
as the system compiler, but I am unsure.
>This is my goal, to provide a root-jail environment which developers can use
>to develop and validate code for both IA32 and IA64.
Validating IA-64 code on an IA-32 machine implies a simulator environment.
It would be much easier to use the HP IA-64 Linux Developer's Kit than to
create your own.
You should build the IA-32 and IA-64 environments separately, so make things
simpler.
>When I ran configure with --target=ia64-pc-linux-gnu
>--prefix=/home/cross-ia64, my intent was to build the include and lib that
>will be later used with gcc cross compile.
>I didn't think it was going to work, but sure enough, "make all" worked,
>didn't make sense, but I didn't question it.
Alexandre Oliva answered this. The --target option is meaningless for glibc.
You need to use --host instead.
>So, if that's not the correct way to produce the headers and libs to be used
>with gcc cross compile, where do I get, or how do I build, the "target"
>headers and libs.
You don't build them. You create them by copying them from the target system.
Log into the target IA-64 system. Run tar on /usr/include and /usr/lib.
Copy the tar file to the IA-32 host. Untar.
If you need to build your own glibc for some reason, then what you are doing
is far too complicated for me to explain in email, mainly because I don't
know enough about how to do it. See above where I said I let the system
vendors do this work for me.
>Last, does redhat or any other linux distributor provide such package? A
>cross-ia64 development package that I can install in my redhat 7.1 for
>example and have both IA64 and IA32 tool chains?
HP has one, though I am not sure if the compiler in it is up-to-date.
http://www.software.hp.com/products/LIA64/overview2a.htm
Red Hat OS group does not distribute cross compilers that I am aware of.
The Red Hat tools group does for customers, and we did provide cross
compilers for the Trillian group for about a year and half, until IA-64
systems were working well enough that we didn't need cross compilers anymore.
It shouldn't be hard to build your own cross-compiler, as long as you only
build a cross-compiler, and don't try to build the entire world including
glibc.
Jim