This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


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

Re: cross compiling problem


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
>



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