Hi, I am working on generating a D compiler for a wince platforms and so I started from cegcc/mingw32ce. The problem I have encounter is a bad insn when compiling and I had to add a -fno-sibling-calls switch. After some research I found a bug in gcc 4.1.0 when optimizing so I have decided to report all the modifications on a gcc 4.2.4 and to test.
The result is available here : svn co https://trac.smartmobili.com/repository/cegcc/branches/cegcc-4.2.4 cegcc-4.2.4 And you can browser sources here : https://trac.smartmobili.com/browser/cegcc/branches/cegcc-4.2.4 To report modifications I start from gcc 4.1.0 and sometimes from 4.3.0 depending of which version were more similar. I only have regret I have used in pe.c naming (pe_xxxx) instead of 4.3 one (arm_pe_xxx): Now I only have one issue in libstdc++ : make[4]: Entering directory `/home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/libstdc++-v3/include' if [ ! -d "./arm-mingw32ce/bits/stdc++.h.gch" ]; then \ mkdir -p ./arm-mingw32ce/bits/stdc++.h.gch; \ fi; \ /home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/./gcc/xgcc -shared-libgcc -B/home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/./gcc -nostdinc++ -L/home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/libstdc++-v3/src -L/home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/libstdc++-v3/src/.libs -L/home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/winsup/mingw -L/home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/winsup/w32api/lib -isystem /home/Vincent/cegcc-4.2.4/src/gcc/winsup/mingw/include -isystem /home/Vincent/cegcc-4.2.4/src/gcc/winsup/w32api/include -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include -Winvalid-pch -Wno-deprecated -x c++-header -g -O2 -I/home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/libstdc++-v3/include/arm-mingw32ce -I/home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/libstdc++-v3/include -I/home/Vincent/cegcc-4.2.4/src/gcc/libstdc++-v3/libsupc++ -O0 -g /home/Vincent/cegcc-4.2.4/src/gcc/libstdc++-v3/include/precompiled/stdc++.h -o arm-mingw32ce/bits/stdc++.h.gch/O0g.gch In file included from /home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/libstdc++-v3/include/bits/basic_ios.h:44, from /home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/libstdc++-v3/include/ios:50, from /home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/libstdc++-v3/include/ostream:45, from /home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/libstdc++-v3/include/bitset:59, from /home/Vincent/cegcc-4.2.4/src/gcc/libstdc++-v3/include/precompiled/stdc++.h:64: /home/Vincent/cegcc-4.2.4/src/build-mingw32ce/gcc/arm-mingw32ce/libstdc++-v3/include/bits/locale_facets.h:147: error: invalid use of incomplete type 'struct std::ctype_base' I suppose I forgot to report a modification or to regenerate a configure but I don't know which one. >From what I see struct std::ctype_base is defined in libstdc++-v3\config\os\mingw32ce so it should not be difficult to find. Modifications in libstdc++ between a vanilla gcc and a cegcc : libstdc++-v3\config\io\basic_file_stdio.cc libstdc++-v3\config\locale\generic\c_locale.cc libstdc++-v3\config\locale\generic\c_locale.h libstdc++-v3\config\locale\generic\collate_members.cc libstdc++-v3\config\locale\generic\time_members.cc libstdc++-v3\config\os\newlib\os_defines.h libstdc++-v3\include\c_std\std_cstdio.h libstdc++-v3\include\c_std\std_cstdlib.h libstdc++-v3\include\c_std\std_cstring.h libstdc++-v3\include\c_std\std_ctime.h libstdc++-v3\include\c_std\std_cwchar.h libstdc++-v3\include\ext\mt_allocator.h libstdc++-v3\include\ext\pool_allocator.h libstdc++-v3\include\ext\stdio_filebuf.h libstdc++-v3\include\ext\stdio_sync_filebuf.h libstdc++-v3\include\Makefile.am //Add ${host_srcdir}/runtimeopts.h \ libstdc++-v3\include\Makefile.in //Add ${host_srcdir}/runtimeopts.h \ libstdc++-v3\include\stdc++.h libstdc++-v3\libmath\Makefile.in libstdc++-v3\libsupc++\Makefile.in libstdc++-v3\po\Makefile.in libstdc++-v3\src\locale.cc libstdc++-v3\src\locale_init.cc libstdc++-v3\src\localename.cc libstdc++-v3\src\Makefile.in libstdc++-v3\testsuite\Makefile.in libstdc++-v3\acinclude.m4 // Remove using ::wcscoll & wcsxfrm libstdc++-v3\config.h.in libstdc++-v3\configure libstdc++-v3\configure.host libstdc++-v3\crossconfig.m4 libstdc++-v3\linkage.m4 libstdc++-v3\Makefile.in ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel