This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: cross compiling problem
- To: <law at cygnus dot com>
- Subject: Re: cross compiling problem
- From: "Paul Forgey" <paulf at aphrodite dot com>
- Date: Wed, 22 Jul 1998 02:33:16 -0700
- Cc: <egcs-bugs at cygnus dot com>
Thanks for your help on that. Since I do have a successful build of egcs on
a real i586-linux host, I was able to drop that (and libgcc2.a) in from it's
build.
That got me past that problem. The next problem seems to be libstdc++,
which hits this paradox:
On the actual i586-linux system, from which I have pulled in the headers, I
am not running glibc-6.x, for a number of reasons. Unfortunately, in this
case, the _IO_lock_t seems not to get properly set up, causing the build to
fail there.
If 1.1 does indeed fix my original problem, and I can get it to work for
this present situation as well, how stable is 1.1 currently? ..and at the
risk of asking a question I could answer from the web site, when is it
expected to be in a stable condition?
Thanks!
By the way, I do have a minor nit: since --prefix= is set to point to where
the cross binutils are, unless you are doing something really hairy or
stupid, why do I have to have ${prefix]/bin in my path for the ${arch}-as,
etc, stuff to be found? Couldn't the configure script or makefiles set this
up? It wasn't hard to figure out, but it wasn't obvious I had to do it in
the first place either..
-----Original Message-----
From: Jeffrey A Law <law@hurl.cygnus.com>
To: Paul Forgey <paulf@aphrodite.com>
Cc: egcs-bugs@cygnus.com <egcs-bugs@cygnus.com>
Date: Tuesday, July 21, 1998 8:38 PM
Subject: Re: cross compiling problem
>
> In message <001e01bdb471$65a44350$0100000a@celery.metainfo.com>you write:
> > I've got the native compiling built fine and installed, however I'm
having a
> > bit of a problem building a cross compiler. Binutils 2.8.1 crossed
over
> > fine. For egcs 1.0.3a, I've got in ./objdir/i586-linux configured with
(XXX
> > are placeholders for real directories) --prefix is the same as it was
> > during the cross-building of binutils:
>
> --with-gnu-as --with-gnu-ld --target=i586-linux --with-includes=XXX --with
-l
> >
ibs=XXX --with-libs=XXX --prefix=/usr/local/cross/i586-linux --enable-share
> > d
> >
> > In ./objdir/i586-linux/gcc, I get:
> > "You must find a way to build libgcc1.a"
> >
> > ..and doing some troubleshooting, I issued a 'make libgcc1.a' in that
> > directory, and found the cc compiler (which is not gcc) was complaining
> > about a syntax error in line 256 before 'asm' in _udivsi3
>Right.
>
>libgcc1 is supposed to be compiler intrinsic routines that the compiler
>can not open code itself. Consider a 32bit divide/modulo on a m68000.
>
>In this case some other compiler must be used to provide support for
>those routines, or assembly support for them must be provided.
>
>--
>
>However, for an x86 target the compiler should be able to open code
>all of the libgcc1 routines and thus libgcc1 should not be necessary.
>egcs-1.0.3a is not aware that libgcc1 should not be necessary for the
>x86 and as a result you get these kinds of problems.
>
>This problem has been fixed for egcs-1.1. You can probably work around
>this by providing definitions for LIBGCC1 and CROSS_LIBGCC1 in the
>t-* file used for x86-linux configurations.
>
>jeff
>