www.digitalmars.com         C & C++   DMDScript  

D.gnu - Cross-compilation ARM and D issues

reply Vincent Richomme <forumer smartmobili.com> writes:
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-ming
32ce/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-ming
32ce/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-ming
32ce/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-ming
32ce/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-ming
32ce/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 ...
Jul 09 2008
next sibling parent Lars Ivar Igesund <larsivar igesund.net> writes:
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

 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

 make[2]: *** [all] Error 2
 make[2]: Leaving directory

 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
Jul 09 2008
prev sibling parent Vincent Richomme <forumer smartmobili.com> writes:
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 :-)
Jul 09 2008