arm cross on cygwin

John Andrews john@triscend.com
Sun Apr 1 00:00:00 GMT 2001


 
Hi 
Cristian,
 
Man, I feel your 
pain, cygwin does stink.
 
I think if you run 
your gcc make with --save-temps and check out prefix.i you'll find in the line 
were this winnt.h defines a union element called Hint, that it gets changed to 
int and screws up the typedef.
 
The fix that worked 
for me was to change Hint to ARM_Hint in $SRC_ROOT/gcc-2.95.2/gcc/config/arm/arm.h and 
arm.c.
 
It seems to have 
something to do with the way the cygwin tools name mangle.
 
Hope that 
helps...
 
John E. 
A.
 
p.s. I'm guessing 
that's a typo for host=build=i686-pc-cygwin, and you really shouldn't have to 
call out build or host in any of the configure steps, it should figure 
it out on its own. Good Luck!
 
-----Original Message----- From: Cristian Amitroaie 
[mailto:Cristian.Amitroaie@NOBUGCONSULTING.RO] Sent: Monday, March 26, 
2001 10:52 PM To: crossgcc@sources.redhat.com Subject: arm 
cross on cygwin
    I tried to do a cross on 
cygwin for arm:
 
    
host=build=i686-pccygwin
    target=arm-coff
    
src_root=/usr/local/src/gnu
    
prefix=/usr/local/arm
 
    when doing:
 
mkdir -p $SRC_ROOT/BUILD/binutils cd 
$SRC_ROOT/BUILD/binutils $SRC_ROOT/binutils-2.10.1/configure --target=$TARGET 
--host=$HOST --build=$BUILD --prefix=$PREFIX -v make > make.log 
2>&1 make install > install.log 2>&1
 
export PATH=$PATH:$PREFIX/bin $TARGET-ld 
--version
 
    I get:
 
$ $TARGET-ld --version GNU ld 
2.10.1 Copyright 2000 Free Software Foundation, Inc. This program is free 
software; you may redistribute it under the terms of the GNU General Public 
License.  This program has absolutely no warranty.   Supported 
emulations:    armcoff
 
    That's ok (I 
think).
 
    Then:
 
mkdir -p $SRC_ROOT/BUILD/gcc cd 
$SRC_ROOT/BUILD/gcc $SRC_ROOT/gcc-2.95.2-6/configure --enable-languages=c 
--target=$TARGET --host=$HOST --build=$BUILD --with-newlib --prefix=$PREFIX 
-v make LANGUAGES=c all-gcc > make.log 2>&1
    I get the 
following make error:
 
gcc -DCROSS_COMPILE 
-DIN_GCC     -g -O2  -DHAVE_CONFIG_H    
-I. -I/usr/local/src/gnu/gcc-2.95.2-6/gcc 
-I/usr/local/src/gnu/gcc-2.95.2-6/gcc/config 
-I/usr/local/src/gnu/gcc-2.95.2-6/gcc/../include 
\ -DPREFIX=\"/usr/local/arm\" \   -c `echo 
/usr/local/src/gnu/gcc-2.95.2-6/gcc/prefix.c | sed 's,^\./,,'` In file 
included from 
/usr/include/w32api/windef.h:143,                  
from 
/usr/include/w32api/windows.h:96,                  
from 
/usr/local/src/gnu/gcc-2.95.2-6/gcc/prefix.c:70: /usr/include/w32api/winnt.h:2266: 
two or more data types in declaration of `type name' make[1]: *** [prefix.o] 
Error 1 make[1]: Leaving directory 
`/usr/local/src/gnu/BUILD/gcc/gcc' make: *** [all-gcc] Error 2
 
    What seems to be the 
problem?
 
    As a matter of fact I'm trying 
to do a new port for a new controller. I started to see what works by now with 
gcc, but I couldn't get a cross.
I need a cross for a (simple) processor because I 
want to experiment with machine descriptions.
 
    Can anyone give me a 
hand?
 
    Thnx,
    Cristian 
A.



More information about the crossgcc mailing list