Thread overview
Cross-compilation ARM and D issues
Jul 09, 2008
Vincent Richomme
Jul 09, 2008
Lars Ivar Igesund
Cross-compilation ARM and D issues : episode 2
Jul 09, 2008
Vincent Richomme
July 09, 2008
Hi,

When applying latest trunk to cegcc with mingw32ce configuration project I get some issues but I think that more generally this report could help  people to cross-compile D on different architectures :


1) in libphobos/std/c/windows/com.d
It seems that Windows InterlockedIncrement function generates bad instruction

make[3]: Entering directory `/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -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" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info" "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include" "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce" "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar" "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as" "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld" "RANLIB=arm-mingw32ce-ranlib" "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -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 -o std/c/windows/com.o -g -frelease -O2  -nostdinc -pipe   \
	-I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce -c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d: In member function 'AddRef':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:224: error: unrecognizable insn:
(call_insn/j 13 12 14 0 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:223 (parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 105) [0 S4 A32])
                    (const_int 0 [0x0])))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
        (nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:224: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[3]: *** [std/c/windows/com.o] Error 1
make[3]: Leaving directory `/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
make[1]: *** [all-target-libphobos] Error 2
make[1]: Leaving directory `/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc'
make: *** [all] Error 2
------------------------------------------------------------------------------

2)Same kind of error in libphobos/std/mmfile.d due to FlushViewOfFile function

	/* Flush any pending output. */
	void flush()
	{
		debug (MMFILE) printf("MmFile.flush()\n");
		version (Win32)
		{
		  FlushViewOfFile(data.ptr, data.length);<< BAD INSN
		}
		...
	}

true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -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" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info" "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include" "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce" "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar" "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as" "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld" "RANLIB=arm-mingw32ce-ranlib" "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -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 -o std/mmfile.o -g -frelease -O2  -nostdinc -pipe   \
	-I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce -c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d: In member function 'flush':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:414: error: unrecognizable insn:
(call_insn/j 15 14 16 0 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:397 (parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 104) [0 S4 A32])
                    (const_int 0 [0x0])))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 1 r1))
        (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
            (nil))))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:414: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
------------------------------------------------------------------------------

3) Same kind of error in libphobos/std/perf.d:202:

static void _qpc(out epoch_type interval)
	{
	    QueryPerformanceCounter(&interval);
	}

true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -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" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info" "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include" "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce" "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar" "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as" "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld" "RANLIB=arm-mingw32ce-ranlib" "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -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 -o std/perf.o -g -frelease -O2  -nostdinc -pipe   \
	-I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce -c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d: In function '_qpc':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:203: error: unrecognizable insn:
(call_insn/j 14 13 15 0 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:202 (parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 102) [0 S4 A32])
                    (const_int 0 [0x0])))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
        (nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:203: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report
------------------------------------------------------------------------------

4) Missing variable declaration in libphobos/gcc/deh.d:327
private _Unwind_Reason_Code personalityImpl(int iversion,
    _Unwind_Action actions,
    bool foreign_exception,
    _Unwind_Exception *ue_header,
    _Unwind_Context *context)
{
    enum Found
      {
	nothing,
	terminate,
	cleanup,
	handler
      }

    Found found_type;
    lsda_header_info info;
    OurUnwindException * xh = OurUnwindException.fromHeader(ue_header);
    //ubyte *language_specific_data;
    ubyte *p;
    ubyte *action_record;
    //int handler_switch_value;
    _Unwind_Ptr /*landing_pad, */ip;
    Phase1Info phase1;

As you can see landing_pad and ip are commented ...
------------------------------------------------------------------------------

5) function defined in a plateform dependent manner(x86)
In thread.d void *os_query_stackBottom() is defined as x86 ASM so it cannot work other architecture...



true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -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" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info" "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include" "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce" "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar" "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as" "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld" "RANLIB=arm-mingw32ce-ranlib" "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -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 -o std/thread.o -g -frelease -O2  -nostdinc -pipe   \
	-I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce -c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:522: function std.thread.os_query_stackBottom expected to return a value of type void*
make[3]: *** [std/thread.o] Error 1

void *os_query_stackBottom()
{
    asm
    {
	naked			;
	mov	EAX,FS:4	;
	ret			;
    }
}
------------------------------------------------------------------------------

6)BAD instruction in libphobos/std/thread.d:399 :

 static void yield()
    {
	Sleep(0);
    }


true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -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" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info" "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include" "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce" "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar" "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as" "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld" "RANLIB=arm-mingw32ce-ranlib" "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -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 -o std/thread.o -g -frelease -O2  -nostdinc -pipe   \
	-I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce -c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d: In function 'yield':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:400: error: unrecognizable insn:
(call_insn/j 11 10 12 0 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:399 (parallel [
            (call (mem:SI (reg/f:SI 101) [0 S4 A32])
                (const_int 0 [0x0]))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
        (nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:400: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
------------------------------------------------------------------------------

7) same kind - BAD INSN

~this()
    {
        if (state != TS.FINISHED)
            CloseHandle(hdl); <<<<<< BAD INSN
    }

/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d: In member function '_dtor':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:127: error: unrecognizable insn:
(call_insn/j 19 18 20 1 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:126 (parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 104) [0 S4 A32])
                    (const_int 0 [0x0])))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
        (nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:127: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
------------------------------------------------------------------------------

8)invariant not recomputed when ADDR_EXPR changed error

/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d: In function 'stdout':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d:205: error: invariant not recomputed when ADDR_EXPR changed
&_iobD.894[0];

/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d:205: internal compiler error: verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.

9) To be continued ...





July 09, 2008
Vincent Richomme wrote:

> Hi,
> 
> When applying latest trunk to cegcc with mingw32ce configuration project
> I get some issues but I think that more generally this report could help
>   people to cross-compile D on different architectures :
> 
> 
> 1) in libphobos/std/c/windows/com.d
> It seems that Windows InterlockedIncrement function generates bad
> instruction
> 
> make[3]: Entering directory
>
`/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
> true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
> "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc
> -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
> -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" "CFLAGS=-O2 -g -O2 "
> "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g
> -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m
> 644" "INSTALL_PROGRAM=/usr/bin/install -c"
> "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 "
> "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo
> --split-size=5000000 --split-size=5000000  " "PICFLAG="
> "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
> "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info"
> "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include"
> "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce"
> "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar"
> "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as"
> "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld"
> "RANLIB=arm-mingw32ce-ranlib"
> "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm"
> "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR="
> DO=all multi-do # make
> /d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc
> -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
> -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 -o std/c/windows/com.o -g
> -frelease -O2  -nostdinc -pipe   \
> -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I
> ./arm-mingw32ce -c
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d: In
> member function 'AddRef':
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:224:
> error: unrecognizable insn:
> (call_insn/j 13 12 14 0
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:223
> (parallel [
>              (set (reg:SI 0 r0)
>                  (call (mem:SI (reg/f:SI 105) [0 S4 A32])
>                      (const_int 0 [0x0])))
>              (return)
>              (use (const_int 0 [0x0]))
>          ]) -1 (nil)
>      (nil)
>      (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
>          (nil)))
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:224:
> internal compiler error: in extract_insn, at recog.c:2084
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> make[3]: *** [std/c/windows/com.o] Error 1
> make[3]: Leaving directory
>
`/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
> make[2]: *** [all] Error 2
> make[2]: Leaving directory
>
`/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
> make[1]: *** [all-target-libphobos] Error 2
> make[1]: Leaving directory
> `/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc'
> make: *** [all] Error 2
> ------------------------------------------------------------------------------
> 
> 2)Same kind of error in libphobos/std/mmfile.d due to FlushViewOfFile function
> 
> /* Flush any pending output. */
> void flush()
> {
> debug (MMFILE) printf("MmFile.flush()\n");
> version (Win32)
> {
> FlushViewOfFile(data.ptr, data.length);<< BAD INSN
> }
> ...
> }
> 
> true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
> "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc
> -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
> -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" "CFLAGS=-O2 -g -O2 "
> "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g
> -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m
> 644" "INSTALL_PROGRAM=/usr/bin/install -c"
> "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 "
> "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo
> --split-size=5000000 --split-size=5000000  " "PICFLAG="
> "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
> "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info"
> "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include"
> "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce"
> "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar"
> "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as"
> "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld"
> "RANLIB=arm-mingw32ce-ranlib"
> "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm"
> "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR="
> DO=all multi-do # make
> /d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc
> -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
> -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 -o std/mmfile.o -g -frelease
> -O2  -nostdinc -pipe   \
> -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I
> ./arm-mingw32ce -c
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d: In member
> function 'flush':
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:414:
> error: unrecognizable insn:
> (call_insn/j 15 14 16 0
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:397
> (parallel [
>              (set (reg:SI 0 r0)
>                  (call (mem:SI (reg/f:SI 104) [0 S4 A32])
>                      (const_int 0 [0x0])))
>              (return)
>              (use (const_int 0 [0x0]))
>          ]) -1 (nil)
>      (nil)
>      (expr_list:REG_DEP_TRUE (use (reg:SI 1 r1))
>          (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
>              (nil))))
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:414:
> internal compiler error: in extract_insn, at recog.c:2084
> Please submit a full bug report,
> with preprocessed source if appropriate.
> ------------------------------------------------------------------------------
> 
> 3) Same kind of error in libphobos/std/perf.d:202:
> 
> static void _qpc(out epoch_type interval)
> {
> QueryPerformanceCounter(&interval);
> }
> 
> true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
> "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc
> -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
> -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" "CFLAGS=-O2 -g -O2 "
> "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g
> -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m
> 644" "INSTALL_PROGRAM=/usr/bin/install -c"
> "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 "
> "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo
> --split-size=5000000 --split-size=5000000  " "PICFLAG="
> "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
> "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info"
> "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include"
> "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce"
> "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar"
> "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as"
> "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld"
> "RANLIB=arm-mingw32ce-ranlib"
> "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm"
> "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR="
> DO=all multi-do # make
> /d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc
> -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
> -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 -o std/perf.o -g -frelease -O2
>   -nostdinc -pipe   \
> -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I
> ./arm-mingw32ce -c
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d: In function
> '_qpc':
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:203: error:
> unrecognizable insn:
> (call_insn/j 14 13 15 0
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:202 (parallel
> [
>              (set (reg:SI 0 r0)
>                  (call (mem:SI (reg/f:SI 102) [0 S4 A32])
>                      (const_int 0 [0x0])))
>              (return)
>              (use (const_int 0 [0x0]))
>          ]) -1 (nil)
>      (nil)
>      (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
>          (nil)))
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:203:
> internal compiler error: in extract_insn, at recog.c:2084
> Please submit a full bug report
> ------------------------------------------------------------------------------
> 
> 4) Missing variable declaration in libphobos/gcc/deh.d:327
> private _Unwind_Reason_Code personalityImpl(int iversion,
>      _Unwind_Action actions,
>      bool foreign_exception,
>      _Unwind_Exception *ue_header,
>      _Unwind_Context *context)
> {
>      enum Found
>        {
> nothing,
> terminate,
> cleanup,
> handler
>        }
> 
>      Found found_type;
>      lsda_header_info info;
>      OurUnwindException * xh = OurUnwindException.fromHeader(ue_header);
>      //ubyte *language_specific_data;
>      ubyte *p;
>      ubyte *action_record;
>      //int handler_switch_value;
>      _Unwind_Ptr /*landing_pad, */ip;
>      Phase1Info phase1;
> 
> As you can see landing_pad and ip are commented ...
> ------------------------------------------------------------------------------
> 
> 5) function defined in a plateform dependent manner(x86)
> In thread.d void *os_query_stackBottom() is defined as x86 ASM so it
> cannot work other architecture...
> 
> 
> 
> true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
> "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc
> -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
> -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" "CFLAGS=-O2 -g -O2 "
> "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g
> -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m
> 644" "INSTALL_PROGRAM=/usr/bin/install -c"
> "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 "
> "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo
> --split-size=5000000 --split-size=5000000  " "PICFLAG="
> "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
> "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info"
> "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include"
> "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce"
> "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar"
> "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as"
> "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld"
> "RANLIB=arm-mingw32ce-ranlib"
> "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm"
> "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR="
> DO=all multi-do # make
> /d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc
> -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
> -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 -o std/thread.o -g -frelease
> -O2  -nostdinc -pipe   \
> -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I
> ./arm-mingw32ce -c
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:522:
> function std.thread.os_query_stackBottom expected to return a value of
> type void*
> make[3]: *** [std/thread.o] Error 1
> 
> void *os_query_stackBottom()
> {
>      asm
>      {
> naked                 ;
> mov   EAX,FS:4        ;
> ret                   ;
>      }
> }
> ------------------------------------------------------------------------------
> 
> 6)BAD instruction in libphobos/std/thread.d:399 :
> 
>   static void yield()
>      {
> Sleep(0);
>      }
> 
> 
> true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
> "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc
> -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
> -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" "CFLAGS=-O2 -g -O2 "
> "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g
> -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m
> 644" "INSTALL_PROGRAM=/usr/bin/install -c"
> "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 "
> "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo
> --split-size=5000000 --split-size=5000000  " "PICFLAG="
> "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
> "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info"
> "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include"
> "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce"
> "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar"
> "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as"
> "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld"
> "RANLIB=arm-mingw32ce-ranlib"
> "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm"
> "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR="
> DO=all multi-do # make
> /d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc
> -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
> -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 -o std/thread.o -g -frelease
> -O2  -nostdinc -pipe   \
> -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I
> ./arm-mingw32ce -c
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d: In
> function 'yield':
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:400:
> error: unrecognizable insn:
> (call_insn/j 11 10 12 0
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:399
> (parallel [
>              (call (mem:SI (reg/f:SI 101) [0 S4 A32])
>                  (const_int 0 [0x0]))
>              (return)
>              (use (const_int 0 [0x0]))
>          ]) -1 (nil)
>      (nil)
>      (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
>          (nil)))
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:400:
> internal compiler error: in extract_insn, at recog.c:2084
> Please submit a full bug report,
> with preprocessed source if appropriate.
> ------------------------------------------------------------------------------
> 
> 7) same kind - BAD INSN
> 
> ~this()
>      {
>          if (state != TS.FINISHED)
>              CloseHandle(hdl); <<<<<< BAD INSN
>      }
> 
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d: In member
> function '_dtor':
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:127:
> error: unrecognizable insn:
> (call_insn/j 19 18 20 1
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:126
> (parallel [
>              (set (reg:SI 0 r0)
>                  (call (mem:SI (reg/f:SI 104) [0 S4 A32])
>                      (const_int 0 [0x0])))
>              (return)
>              (use (const_int 0 [0x0]))
>          ]) -1 (nil)
>      (nil)
>      (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
>          (nil)))
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:127:
> internal compiler error: in extract_insn, at recog.c:2084
> Please submit a full bug report,
> ------------------------------------------------------------------------------
> 
> 8)invariant not recomputed when ADDR_EXPR changed error
> 
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d: In function 'stdout': /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d:205: error: invariant not recomputed when ADDR_EXPR changed &_iobD.894[0];
> 
> /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d:205:
> internal compiler error: verify_stmts failed
> Please submit a full bug report,
> with preprocessed source if appropriate.
> 
> 9) To be continued ...

If you can, I would very much like to hear how Tango fares. Feel free to post such results to Tango forums or similar. Good luck :)

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
July 09, 2008
9) Same error as 5) in libphobos/internal/gc/win32.d due to x86 ASM

/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:75: function win32.os_query_stackBottom expected to return a value of type void*
make[3]: *** [internal/gc/win32.o] Error 1
------------------------------------------------------------------------------

10) BAD INSN in libphobos/internal/gc/win32.d:69

pthread_t pthread_self()
{
    //printf("pthread_self() = %x\n", GetCurrentThreadId());
    return cast(pthread_t) GetCurrentThreadId();
}


/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d: In function 'pthread_self':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:69: error: unrecognizable insn:
(call_insn/j 10 9 11 0 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:68 (parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 103) [0 S4 A32])
                    (const_int 0 [0x0])))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (nil))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:69: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,

------------------------------------------------------------------------------

11) COMPILATION DONE - NO MORE ERRORS :-)