GCC Cross Compiler Query: please help

Jim Wilson wilson@specifixinc.com
Sat Nov 8 04:01:00 GMT 2003


mani@cae.wisc.edu wrote:
> After building the binutils-2.5.2 library, I configured the cross-compiler 
> version gcc-2.6.3 successfully. 

These are very old versions of binutils and gcc by the way.  We stopped 
supporting them many years ago, and there is no guarantee that they will 
work correctly on current systems.

> as: option `-g' is ambiguous
> /var/tmp/ccoyaiBE.s:20: Error: unknown pseudo-op: `.ent'
> /var/tmp/ccoyaiBE.s:22: Error: unknown pseudo-op: `.frame'

All of these errors means that the cross-gcc is using the wrong 
assembler.  It is trying to use the native assembler instead of the 
cross-assembler.

The best way to solve this problem is to make sure you use the same 
--prefix configure option for both binutils and gcc.  If you use the 
same --prefix, and build and install binutils before building gcc, it 
will work.

If you made the mistake of using a different prefix, then you can get 
gcc to work by placing a link to the cross-assembler in the gcc build 
directory, so that gcc will find it.  The link should be called as, and 
needs to be in the same directory as the cc1 executable.  You will also 
need to do the same for ld, except it needs to be called "real-ld", I 
think.  It has changed a few times, but I think real-ld is right for 
that old version.  You may also need to do the same for various other 
programs from binutils.  Note: If you have "." on your path, and it is 
near the beginning, then you might get build failures because the native 
gcc accidentally uses the cross assembler.  You can fix this by removing 
"." from your path, or putting it at the end.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



More information about the Gcc-bugs mailing list