From: Pedro A. <ped...@po...> - 2007-02-24 20:49:11
|
Hi guys, As some of you may know, I have been busy bringing up a toolchain for Windows CE (ARM), based on GNU tools. You will find this work at http://cegcc.sourceforge.net. Actually, you will find two toolchains there: One based on newlib (*not* a Cygwin port), called CeGCC, and another one, based on MinGW, which we have been calling arm-wince-mingw32ce. I would like to expose you guys to the approach taken, to ask for opinions, and very importantly, to ask you guys what do you think of the mingw32ce name, since I want to start sending patches upstream (gdb/gcc/binutils), and the target name is something one doesn't want to change that often. The approach taken was to reuse the winsup/w32api, and the winsup/mingw code base, and extend it for the Windows CE runtime. Windows CE uses coredll.dll instead of msvrt.dll, as runtime lib, so arm-wince-mingw32ce defines __COREDLL__ instead of the i686-mingw32's __MSVCRT__ or __CRTDLL__. Then, __COREDLL__ is used on the mingw/include/*.h headers to tailor the headers to our needs. Also, and similarly to _WIN32_WINNT, we define a _WIN32_WCE on w32api/include/windef.h. On mingw/ we added coredll as a 3rd runtime (CRT_ID == 3), after crtdll, and msvcrt and added mingwex/wince, and mingwex/mathce subdirs. The toolchain is in a pretty good state, and is quite usable. The compiler is currently gcc-4.1 based. I know that there are still some serious issues with the gcc4 series for Windows targets, but we needed the arm work done there. I still don't think it is ready for a merge into winsup, if that is wanted, as many things are still changing too much, with the exception of w32api/include. Note, that we have been making sure that we have proper (MSDN) references to every change we make. Finally, the target name: In my experience, most of the times, the 'case $host in mingw32*' stuff in configure.* is correct for Windows CE too. Also, mingw32ce is more inline with mingw32crt and mingw32msvc targets. I would like to hear your opinions on this, since MinGW, is after all, your project, and your project's name. What do you think of the full name? arm-wince-mingw32ce, should it be something else? Is it ok by you to send ming32ce to config-patches? Comments? Cheers, Pedro Alves |