This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Problems building for arm-wince-pe


Hi Chaps I am new to this list but have been reading avidly through the archives and getting lots of useful information on building the GCC tool chain for various targets.

I have successfully built the GCC tools chain targeted to 'arm-linux' built from 'i686-pc-linux-gnu'.  This with a little tweaking works wonderfully and I now have the GCC cross compiler for C, C++ and Ada95.

For reasons unbeknown to me someone wants me to build the GCC tool chain targeted to 'arm-wince-pe', now I am having various problems in doing this and perhaps someone can offer some useful pointers....

I am not particularly fussed with where I build the cross either Linux, Cygwin or MinGW are all fine, so far I have made the most progress with Linux.

build=i686-pc-linux-gnu
target=arm-wince-pe
Using source files from www.mingw.org:
binutils-2.4.90-20030801-1-src.tar.gz
gcc-core-3.3.1-20030804-1-src.tar.gz
gcc-g++-3.3.1-20030804-1-src.tar.gz
mingw-runtime-3.1-src.tar.gz
w32api-2.4-src.tar.gz

1. I have managed (I think) to successfully build the binutils and gcc (phase1, c only).
2. However when I build the w32api I get error1....

make AS="arm-wince-pe-as" CC="arm-wince-pe-gcc" CPPFLAGS="" CFLAGS="-O2 -g" CXXFLAGS="" AR="arm-wince-pe-ar" RANLIB="arm-wince-pe-ranlib" LD="arm-wince-pe-ld" DLLTOOL="arm-wince-pe-dlltool" TAR="tar" TARFLAGS="z" TARFILEEXT=".tar.gz" WINDRES="arm-wince-pe-windres" -C lib
make[1]: Entering directory `/home/drudnick/mingw/build/w32api-2.4/lib'
arm-wince-pe-gcc -c -O2 -g -I../../../src/w32api-2.4/lib/../include  -o dinput.o ../../../src/w32api-2.4/lib/dinput.c
In file included from ../../../src/w32api-2.4/include/windef.h:246,
                 from ../../../src/w32api-2.4/include/windows.h:48,
                 from ../../../src/w32api-2.4/lib/dinput.c:25:
../../../src/w32api-2.4/include/winnt.h:1906:2: #error "undefined processor type"
In file included from ../../../src/w32api-2.4/include/windef.h:246,
                 from ../../../src/w32api-2.4/include/windows.h:48,
                 from ../../../src/w32api-2.4/lib/dinput.c:25:
../../../src/w32api-2.4/include/winnt.h:1908: error: parse error before '*' token
../../../src/w32api-2.4/include/winnt.h:1919: error: parse error before "PCONTEXT"
In file included from ../../../src/w32api-2.4/include/windows.h:50,
                 from ../../../src/w32api-2.4/lib/dinput.c:25:
../../../src/w32api-2.4/include/winbase.h:1312: error: parse error before "LPCONTEXT"
../../../src/w32api-2.4/include/winbase.h:1590: error: parse error before '*' token
make[1]: *** [dinput.o] Error 1
make[1]: Leaving directory `/home/drudnick/mingw/build/w32api-2.4/lib'
make: *** [lib] Error 2

3. This I can move past by adding the lines near the start of winnt.h
#elif defined(__arm__) && !defined(ARM)
#define ARM

4. This carries on until the kerel32.c file is compiled and I hit some x86 assembler which should be arm but I dont know what the equivalents are or even if the arm should be going down this path.

make AS="arm-wince-pe-as" CC="arm-wince-pe-gcc" CPPFLAGS="" CFLAGS="-O2 -g" CXXFLAGS="" AR="arm-wince-pe-ar" RANLIB="arm-wince-pe-ranlib" LD="arm-wince-pe-ld" DLLTOOL="arm-wince-pe-dlltool" TAR="tar" TARFLAGS="z" TARFILEEXT=".tar.gz" WINDRES="arm-wince-pe-windres" -C lib
make[1]: Entering directory `/home/drudnick/mingw/build/w32api-2.4/lib'
arm-wince-pe-gcc -c -O2 -g -I../../../src/w32api-2.4/lib/../include  -o kernel32.o ../../../src/w32api-2.4/lib/kernel32.c
/tmp/cctoMnzb.s: Assembler messages:
/tmp/cctoMnzb.s:42: Error: bad instruction `movl %fs:0x10,r0'
/tmp/cctoMnzb.s:65: Error: bad instruction `movl %fs:0x10,r0'
/tmp/cctoMnzb.s:66: Error: bad instruction `movl (r0),r0'
make[1]: *** [kernel32.o] Error 1
make[1]: Leaving directory `/home/drudnick/mingw/build/w32api-2.4/lib'
make: *** [lib] Error 2

5. To battle onwards I simply remove the offending assembler statements.  This allows the w32api components to completed building and then install.

6. Next I move onto the mingw-runtime.  Here I get another assembler error in CRT_fp10.c

arm-wince-pe-gcc -c -g -O2 -I ../../src/mingw-runtime-3.1/../w32api/include -I../../src/mingw-runtime-3.1/include -I../../src/mingw-runtime-3.1/../include -nostdinc -nostdinc++ -iwithprefixbefore include  ../../src/mingw-runtime-3.1/CRT_fp10.c -o CRT_fp10.o
/tmp/cc9JQVZa.s: Assembler messages:
/tmp/cc9JQVZa.s:39: Error: bad instruction `fninit'
make: *** [CRT_fp10.o] Error 1

7. Again I simply replace the offending call with its equivalent from CRT_fp8.c and this progress along. But alas I hit an error I cannot even think of a hack to move past...

arm-wince-pe-dlltool --as arm-wince-pe-as --dllname mingwm10.dll \
  --def mingwthrd.def --output-lib libmingwthrd.a
arm-wince-pe-ar rv libmingwthrd.a crtmt.o
a - crtmt.o
arm-wince-pe-ranlib libmingwthrd.a
arm-wince-pe-dlltool --as arm-wince-pe-as --output-def mingwthrd.def mthr.o mthr_init.o
arm-wince-pe-gcc -Wl,--base-file=mingwthrd.base -B./ -mdll  -Wl,--image-base,0x6FBC0000 -Wl,--entry,_DllMainCRTStartup@12 mthr.o mthr_init.o -Lmingwex \
	-o mingwthrd_dummy.exe
/home/drudnick/mingw/lib/gcc-lib/arm-wince-pe/3.3.1/../../../../arm-wince-pe/bin/ld: cannot open crt0.o: No such file or directory
collect2: ld returned 1 exit status
make: *** [mingwm10.dll] Error 1

At this point I am stopped..... so any advice or help or shrink wrapped instructions would be greatly appreciated.  I strongly suspect that I have progressed down an incorrect path and perhaps someone can show me the light.

I am about the attempt building on a Windows box, MSYS probably and see what surprises are in store for me there.

Thanks
Dave






------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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